# Luma | Uni-1 | Edit Luma Uni-1 Edit transforms existing images using text instructions while preserving the original composition, with optional reference images to guide the final result. ## API Information - **Model Slug:** luma-uni-1-edit - **Branded URL:** https://www.eachlabs.ai/luma/luma-uni/luma-uni-1-edit - **Provider:** Luma - **Category:** Image to Image - **Output Type:** image - **Status:** active - **Base Cost:** Edit pricing: $0.042 base plus $0.003 per source/reference image - **Estimated Processing Time:** 60 seconds - **Interactive Demo:** https://www.eachlabs.ai/ai-models/luma-uni-1-edit ## Pricing - **Charge Type:** dynamic - **Estimated Price (default example):** $0.0450 - **Pricing Details:** Edit pricing: $0.042 base plus $0.003 per source/reference image ### Pricing Rules | Condition | Pricing | | --- | --- | | Rule 1 | Edit pricing: $0.042 base plus $0.003 per source/reference image | ## Input Schema | Parameter | Type | Required | Default | Constraints | Description | |-----------|------|----------|---------|-------------|-------------| | prompt | string | Yes | - | - | Text prompt describing the edit to apply. | | image_url | string | Yes | - | - | URL of the source image to edit. | | style | string | No | auto | auto, manga | Visual style of the edited image. Default: auto. | | output_format | string | No | png | png, jpeg | Encoding format of the edited image. Default: png. | | reference_image_urls | array | No | - | - | Optional reference images used to guide the edit. | ## 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": "luma-uni-1-edit", "input": { "image_url": "https://cdn-us.eachlabs.ai/defaults/b881ef126b71469db98744270b26fd19.png", "prompt": "Edit the uploaded photo: place this woman in a stunning Antarctic polar setting, lovingly cuddling a cute penguin in her arms. Keep her face, freckles, hair, the pink hair clip and all her features fully preserved and unchanged. Dress her in a beautiful warm fur-trimmed winter outfit — an elegant cream and white fur-lined parka with a soft fur hood framing her face. She smiles warmly and tenderly as she holds and gently embraces a small adorable penguin against her chest. Behind her, a breathtaking snowy polar landscape with ice, soft falling snow, and a cold blue-and-white sky. Soft natural cold daylight, rosy cheeks from the cold, photorealistic, sharp detail, heartwarming and magical winter mood." } }' ``` ## 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 | ## Overview **Luma | Uni-1 | Edit Overview** Luma | Uni-1 | Edit is an **image-to-image** editing model designed to transform an existing image from text instructions while preserving the original composition. On each::labs, it fits users who need controlled visual changes without rebuilding the scene from scratch. The model’s main differentiator is that it emphasizes **instruction-based editing** with optional reference images, making it useful when you want to keep the subject, layout, or framing intact while changing style, details, or scene elements. As part of the Luma family, Luma | Uni-1 | Edit is positioned for practical production workflows where consistency matters. It is a strong fit for creators, marketers, and designers who need fast iterative edits, versioning, or localized image changes. In Luma | Uni-1 | Edit API workflows, the value comes from combining a source image with a precise prompt so the model can modify only what needs to change. ## 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.