/image/generate y recibe tu imagen en la misma respuesta, ya sea como base64 dentro de JSON o como binario en bruto cuando return_binary es true.
Endpoints
Paso 1: envía una solicitud de generación
El tamaño es específico de cada modelo. Algunos modelos aceptanwidth y height explícitos; otros exponen aspect_ratio; y los modelos con niveles de resolución exponen aspect_ratio más valores resolution como 1K, 2K o 4K.
Ejemplo basado en píxeles:
images contiene los datos de imagen codificados en base64. Decodifica el primer elemento para guardarlo o mostrarlo. timing.total es la duración total de la solicitud en milisegundos.
Paso 2: decodifica y guarda la imagen
Paso 3: devuelve binario en lugar de JSON (opcional)
Si quieres que el cuerpo de la respuesta sea el propio archivo de imagen, establecereturn_binary: true. Esto es útil cuando quieres transmitir o guardar la imagen directamente sin decodificar base64.
return_binary es true, el cuerpo de la respuesta son datos en bruto image/jpeg, image/png o image/webp según el format solicitado.
variants solo se admite cuando return_binary es false.Paso 4: lista los estilos de imagen disponibles (opcional)
Si quieres usarstyle_preset, primero obtén los estilos disponibles desde /image/styles:
data, no en el nivel superior: lee response.data en lugar de iterar directamente el objeto de la respuesta.
A continuación, pasa uno de esos valores en tu solicitud de generación:
Parámetros de la solicitud
La validación es específica del modelo. Consulta Modelos de imagen y la API de Models antes de confiar en un parámetro entre varios modelos.
Opciones específicas del modelo
Generación de alta resolución
Algunos modelos de imagen admitenaspect_ratio sin un nivel resolution seleccionable. Por ejemplo, qwen-image-2 acepta aspect ratio y lo mapea a dimensiones de salida específicas del modelo:
aspect_ratio más un nivel resolution. Por ejemplo, gpt-image-2, nano-banana-2 y nano-banana-pro admiten 1K, 2K y 4K:
Intensidad de LoRA
Algunos modelos de imagen aplican LoRA adicionales.lora_strength (integer, de 0 a 100) define con qué intensidad se aplican y solo afecta a los modelos que los usan.
La API no acepta archivos LoRA personalizados y ningún endpoint lista los LoRA que usa un modelo. lora_strength es el único control de LoRA.
Contenido adulto y modo seguro
safe_mode controla si el contenido adulto en la salida de generación se difumina. Su valor predeterminado es true, por lo que las imágenes clasificadas como adultas se devuelven difuminadas a menos que envíes safe_mode: false:
safe_mode: false. Ejemplos en la página de precios incluyen lustify-sdxl, lustify-v7 y lustify-v8. Consulta Modelos de imagen y Precios para ver la lista actual y los costes por modelo.
Para editar imágenes existentes, el modelo de edición predeterminado es firered-image-edit. Las políticas de contenido varían según el modelo de edición; si necesitas edición sin censura, usa qwen-edit-uncensored a través de Edición de imágenes.
Cuando safe_mode está activado y el modelo devuelve una salida difuminada o moderada, inspecciona las cabeceras de respuesta x-venice-is-blurred y x-venice-is-content-violation si necesitas detectarlo de forma programática.
¿Usas una app de terceros? Las imágenes para adultos siguen difuminadas a menos que la app envíe
safe_mode: false, o moderation: "low" en el endpoint compatible con OpenAI (ver más abajo).Presets de estilo
Si el modelo seleccionado lo admite,style_preset te permite dirigir la salida sin reescribir todo el prompt. Puedes obtener los nombres válidos de preset desde Image Styles:
Referencias de estilo
style_references va un paso más allá que style_preset: en lugar de un preset con nombre, condiciona la generación a una o más imágenes de referencia. Cada entrada tiene una image y un strength opcional:
La compatibilidad depende de cada modelo. Consulta
GET /models?type=image:
model_spec.supportsStyleReferencesestruesolo en los modelos que aceptan el campo.model_spec.constraints.maxStyleReferenceses el número de entradas que acepta el modelo.model_spec.constraints.supportsStyleReferenceStrengthindica sistrengthtiene algún efecto.
style_references a un modelo sin compatibilidad devuelve 400, igual que superar el límite de ese modelo o enviar una referencia corrupta, inaccesible o demasiado grande. Algunos modelos cobran una tarifa por referencia de estilo por cada imagen devuelta, además del precio base de la imagen; por ejemplo, Krea v2 Large y Krea v2 Medium. La tarifa solo se cobra por las imágenes que realmente se devuelven. Consulta Image Models para ver los precios base por imagen.
Resultados parciales de variantes
Convariants mayor que 1, la política de contenido del proveedor puede rechazar variantes individuales mientras el resto se generan correctamente. En ese caso, el endpoint sigue devolviendo 200 con menos imágenes de las que solicitaste:
- Cuando se omiten una o más variantes, el cuerpo JSON incluye
content_policy_violation_count, el número de variantes omitidas. - La cabecera de respuesta
x-venice-content-violation-countcontiene el mismo recuento. x-venice-is-content-violationyx-venice-is-blurreddescriben las imágenes que se devolvieron.
422. No supongas que len(images) == variants; compara la longitud del array con variants y, cuando esté presente, comprueba content_policy_violation_count.
Endpoint compatible con OpenAI
Si ya estás usando los SDK de imagen de OpenAI o integraciones existentes de DALL-E, Venice también admitePOST /images/generations. Ofrece un formato de solicitud más simple, pero menos funciones que el endpoint nativo de Venice.
Solicitud:
size solo se aplica a los modelos con tamaño en píxeles, que tienen un widthHeightDivisor mayor que 1 en model_spec.constraints de GET /models?type=image. La mayoría de los modelos, incluido qwen-image-2, determinan el tamaño de la salida por relación de aspecto y resolución, e ignoran size.
Algunos parámetros de OpenAI se aceptan por compatibilidad con los SDK, pero se ignoran (n está restringido a 1):
El control de niveles no existe en esta ruta: no hay campo
resolution ni aspect_ratio, y quality no puede subir ni bajar el cargo. Para los modelos GPT Image con niveles, usa el endpoint nativo /image/generate cuando necesites elegir quality, resolution o aspect_ratio.
Usa la ruta compatible con OpenAI para migraciones más rápidas. Usa /image/generate cuando necesites opciones específicas de Venice como cfg_scale, style_preset, style_references, variants o respuestas binarias.
Control del desenfoque de contenido adulto en /images/generations
El endpoint compatible con OpenAI no acepta safe_mode. Enviarlo devuelve un 400 con Unrecognized key(s) in object: 'safe_mode'. Usa en su lugar el parámetro moderation al estilo de OpenAI:
safe_mode solo funciona en el endpoint nativo POST /image/generate. moderation solo funciona en el endpoint compatible con OpenAI POST /images/generations.
La misma división se aplica a la transparencia: /image/generate usa transparent_background: true, mientras que /images/generations usa el parámetro al estilo de OpenAI background: "transparent". Ambos requieren un formato de salida png o webp y un modelo con supportsTransparentBackground: true. Consulta Imágenes con fondo transparente.
Consejos para prompting
- Empieza con el sujeto, después añade medio, iluminación, composición y atmósfera.
- Pon los detalles a evitar en
negative_prompten lugar de sobrecargar el prompt principal. - Reutiliza
seedal iterar para que puedas comparar cambios de prompt sin cambiar completamente la composición. - Mantén el tamaño consciente del modelo. Algunos modelos usan
width/height, algunos usanaspect_ratioy los modelos con niveles de resolución usanaspect_ratiomásresolution. - Usa
variantsdurante la exploración y vuelve a una sola salida una vez que hayas fijado la dirección.
Errores
Cuando
safe_mode está activado (o moderation es auto), inspecciona cabeceras de respuesta como x-venice-is-blurred y x-venice-is-content-violation si necesitas detectar los resultados de moderación de forma programática.