Saltar al contenido principal
La generación de imágenes en Venice es síncrona. Envía un prompt a /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

EndpointPropósitoCuándo usarlo
POST /image/generateAPI nativa de generación de imagen de VeniceÚsala para soporte completo de funciones
GET /image/stylesLista los presets de estilo disponiblesÚsalo antes de enviar style_preset
POST /images/generationsAPI de generación de imagen compatible con OpenAIÚsala al migrar clientes existentes de imagen de OpenAI

Paso 1: envía una solicitud de generación

El tamaño es específico de cada modelo. Algunos modelos aceptan width 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:
POST https://api.venice.ai/api/v1/image/generate
Authorization: Bearer $VENICE_API_KEY
Content-Type: application/json

{
  "model": "venice-sd35",
  "prompt": "A cinematic photo of a gondola passing through a narrow Venice canal at blue hour, warm window lights reflecting on the water",
  "negative_prompt": "blurry, low quality, distorted anatomy, text, watermark",
  "width": 1024,
  "height": 1024,
  "format": "webp"
}
Ejemplo basado en aspect ratio:
POST https://api.venice.ai/api/v1/image/generate
Authorization: Bearer $VENICE_API_KEY
Content-Type: application/json

{
  "model": "qwen-image-2",
  "prompt": "A cinematic photo of a gondola passing through a narrow Venice canal at blue hour",
  "aspect_ratio": "16:9",
  "format": "webp"
}
Ejemplo con nivel de resolución:
POST https://api.venice.ai/api/v1/image/generate
Authorization: Bearer $VENICE_API_KEY
Content-Type: application/json

{
  "model": "gpt-image-2",
  "prompt": "A cinematic wide shot of a gondola passing through a narrow Venice canal at blue hour",
  "aspect_ratio": "16:9",
  "resolution": "4K",
  "format": "png"
}
El mismo patrón se aplica a otros modelos con niveles de resolución:
{
  "model": "nano-banana-pro",
  "prompt": "A serene canal in Venice at sunset",
  "aspect_ratio": "16:9",
  "resolution": "2K"
}
Usa Modelos de imagen o la API de Models para confirmar qué campos de tamaño acepta cada modelo. Respuesta (200):
{
  "id": "generate-image-1234567890",
  "images": [
    "UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoQABAAPm..."
  ],
  "timing": {
    "inferenceDuration": 1840,
    "inferencePreprocessingTime": 22,
    "inferenceQueueTime": 31,
    "total": 1893
  }
}
El array 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

import base64
import os
import requests

response = requests.post(
    "https://api.venice.ai/api/v1/image/generate",
    headers={
        "Authorization": f"Bearer {os.environ['VENICE_API_KEY']}",
        "Content-Type": "application/json",
    },
    json={
        "model": "venice-sd35",
        "prompt": "A cinematic photo of a gondola passing through a narrow Venice canal at blue hour, warm window lights reflecting on the water",
        "width": 1024,
        "height": 1024,
        "format": "webp",
    },
)

data = response.json()
image_bytes = base64.b64decode(data["images"][0])

with open("output.webp", "wb") as f:
    f.write(image_bytes)

print(f"Saved image from request {data['id']}")

Paso 3: devuelve binario en lugar de JSON (opcional)

Si quieres que el cuerpo de la respuesta sea el propio archivo de imagen, establece return_binary: true. Esto es útil cuando quieres transmitir o guardar la imagen directamente sin decodificar base64.
curl https://api.venice.ai/api/v1/image/generate \
  -H "Authorization: Bearer $VENICE_API_KEY" \
  -H "Content-Type: application/json" \
  -o output.png \
  -d '{
    "model": "qwen-image-2",
    "prompt": "Minimalist poster of a moonlit Venetian bridge in deep blue tones",
    "format": "png",
    "return_binary": true
  }'
Cuando 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 usar style_preset, primero obtén los estilos disponibles desde /image/styles:
curl https://api.venice.ai/api/v1/image/styles \
  -H "Authorization: Bearer $VENICE_API_KEY"
Respuesta (200):
[
  "3D Model",
  "Analog Film",
  "Anime",
  "Cinematic",
  "Digital Art"
]
A continuación, pasa uno de esos valores en tu solicitud de generación:
{
  "model": "qwen-image-2",
  "prompt": "A futuristic Venice skyline at sunrise",
  "style_preset": "Cinematic"
}
Usa el endpoint de estilos cuando quieras nombres exactos de presets en lugar de adivinarlos.

