# Firered Image | Edit | v1.1 FireRed Image Edit v1.1 introduces improved image editing features and enhanced performance for a smoother editing experience. ## API Information - **Model Slug:** firered-image-edit-v1-1 - **Branded URL:** https://www.eachlabs.ai/firered/image-edit/firered-image-edit-v1-1 - **Provider:** FireRed - **Category:** Image to Image - **Output Type:** array - **Status:** active - **Version:** 0.0.1 - **Base Cost:** $0.0325 per megapixel per image - **Estimated Processing Time:** 40 seconds - **Last Updated:** 2026-04-27 - **Interactive Demo:** https://www.eachlabs.ai/ai-models/firered-image-edit-v1-1 ## Pricing - **Charge Type:** dynamic - **Estimate:** $0.0325 per megapixel per image - **Pricing Details:** default: $0.0325 ## Input Schema | Parameter | Type | Required | Default | Constraints | Description | |-----------|------|----------|---------|-------------|-------------| | prompt | string | Yes | - | - | The editing instruction describing what changes to make to the image. Supports both English and Chinese instructions. | | image_urls | array | Yes | - | 1–10 | The URLs of the images to edit. Supports single image editing and multi-image references (e.g., virtual try-on, style transfer from reference, portrait makeup). | | image_size | string | No | square_hd | square_hd,square,portrait_4_3,portrait_16_9,landscape_4_3,landscape_16_9 | The size of the generated image. If None, uses the input image dimensions. | | num_inference_steps | integer | No | 30 | 2–50 | The number of inference steps to perform. More steps generally produce higher quality results. | | guidance_scale | number | No | 4 | 1–10 | Classifier-free guidance scale. Higher values make the model follow the prompt more closely. | | num_images | integer | No | 1 | 1–4 | The number of images to generate. | | enable_safety_checker | boolean | No | true | - | If set to true, the safety checker will be enabled. | | output_format | string | No | png | jpeg,png | The format of the generated image. | | negative_prompt | string | No | - | - | The negative prompt for the generation. | | acceleration | string | No | regular | none,regular,high | The acceleration level to use for inference speed optimization. | | seed | string | No | - | - | The same seed and the same prompt given to the same version of the model will output the same image every time. | ## 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": "firered-image-edit-v1-1", "input": { "prompt": "Keep the entire scene exactly as it is: the starry night sky, the moon, the Milky Way, the mountains, and the dark forest landscape. In the center of the sky, slightly below the moon, create large floating 3D letters spelling “FireRed”. The letters are glossy deep red and molten looking, with intense realistic flames burning along the tops of each letter. The fire glows bright orange and yellow with sparks and embers drifting into the night sky. Directly underneath, add a second line of large stylized 3D letters spelling “IMAGE EDIT”. Both lines of text should be bold, thick, sculpted, and clearly readable, floating naturally in the sky with subtle cinematic lighting reflecting from the flames. Ultra-detailed 3D letters, dramatic fire glow, sparks, embers, cinematic lighting, magical night atmosphere.", "image_urls": [ "https://cdn-us.eachlabs.ai/defaults/207025d556b19f1fed4c5c8ce7ae4e423cf4dcde67a641f0e5879faff727a45c.png" ] } }' ``` ## 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 | ## 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.