Skip to main content
Image generation on Venice is synchronous. Send a prompt to /image/generate and receive your image in the same response, either as base64 inside JSON or as raw binary when return_binary is true.

Endpoints

Step 1: Send a generation request

Sizing is model-specific. Some models accept explicit width and height; some expose aspect_ratio; and resolution-tier models expose aspect_ratio plus resolution values such as 1K, 2K, or 4K. Pixel-based sizing example:
Aspect-ratio sizing example:
Resolution-tier sizing example:
The same pattern applies to other resolution-tier models:
Use Image Models or the Models API to confirm which sizing fields each model accepts. Response (200):
The images array contains base64-encoded image data. Decode the first item to save or display it. timing.total is the full request duration in milliseconds.

Step 2: Decode and save the image

Step 3: Return binary instead of JSON (optional)

If you want the response body to be the image file itself, set return_binary: true. This is useful when you want to stream or save the image directly without base64 decoding.
When return_binary is true, the response body is raw image/jpeg, image/png, or image/webp data based on the format you requested.
variants is only supported when return_binary is false.

Step 4: List available image styles (optional)

If you want to use style_preset, first fetch the available styles from /image/styles:
Response (200):
Then pass one of those values into your generation request:
Use the styles endpoint when you want exact preset names instead of guessing them.

Request Parameters

Validation is model-specific. Check Image Models and the Models API before relying on a parameter across multiple models.

Model-specific options

High-resolution generation

Some image models support aspect_ratio without a selectable resolution tier. For example, qwen-image-2 accepts aspect ratio and maps it to model-specific output dimensions:
Other image models support aspect_ratio plus a resolution tier. For example, gpt-image-2, nano-banana-2, and nano-banana-pro support 1K, 2K, and 4K:
Use Image Models to see which models support higher resolutions and how they are priced.

Style presets

If the selected model supports it, style_preset lets you steer the output without rewriting your whole prompt. You can fetch valid preset names from Image Styles:
See Image Styles for the current style list.

OpenAI-compatible endpoint

If you’re already using OpenAI image SDKs or existing DALL-E integrations, Venice also supports POST /images/generations. It offers a simpler request format, but fewer features than the native Venice endpoint. Request:
Use the OpenAI-compatible route for faster migrations. Use /image/generate when you need Venice-specific options such as cfg_scale, style_preset, variants, or binary responses.

Prompting tips

  1. Start with the subject, then add medium, lighting, composition, and mood.
  2. Put must-avoid details in negative_prompt instead of overloading the main prompt.
  3. Reuse seed when iterating so you can compare prompt changes without fully changing the composition.
  4. Keep sizing model-aware. Some models use width/height, some use aspect_ratio, and resolution-tier models use aspect_ratio plus resolution.
  5. Use variants during exploration, then switch back to a single output once you’ve locked in the direction.

Errors

When Safe Venice is enabled, inspect response headers such as x-venice-is-blurred and x-venice-is-content-violation if you need to detect moderation outcomes programmatically.

Available Models

See Image Models for the current model list, pricing, and feature support.