Layout-first generation
Instead of going straight from a sentence to pixels, it builds the image as a structured layout where every element has its own position, size, and description, which you can adjust before and after rendering.
Reve AI's layout-first image model (current generation, Jun 2026), which builds an editable layout between your prompt and the final image, known for precise text placement and native 4K output.
Integrate Reve with a single API call — one key, one unified endpoint, and shared billing across every model on Apiframe.
model: "reve-create" Instead of going straight from a sentence to pixels, it builds the image as a structured layout where every element has its own position, size, and description, which you can adjust before and after rendering.
You can reposition, resize, or rewrite any single element and re-render, rather than rerolling the whole prompt and losing what already worked.
It generates genuine 4096x4096 detail, about 16 megapixels, as real generation rather than a lower-resolution image that is upscaled afterward.
It places in-image and environmental text exactly where it belongs, from titles and packaging to street signs, menus, and labels, with a notably less synthetic look.
It carries a character, product, or material across a full set of images and keeps proportion and perspective honest for product shots and interior comps.
It is known for a filmic, photojournalistic look, and its core loop is built around create, edit, and remix for high-volume design exploration.
Example prompts you can run through the Reve API on Apiframe.
A movie poster reading 'NIGHTFALL' with the title, a release date, and small credits, each placed and readable.
Product packaging for a tea box labeled 'JASMINE GOLD' with ingredients and net weight in the right spots.
A four-panel comic page with ordered panels, gutters, and readable speech balloons.
An event flyer with a headline, schedule, venue, and ticket price, clean hierarchy at 4K.
Carry this character across three scenes, a cafe, a park, and a train, consistent face and outfit.
An interior comp of a modern living room with accurate proportion and perspective for a design brief.
Send a single POST /v2/images/generate request with your API key to
generate with Reve. The call returns a jobId you can poll or
receive via webhook.
curl -X POST https://api.apiframe.ai/v2/images/generate \
-H "X-API-Key: afk_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"prompt": "a sleek silver sports car on a coastal highway at sunset, hyper-realistic",
"model": "reve-create",
"reveParams": {
"seed": 1
}
}'import requests
response = requests.post(
"https://api.apiframe.ai/v2/images/generate",
headers={
"X-API-Key": "afk_your_api_key_here",
"Content-Type": "application/json",
},
json={
"prompt": "a sleek silver sports car on a coastal highway at sunset, hyper-realistic",
"model": "reve-create",
"reveParams": {
"seed": 1
}
},
)
print(response.json()) # { "jobId": "...", "status": "QUEUED" }const response = await fetch("https://api.apiframe.ai/v2/images/generate", {
method: "POST",
headers: {
"X-API-Key": "afk_your_api_key_here",
"Content-Type": "application/json",
},
body: JSON.stringify({
"prompt": "a sleek silver sports car on a coastal highway at sunset, hyper-realistic",
"model": "reve-create",
"reveParams": {
"seed": 1
}
}),
});
const { jobId } = await response.json();
console.log(jobId);Generation is asynchronous. A successful submission returns 202 Accepted with a jobId. Poll GET /v2/jobs/{id} (or supply a webhook_url) until the status is COMPLETED; the result field then holds the output URL(s).
{
"jobId": "b2c3d4e5-f6a7-8901-bcde-f23456789012",
"status": "QUEUED"
}curl https://api.apiframe.ai/v2/jobs/JOB_ID \
-H "X-API-Key: afk_your_api_key_here"import requests, time
while True:
job = requests.get(
"https://api.apiframe.ai/v2/jobs/JOB_ID",
headers={"X-API-Key": "afk_your_api_key_here"},
).json()
if job["status"] in ("COMPLETED", "FAILED"):
break
time.sleep(2)
print(job["result"])let job;
do {
await new Promise((r) => setTimeout(r, 2000));
job = await fetch("https://api.apiframe.ai/v2/jobs/JOB_ID", {
headers: { "X-API-Key": "afk_your_api_key_here" },
}).then((r) => r.json());
} while (job.status !== "COMPLETED" && job.status !== "FAILED");
console.log(job.result);Request parameters accepted by the Reve endpoint. Model-specific options are nested under the params object shown below.
| Parameter | Type | Required | Default | Allowed / range | Description |
|---|---|---|---|---|---|
| prompt | string | required | — | — | Text description of what to generate. |
| model | string | required | "reve-create" | "reve-create" | The model identifier for this endpoint. |
| reveParams.seed | number | optional | — | step 1 | Reuse a number to reproduce the same result. |
Common questions about the Reve API.
Reve AI's image model, whose current generation is the layout-first Reve 2.0, also called Reve Image 2.
It builds an editable layout between your prompt and the final image, so you place and adjust each element instead of re-describing the whole scene.
Yes. You can reposition, resize, or rewrite individual elements and re-render, keeping the approved parts intact.
Native 4K, at 4096x4096, around 16 megapixels, generated directly rather than upscaled.
Text-heavy, layout-critical design like posters, packaging, comics, and multi-asset campaigns.
Through Apiframe, as well as the Reve app and API.
Still have questions?
Get your API key and integrate Reve in minutes — Pay-as-you-go.
Questions? Join our Discord or contact sales.