# Flux 2 | Klein | 9B | Base | Edit Flux 2 [klein] 9B Base from Black Forest Labs supports precise image-to-image editing with natural-language instructions and hex color–based control. ## API Information - **Model Slug:** flux-2-klein-9b-base-edit - **Branded URL:** https://www.eachlabs.ai/black-forest-labs/flux-2/flux-2-klein-9b-base-edit - **Provider:** Black Forest Labs - **Category:** Image to Image - **Output Type:** array - **Status:** active - **Base Cost:** Per-megapixel pricing: $0.015 base + $0.002/extra MP (ceil rounding) - **Estimated Processing Time:** 10 seconds - **Interactive Demo:** https://www.eachlabs.ai/ai-models/flux-2-klein-9b-base-edit ## Pricing - **Charge Type:** dynamic - **Estimated Price (default example):** $0.0130 - **Pricing Details:** Per-megapixel pricing: $0.015 base + $0.002/extra MP (ceil rounding) ### Pricing Rules | Condition | Pricing | | --- | --- | | Rule 1 | Per-megapixel pricing: $0.015 base + $0.002/extra MP (ceil rounding) | ## Input Schema | Parameter | Type | Required | Default | Constraints | Description | |-----------|------|----------|---------|-------------|-------------| | prompt | string | Yes | - | - | Text description of the desired image edit. | | image_urls | array | Yes | - | - | URLs of the source images to edit (1–4 images). | | negative_prompt | string | No | - | - | Text description of what to avoid in the output image. | | guidance_scale | number | No | 5 | 0–20 | Classifier-free guidance scale. Higher values follow the prompt more closely. Range: 0–20. Default: 5. | | num_inference_steps | integer | No | 28 | 1–50 | Number of denoising steps. More steps can improve quality but take longer. Range: 1–50. Default: 28. | | image_size | string | No | landscape_4_3 | square_hd, square,portrait_4_3, portrait_16_9, landscape_4_3, landscape_16_9 | Output image size preset. Default: landscape_4_3. | | num_images | integer | No | 1 | 1–4 | Number of images to generate. Range: 1–4. Default: 1. | | acceleration | string | No | regular | none, regular, high | Inference acceleration mode. Higher acceleration is faster but may reduce quality. Default: regular. | | enable_safety_checker | boolean | No | true | - | Run safety checker on output. Default: true. | | output_format | string | No | png | jpeg, png, webp | Output image format. Default: png. | | seed | integer | No | - | 1–0 | Random seed for reproducible results. Leave empty for random output. | ## Example Request ```bash curl -X POST https://api.eachlabs.ai/v1/prediction/ \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "flux-2-klein-9b-base-edit", "input": { "image_urls": [ "https://cdn-us.eachlabs.ai/defaults/d96251ba2e07874449d86e0f5975bac0fdd3b08b123ea464885834db94f236dd.jpg" ], "prompt": "Imagine a close shot cat. Use the Style from the Reference Image." } }' ``` ## Output Schema Response returned by `GET /v1/prediction/{id}` when the job completes: ```json { "status": "success", "predictionID": "string", "output": "array", "metrics": { "predict_time": "number (seconds)" } } ``` ## Polling ```bash curl https://api.eachlabs.ai/v1/prediction/{PREDICTION_ID} \ -H "Authorization: Bearer YOUR_API_KEY" ``` | Status | Meaning | |--------|---------| | `processing` | Still running — poll again | | `success` | Done — read `output` | | `error` | Failed — read `message` / `details` | ## Webhook (alternative to polling) Pass `"webhook_url": "https://your.host/path"` in the create request. Eachlabs POSTs this payload when the job ends: ```json { "exec_id": "prediction-uuid", "status": "succeeded", "output": "https://...", "error": "" } ``` `status` is `"succeeded"` or `"failed"`. `exec_id` equals the `predictionID` from create. Return 2xx within 30 seconds. ## Errors Error body: `{ "status": "error", "message": "...", "details": "..." }` | Code | Meaning | |------|---------| | `400` | Invalid input | | `401` | Missing / invalid `Authorization` bearer token | | `404` | Unknown model or prediction id | | `429` | Rate limit — 100 creates / min, 10 concurrent per key | | `5xx` | Retry with backoff | ## Overview **flux-2-klein-9b-base-edit — Image Editing AI Model** Developed by Black Forest Labs as part of the flux-2 family, **flux-2-klein-9b-base-edit** is a compact yet powerful image-to-image editing model that transforms how creators refine and modify existing images. Unlike traditional image editors that require manual adjustments, this model accepts natural-language instructions to make precise edits—allowing you to describe exactly what you want changed and let the AI handle the execution. The model also supports hex color-based control, enabling pixel-perfect color adjustments alongside semantic editing tasks. For teams building AI image editor APIs or developers integrating image-to-image capabilities into applications, flux-2-klein-9b-base-edit delivers professional-grade results without the overhead of larger models. At its core, flux-2-klein-9b-base-edit solves a critical problem: editing images intelligently without losing quality or coherence. Whether you're adjusting lighting, changing backgrounds, modifying objects, or applying color corrections, the model understands both your text instructions and the visual context of your source image to produce edits that feel natural and integrated. ## Usage Notes - API Base URL: `https://api.eachlabs.ai/v1` - Authentication: send `Authorization: Bearer YOUR_API_KEY`. Generate a key from the Eachlabs dashboard at https://www.eachlabs.ai/dashboard/api-keys. - File-typed parameters (`*_url`, `image_url`, `video_url`, `audio_url`, etc.) accept publicly-reachable HTTPS URLs only. Upload your asset first (GCS / S3 / your CDN) and pass the resulting URL. Data-URIs and localhost URLs are rejected. - For structured parameters (arrays / objects) send real JSON values, not stringified payloads. - Monetary values are reported in USD; per-token / per-megapixel rates may be billed in micro-cents internally. - Prefer `webhook_url` over polling for long-running predictions — see the Webhook Callback section.