# Reve 2.1 Edit Reve 2.1 edits your images from text prompts, offering strong layout control, accurate text rendering, and configurable aspect ratio and output format. ## API Information - **Model Slug:** reve-2-1-edit - **Branded URL:** https://www.eachlabs.ai/reve/reve-2-1/reve-2-1-edit - **Provider:** Reve - **Category:** Image to Image - **Output Type:** image - **Status:** active - **Version:** 0.0.1 - **Base Cost:** Reve 2.1 Edit - **Estimated Processing Time:** 80 seconds - **Last Updated:** 2026-07-22 - **Interactive Demo:** https://www.eachlabs.ai/ai-models/reve-2-1-edit ## Pricing - **Charge Type:** dynamic - **Estimated Price (default example):** $0.2500 - **Pricing Details:** Reve 2.1 Edit ### Pricing Rules | Condition | Pricing | | --- | --- | | Rule 1 | Reve 2.1 Edit | ## Input Schema No input parameters documented. ## 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": "reve-2-1-edit", "input": {} }' ``` ## 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 **Reve 2.1 Edit Overview** Reve 2.1 Edit is an advanced **image-to-image** model from Reve AI’s **Reve Image** family, designed for high-fidelity image editing driven entirely by text prompts. Built on the layout-first architecture introduced with Reve Image 2.x, Reve 2.1 Edit plans every image as a structured, addressable layout before rendering pixels, giving users precise control over composition, typography, and element placement. Its primary differentiator is native 4K editing with reliable, readable text rendering inside images, including foreign scripts, making it particularly strong for marketing materials, posters, and packaging mockups. On each::labs, Reve 2.1 Edit connects this capability to a streamlined image-to-image workflow, so you can upload an existing asset, describe the changes in natural language, and receive print-ready outputs with accurate layout and text. ## 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.