Introduction
FLUX.2 Klein Base 4B LoRA Text to image makes one image from a written prompt on Black Forest Labs' FLUX.2 [klein] Base 4B, the undistilled 4-billion-parameter foundation model released under Apache 2.0, with up to three of your own LoRA files loaded. Pick any of nine aspect ratios at about one megapixel or 2048 pixels on the long side, at one flat price per image. Nothing is filtered.
Choose a mode by starting material
| What you have | Mode |
|---|---|
| a written description and a LoRA | FLUX.2 Klein Base 4B LoRA Text to image |
| one to three pictures to change or combine | FLUX.2 Klein Base 4B LoRA Image edit |
Key features & highlights
The build LoRAs are trained on
Black Forest Labs recommends Base 4B for fine-tuning and LoRA training. LoRAs trained on it apply here at full strength, and in our tests LoRAs trained on the distilled 4B applied too.
Strong style response
Style LoRAs show strongly on this build: in our tests the same anime LoRA at scale 2 redrew a photographic scene in its style on Base, while the distilled 4B changed only slightly.
More variety, more time
The undistilled model gives more varied results between seeds and took about 20 seconds per image in our tests, around four times the distilled 4B.
Uncensored with custom weights
Weights are never reviewed and results are never filtered. On its own the model tones the Strong level down; with a LoRA trained for it loaded, that level came through as written. The Very strong level stayed toned down.
Request parameters
| Parameter | Required | Description |
|---|---|---|
prompt | Yes | Up to 5,000 characters. Start with the LoRA trigger phrase, then describe subject, clothing, place and light in full sentences. at least 1 characters · at most 5000 characters |
aspect_ratio | No | Nine shapes from 21:9 to 9:21, 1:1 by default. Every ratio costs the same. |
resolution | No | 1k (default) is about one megapixel; 2k is 2048 pixels on the long side. Both tiers cost the same. |
loras | No | Up to three {path, scale} entries trained for FLUX.2 [klein] 4B or Base 4B. Default: |
seed | No | A number from 0 to 2147483647. Reuse it to compare one LoRA or one scale at a time; it keeps results close but does not promise identical pixels. |
Pricing
$0.018 / image
Billed per image at one flat price for every aspect ratio and both size tiers. Loading LoRAs adds no separate charge.
Use cases
Checking a LoRA you trained
Run your Base 4B LoRA at a few scales and seeds without setting up a GPU, compare each result with a run that has no LoRA, and ship the same file to production once it holds up.
Painted and pixel-art series
Painting, colored-pencil and pixel-art LoRAs keep a whole series in one look across nine aspect ratios, from square thumbnails to 21:9 banners and 9:16 phone frames.
Exploring compositions
Use the extra variety between seeds to find a layout you like, then keep that seed and refine the clothing, light and setting around it one sentence at a time.
Prompt guide & pro tips
Trigger first, then full sentences
Start with the trigger phrase from the LoRA page, then describe subject, clothing, place and light.
Begin at scale 1
Styles show strongly here. Lower to 0.5 for a lighter touch; at 4 the image turned to noise in our test.
Compare against no LoRA
Run the same prompt and seed without the LoRA. If the two results look the same, the file was made for another base model, such as FLUX.1 or the 9B Klein models: those load without an error and do nothing here.
Keep signs out of the frame
Signs, labels and chart headings often come out as garbled text. Describe them as blank or leave them out.
Use direct, public links
The link must download the .safetensors file itself. A Hugging Face file link or a Civitai download link works; a repository page or a gated file that needs a login fails the request, which is then not charged.
API quick start
# Generate the idempotency key once; reuse it when retrying after a lost response.
export SPICY_IDEMPOTENCY_KEY="${SPICY_IDEMPOTENCY_KEY:-$(uuidgen)}"
curl -X POST https://api.spicyapi.ai/api/v1/jobs/createTask \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $SPICY_IDEMPOTENCY_KEY" \
-d '{
"model": "black-forest-labs/flux-2-klein-base-4b-lora/text-to-image",
"input": {
"aspect_ratio": "1:1",
"prompt": "A ceramic teapot on a linen cloth, soft window light, muted palette",
"resolution": "1k"
}
}'
# Copy data.taskId from the response into TASK_ID, then poll the status.
TASK_ID="TASK_ID_FROM_RESPONSE"
curl "https://api.spicyapi.ai/api/v1/jobs/recordInfo?taskId=$TASK_ID" \
-H "Authorization: Bearer $SPICY_API_KEY"
See the API reference for authentication, the complete schema, polling, and error handling.




























