# Flux 3 | Edit Flux 3 Edit transforms reference images with text instructions for restyling, visual edits, and new compositions, with selectable output sizes on each::labs. ## API Information - **Model Slug:** flux-3-edit - **Branded URL:** https://www.eachlabs.ai/black-forest-labs/flux-3/flux-3-edit - **Provider:** Black Forest Labs - **Category:** Image to Image - **Output Type:** image - **Status:** active - **Base Cost:** $0.041–$0.607 per execution, depending on resolution - **Interactive Demo:** https://www.eachlabs.ai/ai-models/flux-3-edit ## Pricing - **Charge Type:** dynamic - **Estimate:** $0.041–$0.607 per execution, depending on resolution - **Pricing Details:** 768sq: $0.041 - **Pricing Details:** 1k (default): $0.048 - **Pricing Details:** 2k: $0.1 - **Pricing Details:** 4k: $0.607 ## Input Schema | Parameter | Type | Required | Default | Constraints | Description | |-----------|------|----------|---------|-------------|-------------| | prompt | string | Yes | - | - | Text describing the edit, restyle or composition to apply. Refer to the references as Image 1, Image 2, ... in upload order. To place elements, tag each one as and end the prompt with a JSON list of {"id", "from", "src_bbox", "tgt_bbox", "desc"} rows on a 0-1000 grid. | | image_urls | array | Yes | - | - | 1 to 10 reference images to edit or combine. Each must be at least 256x256 pixels and at most 16 megapixels. | | aspect_ratio | string | No | auto | auto, 21:9, 2:1, 16:9, 3:2, 7:5, 4:3, 5:4, 1:1, 4:5, 3:4, 5:7, 2:3, 9:16, 1:2, 9:21 | Aspect ratio of the generated image. auto follows the first reference image. Default: auto. | | resolution | string | No | 1k | 768sq, 1k, 2k, 4k | Output size: 768sq (~0.6 MP, 768x768 at 1:1), 1k (~1 MP), 2k (~4 MP) or 4k (~16 MP). 4k can take several minutes. Default: 1k. | | grounding | boolean | No | true | - | Let the model research the prompt with web and image search before generating. Default: true. | | safety_tolerance | integer | No | 2 | 0–4 | Moderation tolerance for input and output. 0 is the strictest, 4 the most permissive. Default: 2. | ## 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-3-edit", "input": { "image_urls": [ "https://cdn-us.eachlabs.ai/defaults/563f6a534cd94a5ab00ed6deef46c69d.jpg" ], "prompt": "Use the uploaded woman as the subject and fully preserve her face, facial features, skin tone, eye color, hair color, hairstyle and body proportions exactly as in the reference photo. Tight editorial portrait, framed from the top of the flamingo's head down to her upper chest, the woman slightly off-center to the right. A realistic flamingo with soft orange-coral feathers stands behind her: only its long curved neck and head are visible, the neck rising in an S-curve on the left side of the frame, its body almost completely out of frame. The flamingo's head rests flat on top of her head, with its black-tipped beak pointing horizontally to the right, extending past her hairline, like a surreal hat. The flamingo's eye has exactly the same color as the woman's eyes, creating a striking mirrored eye-color detail. The woman looks directly into the camera with a neutral, slightly melancholic expression, lips relaxed and slightly parted. She wears a simple ivory silk blouse with a soft open collar, matte satin sheen, no bow. Seamless muted burnt-orange studio background, tone-on-tone warm orange and coral palette, soft directional window light from the left with gentle shadows, analog film look, subtle grain, slightly faded colors, natural skin texture with freckles, high-fashion magazine aesthetic, 85mm lens, sharp focus on her eyes." } }' ``` ## 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 "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 | ## 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.