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.

Adult content and safe mode

safe_mode controls whether adult content in generation output is blurred. It defaults to true. Set it to false if your use case allows adult content and you want the raw output:
Some image models are specifically designed for adult / uncensored generation and pair well with safe_mode: false. Examples on the pricing page include lustify-sdxl, lustify-v7, and lustify-v8. See Image Models and Pricing for the current list and per-model costs. For editing existing images, the default edit model qwen-edit blocks explicit sexual imagery. If you need uncensored editing, use qwen-edit-uncensored via Image Editing. When safe_mode is enabled and the model returns blurred or moderated output, inspect the x-venice-is-blurred and x-venice-is-content-violation response headers if you need to detect that programmatically.

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.