Skip to main content
image.generate turns a text prompt into an image on a hosted diffusion model. Ask for a tier and the platform picks the model, or pin an exact model id to reach its own controls. The result is a webp file returned as a signed URL, the same async job shape as everything else on Rendobar. This is one product in Rendobar’s Generation API.

Generate an image

No inputs are needed. The prompt is the whole request. Every generation job is async, so you submit, then poll, wait, or receive a webhook.

The output

A completed job carries a single webp file in output.file. output.data is null, because generation writes a file rather than computing an answer.
The real dimensions are in output.file.meta. Each model snaps your requested width and height to a size it can render, so the returned image can differ from what you asked for. The full output shape is the same for every job type.

Watch it render

A generation job emits job.preview events while the model denoises, each carrying a small webp frame. Subscribe with the SDK to show the picture resolving instead of a spinner.
Previews are decoration and never hold up a job. They are ephemeral: nothing is replayed on reconnect, and a late subscriber sees only the newest frame. A model with no fast decoder emits none, and a four-step model resolves too late to be worth watching. Build for zero frames and treat anything you get as a bonus.

Tiers and models

Set model to a tier alias for a price and quality posture without naming a model, or pin an exact model id to reach that model’s own controls. Omit model and you get the economy tier.
The three tiers map to these models today. Aliases can be re-pointed as the catalog grows, so pin an exact id when you need a result to stay stable. You can also pin a model that no tier points at:
Price is the model’s priceTier, a relative comparison from $ to $$$$. It is not a per-image charge. Jobs bill on the compute they actually use, cost-plus, so a slower model on a bigger GPU costs more per image. See credits and billing.

Models under review

A model can be pulled from tier resolution while we re-evaluate its cost and quality. It stays in GET /models with underReview: true, and pinning it returns VALIDATION_ERROR at submit before anything is billed. ernie-image-turbo and qwen-image-2512-lightning are under review today. Use a tier, or pin one of the models above.

Model-specific controls

Tier aliases accept the base fields only. To use steps, guidance, or negativePrompt, pin an exact model id. Sending a control the resolved model does not support returns VALIDATION_ERROR before anything is billed. flux-2-klein-4b fixes its own step count and exposes the base fields only.

Parameters

string
required
What you want, in plain language. No special syntax. Up to 4000 characters.
string
default:"economy"
A tier alias (economy, standard, premium) or an exact model id. A tier lets the platform pick the model. A pinned id unlocks that model’s own controls.
integer
Requested output width in pixels, up to 4096. Snapped to what the model can render. The real size comes back in output.file.meta.
integer
Requested output height in pixels, up to 4096. Snapped to what the model can render.
integer
A fixed seed makes the result reproducible. Omit it for a fresh random image each time.
boolean
Rewrite the prompt for the model before generating. Off by default on every model in the catalog today. The default is per model (enhanceDefault in GET /models), so omit it to keep whatever the model ships with.
integer
Denoise steps. More steps means more detail and more time. Requires a pinned model that exposes steps. The accepted range depends on the model.
number
How strictly to follow the prompt. Higher is stricter. Range 1 to 10. Requires qwen-image-2512 or flux-2-dev.
string
What to keep out of the image. Up to 1000 characters. Requires qwen-image-2512.

Discover models

GET /models lists every generation model with its tier, relative price, capabilities, and step range, so a model picker never has to hardcode the catalog. Filter to one job type with ?job=.
Read tier to group models, priceTier to sort them by cost, and underReview to grey out the ones that will not run. steps is null on a model that fixes its own step count.

Errors

A bad request fails on POST /jobs before anything is billed. An unknown model id, or a control the resolved model does not support, returns VALIDATION_ERROR. After the job starts, failures carry the standard error shape.

See also

  • Generation API: the modalities and the shared model catalog
  • Image edit: change an existing image from an instruction
  • Job output: the output shape every job returns
  • SDK: jobs.run, jobs.wait, and reading the output
  • Webhooks: receive job.completed instead of polling