# Flux 2 | Klein | 4B | Base | Edit Flux 2 [klein] 4B from Black Forest Labs enables precise image-to-image editing using natural-language instructions and hex color control. ## API Information - **Model Slug:** flux-2-klein-4b-base-edit - **Branded URL:** https://www.eachlabs.ai/black-forest-labs/flux-2/flux-2-klein-4b-base-edit - **Provider:** Black Forest Labs - **Category:** Image to Image - **Output Type:** array - **Status:** active - **Base Cost:** Per-megapixel pricing: $0.014 base + $0.001/extra MP (ceil rounding) - **Estimated Processing Time:** 10 seconds - **Interactive Demo:** https://www.eachlabs.ai/ai-models/flux-2-klein-4b-base-edit ## Pricing - **Charge Type:** dynamic - **Estimated Price (default example):** $0.0130 - **Pricing Details:** Per-megapixel pricing: $0.014 base + $0.001/extra MP (ceil rounding) ### Pricing Rules | Condition | Pricing | | --- | --- | | Rule 1 | Per-megapixel pricing: $0.014 base + $0.001/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). | | num_inference_steps | integer | No | 4 | 1–50 | Number of denoising steps. More steps can improve quality but take longer. Range: 1–50. Default: 4. | | num_images | integer | No | 1 | 1–4 | Number of images to generate. Range: 1–4. Default: 1. | | enable_safety_checker | boolean | No | true | - | Run safety checker on output. Default: true. | | 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. | | 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-4b-base-edit", "input": { "image_urls": [ "https://cdn-us.eachlabs.ai/defaults/3e28ba52369ef20569e03e345c56c70efa04abb09924ecab558563adb85bf3fe.jpg" ], "prompt": "Turn this into a realistic 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-4b-base-edit — Image Editing AI Model** Developed by Black Forest Labs as part of the Flux 2 family, **flux-2-klein-4b-base-edit** is a compact image editing model that transforms how creators refine and modify visual content. Unlike generic image editors, this model accepts natural-language instructions paired with reference images, enabling precise semantic edits—from object replacement to style transformation—without requiring manual selection tools or complex workflows. The 4B base variant prioritizes output quality and customization flexibility, making it ideal for creators who need professional-grade results without sacrificing control over the editing process. What makes flux-2-klein-4b-base-edit distinct is its unified architecture: it handles both image generation and image-to-image editing within a single model, eliminating the need to switch between tools. Built on a rectified flow transformer with a Qwen3-based text encoder, it delivers sub-second inference on consumer GPUs while maintaining the complete training signal—meaning you can fine-tune it for domain-specific applications or train custom LoRA adapters for specialized editing tasks. ## 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.