Parámetros de la solicitud

ParámetroTipoObligatorioPredeterminadoDescripción
modelstring-ID del modelo a usar para la generación
promptstring-Qué generar
negative_promptstringNo-Qué evitar en la imagen
widthintegerNo1024Ancho de salida en píxeles para modelos basados en píxeles como venice-sd35 y qwen-image
heightintegerNo1024Alto de salida en píxeles para modelos basados en píxeles como venice-sd35 y qwen-image
formatstringNowebpFormato de salida: jpeg, png o webp
variantsintegerNo1Número de imágenes a generar (1-4), solo cuando return_binary es false
return_binarybooleanNofalseDevuelve bytes de imagen en bruto en lugar de JSON con base64
safe_modebooleanNotrueDifumina contenido para adultos cuando está habilitado
seedintegerNoaleatorioReutiliza la misma seed para iteraciones más consistentes
cfg_scalenumberNodepende del modeloValores más altos hacen que el modelo siga el prompt más estrictamente
style_presetstringNo-Aplica un estilo preset de Image Styles
aspect_ratiostringCondicional-Usado por modelos que admiten tamaño basado en ratio, como qwen-image-2, gpt-image-2, nano-banana-2 y nano-banana-pro
resolutionstringCondicional-Usado por modelos que admiten niveles de resolución como 1K, 2K o 4K
enable_web_searchbooleanCondicionalfalsePermite a los modelos admitidos usar información actual de la web; añade coste extra
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 admiten aspect_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:
{
  "model": "qwen-image-2",
  "prompt": "Editorial product photo of a luxury watch on black marble, dramatic studio lighting",
  "aspect_ratio": "16:9"
}
Otros modelos de imagen admiten aspect_ratio más un nivel resolution. Por ejemplo, gpt-image-2, nano-banana-2 y nano-banana-pro admiten 1K, 2K y 4K:
{
  "model": "gpt-image-2",
  "prompt": "Editorial product photo of a luxury watch on black marble, dramatic studio lighting",
  "aspect_ratio": "16:9",
  "resolution": "4K"
}
{
  "model": "nano-banana-2",
  "prompt": "Editorial product photo of a luxury watch on black marble, dramatic studio lighting",
  "aspect_ratio": "16:9",
  "resolution": "2K"
}
Usa Modelos de imagen para ver qué modelos admiten resoluciones más altas y cómo se cobran.

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:
{
  "model": "qwen-image-2",
  "prompt": "A futuristic Venice skyline at sunrise",
  "style_preset": "3D Model"
}
Consulta Image Styles para ver la lista de estilos actual.

Endpoint compatible con OpenAI

Si ya estás usando los SDK de imagen de OpenAI o integraciones existentes de DALL-E, Venice también admite POST /images/generations. Ofrece un formato de solicitud más simple, pero menos funciones que el endpoint nativo de Venice. Solicitud:
{
  "model": "qwen-image-2",
  "prompt": "A clean isometric illustration of an AI control room",
  "size": "1024x1024",
  "response_format": "b64_json"
}
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, variants o respuestas binarias.

Consejos para prompting

  1. Empieza con el sujeto, después añade medio, iluminación, composición y atmósfera.
  2. Pon los detalles a evitar en negative_prompt en lugar de sobrecargar el prompt principal.
  3. Reutiliza seed al iterar para que puedas comparar cambios de prompt sin cambiar completamente la composición.
  4. Mantén el tamaño consciente del modelo. Algunos modelos usan width/height, algunos usan aspect_ratio y los modelos con niveles de resolución usan aspect_ratio más resolution.
  5. Usa variants durante la exploración y vuelve a una sola salida una vez que hayas fijado la dirección.

Errores

EstadoSignificadoAcción
400Parámetros de solicitud no válidosComprueba nombres de campo, tipos y restricciones específicas del modelo
401Autenticación fallida o el modelo requiere un nivel de acceso mayorComprueba tu API key y el acceso al modelo
402Saldo insuficienteAñade créditos en venice.ai/settings/api
415Tipo de contenido no válidoEnvía JSON con Content-Type: application/json
429Límite de velocidad excedido o modelo sobrecargadoReintenta con backoff; comprueba la cabecera Retry-After
500Procesamiento de inferencia fallidoReintenta la solicitud
503Modelo a capacidad máximaReintenta tras una breve demora
Cuando Safe Venice está activado, 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.

Modelos disponibles

Consulta Modelos de imagen para la lista actual de modelos, precios y soporte de funciones.