# Ideogram 4.5 Edit Ideogram 4.5 Edit transforms images with text prompts, reference images and optional masks. Create image variations for design and visual content on each::labs. ## API Information - **Model Slug:** ideogram-v4-5-edit - **Branded URL:** https://www.eachlabs.ai/ideogram/ideogram/ideogram-v4-5-edit - **Provider:** Ideogram - **Category:** Image to Image - **Output Type:** array - **Status:** active - **Base Cost:** $0.008–$0.22 per image, depending on quality - **Interactive Demo:** https://www.eachlabs.ai/ai-models/ideogram-v4-5-edit ## Pricing - **Charge Type:** dynamic - **Estimate:** $0.008–$0.22 per image, depending on quality - **Pricing Details:** very_low: $0.008 - **Pricing Details:** low: $0.03 - **Pricing Details:** medium (default): $0.06 - **Pricing Details:** high: $0.22 ## Input Schema | Parameter | Type | Required | Default | Constraints | Description | |-----------|------|----------|---------|-------------|-------------| | prompt | string | Yes | - | - | The generation or editing prompt. | | image_url | string | Yes | - | - | Primary source image to edit. | | reference_image_urls | array | No | - | - | Up to four references plus the primary source, or three references plus the primary source and mask. | | mask_url | string | No | - | - | Mask matching the source dimensions. Black edits, white preserves. Must contain both regions after rounding. | | image_size | string | No | auto | auto, square, square_hd, portrait_4_3, landscape_4_3, portrait_16_9, landscape_16_9, custom | auto preserves source geometry, downscaled by the provider if needed. Only unmasked regular edits accept named presets or custom sizes: dimensions >=256, multiples of 32, area <=4194304, ratio <=6:1. Named presets use standard fal dimensions. Default value: auto | | num_images | integer | No | 1 | 1–8 | Number of images to generate. | | quality | string | No | medium | very_low, low, medium, high | Quality tier for either edit precision. Defaults to medium. | | seed | integer | No | - | - | Random seed. Omit to choose automatically. | ## 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": "ideogram-v4-5-edit", "input": { "image_url": "https://cdn-us.eachlabs.ai/defaults/84a44c125f4442f4b549c544b5297320.png", "prompt": "Use the first uploaded image as the woman and fully preserve her face, facial features, skin tone, eye color, hair color, hairstyle, body proportions and her exact outfit, including all clothing items, colors, fabrics, patterns, shoes and accessories, exactly as in the reference. Do not change or add any clothing. Use the second uploaded image as the eyeglasses and preserve the exact frame shape, color, material, thickness and design details of the glasses.\n\nUltra-realistic high-end fashion editorial photo of the woman wearing the eyeglasses, standing on a sunlit cobblestone street in a charming European city with elegant cream stone buildings, small shopfronts and balconies softly blurred in the background. She poses confidently in a relaxed fashion stance, body slightly angled, one hand lightly touching the side of the glasses frame, looking into the camera with a subtle, self-assured smile. The glasses sit naturally and perfectly on her face, correctly sized and aligned, with both temple arms resting over her ears.\n\nThree-quarter body shot, shot on an 85mm lens at eye level, shallow depth of field, soft natural daylight with gentle highlights on the frame, clean and refined color grading, sharp focus on her face and the eyeglasses, realistic skin texture and detailed frame materials, luxury eyewear campaign aesthetic, 8K quality, no logos or text." } }' ``` ## 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.