# Flux Fill Pro Flux Fill Pro Model fills missing or unwanted areas in images seamlessly, ensuring realistic outcomes ## API Information - **Model Slug:** flux-fill-pro - **Branded URL:** https://www.eachlabs.ai/black-forest-labs/flux/flux-fill-pro - **Provider:** Black Forest Labs - **Category:** Image to Image - **Output Type:** image - **Status:** active - **Version:** 0.0.1 - **Base Cost:** Fixed price per execution: $0.05 - **Estimated Processing Time:** 9 seconds - **Last Updated:** 2026-04-06 - **Interactive Demo:** https://www.eachlabs.ai/ai-models/flux-fill-pro ## Pricing - **Charge Type:** dynamic - **Estimated Price (default example):** $0.0500 - **Pricing Details:** Fixed price per execution: $0.05 ### Pricing Rules | Condition | Pricing | | --- | --- | | Rule 1 | Fixed price per execution: $0.05 | ## Input Schema | Parameter | Type | Required | Default | Constraints | Description | |-----------|------|----------|---------|-------------|-------------| | prompt | string | Yes | - | - | Text prompt for image generation | | image | string | Yes | - | image/jpeg, image/png, image/jpg, image/webp | The image to inpaint. Can contain an alpha mask. | | mask | string | Yes | - | image/jpeg, image/png, image/jpg, image/webp | A black-and-white image that describes the part of the image to inpaint. Black areas will be preserved while white areas will be inpainted. Must have the same size as image. Optional if you provide an alpha mask in the original image. | | seed | integer | No | - | - | Random seed. Set for reproducible generation | | steps | integer | No | 50 | 1–50 | Number of diffusion steps. Higher values yield finer details but increase processing time. | | prompt_upsampling | boolean | No | false | - | Automatically modify the prompt for more creative generation | | guidance | number | No | 3 | 2–5 | Controls the balance between adherence to the text prompt and image quality/diversity. Higher values make the output more closely match the prompt but may reduce overall image quality. Lower values allow for more creative freedom but might produce results less relevant to the prompt. | | safety_tolerance | integer | No | 2 | 1–6 | Safety tolerance, 1 is most strict and 6 is most permissive | | output_format | string | No | jpg | jpg,png | An enumeration. | ## Example Request ```bash curl -X POST https://api.eachlabs.ai/v1/prediction/ \ -H "X-API-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "flux-fill-pro", "input": { "mask": "https://storage.googleapis.com/magicpoint/inputs/flux-fill-input-mask.webp", "image": "https://storage.googleapis.com/magicpoint/inputs/flux-fill-image-input.webp", "prompt": "movie poster says \"FLUX FILL\"" } }' ``` ## Output Schema Response returned by `GET /v1/prediction/{id}` when the job completes: ```json { "status": "success", "predictionID": "string", "output": "string (URL of generated image)", "metrics": { "predict_time": "number (seconds)" } } ``` ## Polling ```bash curl https://api.eachlabs.ai/v1/prediction/{PREDICTION_ID} \ -H "X-API-Key: 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 `X-API-Key` | | `404` | Unknown model or prediction id | | `429` | Rate limit — 100 creates / min, 10 concurrent per key | | `5xx` | Retry with backoff | ## Overview **flux-fill-pro — Image-to-Image AI Model** flux-fill-pro, developed by Black Forest Labs as part of the **flux** family, excels at filling missing or unwanted areas in images seamlessly, delivering photorealistic results with production-grade quality. This **image-to-image AI model** solves the challenge of inpainting and outpainting by leveraging multi-reference editing—up to 10 input images for precise control over composition, poses, and styles—making it ideal for professional workflows like product visualization and creative editing. Users searching for "AI image editor API" or "edit images with AI" find flux-fill-pro's high-fidelity outputs stand out, supporting resolutions up to 4MP in any aspect ratio for sharp, detailed enhancements. ## Usage Notes - API Base URL: `https://api.eachlabs.ai/v1` - Authentication: send `X-API-Key: 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.