# Flux.1 Kontext | Pro A state-of-the-art text-based image editing model that delivers high-quality outputs with excellent prompt following and consistent results for transforming images through natural language ## API Information - **Model Slug:** flux-kontext-pro - **Branded URL:** https://www.eachlabs.ai/black-forest-labs/flux-kontext/flux-kontext-pro - **Provider:** Black Forest Labs - **Category:** Text to Image - **Output Type:** array - **Status:** active - **Base Cost:** $0.04 per execution - **Estimated Processing Time:** 10 seconds - **Interactive Demo:** https://www.eachlabs.ai/ai-models/flux-kontext-pro ## Pricing - **Charge Type:** dynamic - **Estimate:** $0.04 per execution - **Pricing Details:** default: $0.04 ## Input Schema | Parameter | Type | Required | Default | Constraints | Description | |-----------|------|----------|---------|-------------|-------------| | prompt | string | Yes | - | - | Text description of what you want to generate, or the instruction on how to edit the given image. Describe the desired changes clearly — for example 'change the background to a beach sunset' or 'make the person wear a red hat'. Works best with specific, natural language instructions. | | input_image | string | Yes | - | - | Image to use as reference for editing. Supports JPEG, PNG, GIF, and WebP. The model edits this image based on the prompt instruction. | | aspect_ratio | string | No | match_input_image | match_input_image, 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9, 9:21 | Output image aspect ratio. match_input_image: preserves source image dimensions (default). Other values crop or resize to the specified ratio. Common choices: 1:1 for square, 16:9 for widescreen, 9:16 for portrait/mobile. | | num_images | integer | No | 1 | 1–4 | Number of images to generate per request. Each image uses the same prompt and settings but with different random seeds. Range: 1–4. Default: 1. | | guidance_scale | number | No | 3.5 | 0–20 | Classifier-free guidance scale. Controls how closely the output follows the prompt. Lower values (1–3) produce more creative results, higher values (5–10) follow the prompt more literally. Range: 0–20. Default: 3.5. | | enhance_prompt | boolean | No | false | - | Automatically enhance the prompt for better generation results. Useful for short or vague prompts. Default: false. | | seed | integer | No | - | 1–0 | Random seed for reproducible results. Same seed and prompt produce identical output. Leave empty for random generation. | | output_format | string | No | jpeg | jpeg, png | Output image file format. jpeg: smaller file size, good for most use cases (default). png: lossless quality, supports transparency, larger file size. | | safety_tolerance | string | No | 6 | 1, 2, 3, 4, 5, 6 | Safety filter tolerance level. 1 is the strictest, 6 is the most permissive. Lower values block more content. Default: 6. | ## 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-kontext-pro", "input": { "input_image": "https://cdn-us.eachlabs.ai/defaults/c76b3180de8673dc6133319e194337127cde573241a5dbcd0b5e43da034b89b4.webp", "prompt": "Transform to oil painting with visible brushstrokes, thick paint texture, and rich color depth" } }' ``` ## 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-kontext-pro — Image-to-Image AI Model** flux-kontext-pro, the professional variant of Black Forest Labs' FLUX.1 Kontext family, revolutionizes **image-to-image AI model** editing by enabling precise modifications through natural language prompts while preserving character consistency and style across edits. Developers and creators seeking a **Black Forest Labs image-to-image** solution rely on flux-kontext-pro for its superior **continuous image editing** and **precise object modification**, delivering consistent, high-quality transformations without losing original composition. Available exclusively via API, this model outperforms open-source alternatives with effortless prompt adherence, making it ideal for automated image editing workflows. ## 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.