/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 explicitwidth 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:
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, setreturn_binary: true. This is useful when you want to stream or save the image directly without base64 decoding.
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 usestyle_preset, first fetch the available styles from /image/styles:
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 supportaspect_ratio without a selectable resolution tier. For example, qwen-image-2 accepts aspect ratio and maps it to model-specific output dimensions:
aspect_ratio plus a resolution tier. For example, gpt-image-2, nano-banana-2, and nano-banana-pro support 1K, 2K, and 4K:
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:
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:
OpenAI-compatible endpoint
If you’re already using OpenAI image SDKs or existing DALL-E integrations, Venice also supportsPOST /images/generations. It offers a simpler request format, but fewer features than the native Venice endpoint.
Request:
/image/generate when you need Venice-specific options such as cfg_scale, style_preset, variants, or binary responses.
Prompting tips
- Start with the subject, then add medium, lighting, composition, and mood.
- Put must-avoid details in
negative_promptinstead of overloading the main prompt. - Reuse
seedwhen iterating so you can compare prompt changes without fully changing the composition. - Keep sizing model-aware. Some models use
width/height, some useaspect_ratio, and resolution-tier models useaspect_ratioplusresolution. - Use
variantsduring 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.