Flux 2 Klein Base 9b Edit LoRA
Playground
Try it on WavespeedAI!FLUX.2 [klein] Base 9B Edit with LoRA support is a high-quality image editing model with 9B parameters, offering precise modifications using natural language instructions and personalized styles via custom LoRA adapters. Ready-to-use REST inference API, best performance, no cold starts, affordable pricing.
Features
WaveSpeed AI FLUX.2 Klein Base 9B Edit LoRA
WaveSpeed AI FLUX.2 Klein Base 9B Edit LoRA is a high-quality image editing model with full LoRA support. Built on a 9B-parameter architecture, it delivers stronger detail, better prompt understanding, and more refined edits than the 4B variant. Upload one or more source images, describe the edit in natural language, and optionally apply custom LoRA adapters for personalized styles or character consistency.
Why Choose This?
-
Higher-quality editing The 9B model produces 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, modify content, add effects, or refine the scene.
-
Full LoRA support Apply custom LoRA adapters for personalized styles, characters, aesthetics, or branded visual directions.
-
Multi-image support Upload multiple source images for more context-aware editing and compositing workflows.
-
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 prompt clarity.
-
Production-ready workflow Suitable for high-quality retouching, style transfer, compositing, and more advanced creative editing tasks.
Parameters
| Parameter | Required | Description |
|---|---|---|
| prompt | Yes | Text description of the desired edit. |
| images | Yes | Source images to edit. Multiple images are supported. |
| loras | No | List of LoRA adapters to apply during editing. |
| size | No | Output dimensions. Leave empty to match the input image dimensions. |
| seed | No | Random seed for reproducibility. Use -1 for random generation. |
LoRA Format
Each item in the loras array supports:
| Field | Required | Description |
|---|---|---|
| path | Yes | URL to the LoRA weights file. |
| scale | No | LoRA weight multiplier. Default: 1. |
How to Use
- Write your prompt — describe the edit you want, such as “make it a real picture” or “add sunset lighting.”
- Upload your images — add one or more source images using the image input.
- Add LoRAs (optional) — include one or more LoRA adapters if you want custom style or character control.
- Adjust LoRA scale (optional) — start with
1and fine-tune if needed. - 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
Turn this illustration into a realistic cinematic portrait, keep the same composition and facial features, add soft sunset lighting and natural skin texture.
Pricing
| Item | Cost |
|---|---|
| Per image | $0.021 |
Billing Rules
- Pricing is fixed at $0.021 per generated image
size,seed, and the number of LoRAs do not affect pricing- Flat-rate pricing applies regardless of image dimensions or LoRA count
Best Use Cases
- Style transfer — Transform images using custom LoRA styles or aesthetics.
- Reality enhancement — Convert illustrations, renders, or stylized images into more photorealistic results.
- Character consistency — Apply character LoRAs while editing to maintain a recognizable identity.
- High-quality retouching — Use the 9B model when the 4B variant is not sufficient for professional work.
- Production editing — Balance strong detail and prompt fidelity with practical cost and speed.
- Complex image refinement — Handle edits that need stronger scene understanding and more precise visual control.
Pro Tips
- Be specific about what should change and what should stay the same.
- Use LoRAs when you want a consistent style or character look across multiple edits.
- Leave
sizeempty when you want to preserve the original image dimensions. - Start with LoRA
scale = 1and adjust based on how strongly you want the adapter to influence the result. - Use the same
seedwhen comparing different prompts or LoRA combinations. - For best results, use high-quality source images and clearly written prompts.
Notes
- Both
promptandimagesare required. - If
sizeis not specified, the output matches the input image dimensions. - LoRAs can be stacked for combined effects.
- The 9B model offers better detail and prompt understanding than the 4B variant at a slightly higher cost.
- For best results, use high-quality source images.
Related Models
- FLUX.2 Klein Base 9B Edit — Standard version without LoRA support.
- FLUX.2 Klein 4B Edit LoRA — Lighter 4B version at lower cost.
- FLUX.2 Klein Base 9B Text-to-Image LoRA — Text-to-image generation with LoRA support.
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-lora" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}" \
--data-raw '{
"loras": [],
"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 | - | The editing instruction. | |
| loras | array | No | max 3 items | List of LoRAs to apply (max 3). | |
| loras[].path | string | Yes | - | Path to the LoRA model | |
| loras[].scale | float | Yes | - | 0.0 ~ 4.0 | Scale of the LoRA model |
| size | string | No | - | 256 ~ 1536 per dimension | |
| seed | integer | No | -1 | -1 ~ 2147483647 | The random seed to use for the generation. -1 means a random seed will be used. |
| 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 |