Flux 2 Klein Base 9b Edit
Playground
Try it on WavespeedAI!FLUX.2 [klein] Base 9B Edit is a high-quality image editing model with 9B parameters, offering precise modifications using natural language instructions. Ready-to-use REST inference API, best performance, no cold starts, affordable pricing.
Features
WaveSpeed AI FLUX.2 Klein Base 9B Edit
WaveSpeed AI FLUX.2 Klein Base 9B Edit is a high-quality image editing model built for prompt-driven transformations, compositing, and style changes. Upload one or more source images, describe the edit in natural language, and generate polished results with stronger detail and better prompt understanding than the 4B variant.
Why Choose This?
-
Higher-quality editing The 9B parameter model delivers richer detail, stronger prompt adherence, and better overall edit quality than the 4B variant.
-
Natural-language editing Describe the change you want in plain language — transform style, replace elements, change mood, or combine multiple images.
-
Multi-image support Upload multiple reference images and perform compositing or cross-image edits such as “Put the person in image1 into image2.”
-
Flexible output sizing Optionally set output dimensions, or leave
sizeempty to preserve the original input dimensions. -
Prompt Enhancer Built-in prompt enhancement can help improve edit quality and clarity.
-
Production-ready workflow Suitable for high-quality creative editing, marketing visuals, and more complex multi-image transformations.
Parameters
| Parameter | Required | Description |
|---|---|---|
| prompt | Yes | Text description of the desired edit. |
| images | Yes | Source images to edit. Multiple images are supported. |
| size | No | Output dimensions. Leave empty to match the input image dimensions. |
| seed | No | Random seed for reproducibility. Use -1 for random generation. |
How to Use
- Write your prompt — describe the edit you want, such as “Put the person in image1 into image2” or “Change this to watercolor style.”
- Upload your images — add one or more source images using the image input.
- Set size (optional) — specify output dimensions, or leave it empty to preserve the original dimensions.
- Set seed (optional) — use
-1for random generation, or enter a fixed seed for reproducible results. - Submit — run the model and download the edited image.
Example Prompt
Put the person in image1 into image2, keep realistic lighting and proportions, and match the scene naturally.
Pricing
| Item | Cost |
|---|---|
| Per image | $0.016 |
Billing Rules
- Pricing is fixed at $0.016 per generated image
sizeandseeddo not affect pricing- Flat-rate pricing applies regardless of image dimensions
Best Use Cases
- Image compositing — Combine subjects or objects from multiple images into one result.
- Style transfer — Transform images into different artistic or visual styles with strong fidelity.
- Professional editing — Use the 9B model when the 4B variant is not sufficient for production-quality work.
- Content transformation — Change lighting, mood, environment, or visual theme with more precision.
- Complex multi-image edits — Handle edits that require stronger scene understanding and better subject consistency.
Pro Tips
- Be specific about what should change and what should stay the same.
- Reference input images clearly in the prompt, such as
image1,image2, and so on. - Leave
sizeempty when you want to preserve the original image dimensions. - Use the same
seedwhen comparing different prompt variations on the same images. - For complex edits, describe both the main transformation and any constraints like lighting, realism, or identity preservation.
Notes
- Both
promptandimagesare required. - If
sizeis not specified, the output matches the input image dimensions. - The 9B model offers better detail and stronger prompt understanding than the 4B variant.
- Need LoRA support? Try FLUX.2 Klein Base 9B Edit LoRA.
Related Models
- FLUX.2 Klein Base 9B Edit LoRA — Edit with LoRA support for custom styles and more specialized control.
- FLUX.2 Klein 4B Edit — Lighter 4B version with lower cost.
- FLUX.2 Klein Base 9B Text-to-Image — Generate images directly from text prompts.
Authentication
For authentication details, please refer to the Authentication Guide.
API Endpoints
Submit Task & Query Result
# Submit the task
curl --location --request POST "https://api.wavespeed.ai/api/v3/wavespeed-ai/flux-2-klein-base-9b/edit" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}" \
--data-raw '{
"seed": -1,
"enable_sync_mode": false,
"enable_base64_output": false
}'
# Get the result
curl --location --request GET "https://api.wavespeed.ai/api/v3/predictions/${requestId}/result" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}"
Parameters
Task Submission Parameters
Request Parameters
| Parameter | Type | Required | Default | Range | Description |
|---|---|---|---|---|---|
| images | array | Yes | [] | 1 ~ 3 items | List of reference image URLs (1-3 images). |
| prompt | string | Yes | - | ||
| size | string | No | - | 256 ~ 1536 per dimension | |
| seed | integer | No | -1 | -1 ~ 2147483647 | |
| enable_sync_mode | boolean | No | false | - | If set to true, the function will wait for the result to be generated and uploaded before returning the response. It allows you to get the result directly in the response. This property is only available through the API. |
| enable_base64_output | boolean | No | false | - | If enabled, the output will be encoded into a BASE64 string instead of a URL. This property is only available through the API. |
Response Parameters
| Parameter | Type | Description |
|---|---|---|
| code | integer | HTTP status code (e.g., 200 for success) |
| message | string | Status message (e.g., “success”) |
| data.id | string | Unique identifier for the prediction, Task Id |
| data.model | string | Model ID used for the prediction |
| data.outputs | array | Array of URLs to the generated content (empty when status is not completed) |
| data.urls | object | Object containing related API endpoints |
| data.urls.get | string | URL to retrieve the prediction result |
| data.status | string | Status of the task: created, processing, completed, or failed |
| data.created_at | string | ISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”) |
| data.error | string | Error message (empty if no error occurred) |
| data.timings | object | Object containing timing details |
| data.timings.inference | integer | Inference time in milliseconds |
Result Request Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| id | string | Yes | - | Task ID |
Result Response Parameters
| Parameter | Type | Description |
|---|---|---|
| code | integer | HTTP status code (e.g., 200 for success) |
| message | string | Status message (e.g., “success”) |
| data | object | The prediction data object containing all details |
| data.id | string | Unique identifier for the prediction, the ID of the prediction to get |
| data.model | string | Model ID used for the prediction |
| data.outputs | string | Array of URLs to the generated content (empty when status is not completed). |
| data.urls | object | Object containing related API endpoints |
| data.urls.get | string | URL to retrieve the prediction result |
| data.status | string | Status of the task: created, processing, completed, or failed |
| data.created_at | string | ISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”) |
| data.error | string | Error message (empty if no error occurred) |
| data.timings | object | Object containing timing details |
| data.timings.inference | integer | Inference time in milliseconds |