Zum Hauptinhalt springen
Die Bildgenerierung auf Venice ist synchron. Sende einen Prompt an /image/generate und erhalte dein Bild in derselben Antwort – entweder als Base64 in JSON oder als rohes Binary, wenn return_binary auf true steht.

Endpoints

EndpointZweckWann verwenden
POST /image/generateNative Venice-Bildgenerierungs-APIFür vollständigen Feature-Support
GET /image/stylesVerfügbare Style-Presets auflistenVor dem Senden von style_preset
POST /images/generationsOpenAI-kompatible Bildgenerierungs-APIFür Migration bestehender OpenAI-Image-Clients

Schritt 1: Generierungsanfrage senden

Die Größenangabe ist modellspezifisch. Manche Modelle akzeptieren explizite width und height; manche stellen aspect_ratio bereit; und Resolution-Tier-Modelle bieten aspect_ratio plus resolution-Werte wie 1K, 2K oder 4K. Beispiel für Pixel-basierte Größe:
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"
}
Beispiel für Aspect-Ratio-Größe:
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"
}
Beispiel für Resolution-Tier-Größe:
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"
}
Dasselbe Muster gilt für andere Resolution-Tier-Modelle:
{
  "model": "nano-banana-pro",
  "prompt": "A serene canal in Venice at sunset",
  "aspect_ratio": "16:9",
  "resolution": "2K"
}
Nutze Image-Modelle oder die Models-API, um zu prüfen, welche Größenfelder ein Modell akzeptiert. Antwort (200):
{
  "id": "generate-image-1234567890",
  "images": [
    "UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoQABAAPm..."
  ],
  "timing": {
    "inferenceDuration": 1840,
    "inferencePreprocessingTime": 22,
    "inferenceQueueTime": 31,
    "total": 1893
  }
}
Das images-Array enthält Base64-kodierte Bilddaten. Dekodiere den ersten Eintrag, um das Bild zu speichern oder anzuzeigen. timing.total ist die vollständige Request-Dauer in Millisekunden.

Schritt 2: Bild dekodieren und speichern

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']}")

Schritt 3: Binary statt JSON zurückgeben (optional)

Wenn der Response-Body die Bilddatei selbst sein soll, setze return_binary: true. Das ist nützlich, wenn du das Bild direkt streamen oder speichern willst, ohne Base64 zu dekodieren.
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
  }'
Wenn return_binary auf true steht, ist der Response-Body rohe image/jpeg-, image/png- oder image/webp-Daten – je nach angefordertem format.
variants wird nur unterstützt, wenn return_binary auf false steht.

Schritt 4: Verfügbare Image-Styles auflisten (optional)

Wenn du style_preset nutzen willst, frage zuerst die verfügbaren Styles über /image/styles ab:
curl https://api.venice.ai/api/v1/image/styles \
  -H "Authorization: Bearer $VENICE_API_KEY"
Antwort (200):
[
  "3D Model",
  "Analog Film",
  "Anime",
  "Cinematic",
  "Digital Art"
]
Übergib dann einen dieser Werte in deiner Generierungsanfrage:
{
  "model": "qwen-image-2",
  "prompt": "A futuristic Venice skyline at sunrise",
  "style_preset": "Cinematic"
}
Nutze den Styles-Endpoint, wenn du exakte Preset-Namen brauchst, statt sie zu raten.

Request-Parameter

ParameterTypPflichtDefaultBeschreibung
modelstringJa-Modell-ID für die Generierung
promptstringJa-Was generiert werden soll
negative_promptstringNein-Was im Bild vermieden werden soll
widthintegerNein1024Ausgabebreite in Pixeln für Pixel-basierte Modelle wie venice-sd35 und qwen-image
heightintegerNein1024Ausgabehöhe in Pixeln für Pixel-basierte Modelle wie venice-sd35 und qwen-image
formatstringNeinwebpAusgabeformat: jpeg, png oder webp
variantsintegerNein1Anzahl zu generierender Bilder (14), nur wenn return_binary false ist
return_binarybooleanNeinfalseRohe Image-Bytes statt Base64-JSON zurückgeben
safe_modebooleanNeintrueAdult-Inhalte unscharf machen, wenn aktiviert
seedintegerNeinzufälligDenselben Seed wiederverwenden für konsistentere Iterationen
cfg_scalenumberNeinmodellabhängigHöhere Werte zwingen das Modell, dem Prompt enger zu folgen
style_presetstringNein-Voreingestellten Stil aus Image Styles anwenden
aspect_ratiostringBedingt-Wird von Modellen mit Ratio-basierter Größe verwendet, z. B. qwen-image-2, gpt-image-2, nano-banana-2 und nano-banana-pro
resolutionstringBedingt-Wird von Modellen mit Resolution-Tiers wie 1K, 2K oder 4K verwendet
enable_web_searchbooleanBedingtfalseErmöglicht unterstützten Modellen die Nutzung aktueller Web-Informationen; erzeugt Zusatzkosten
Die Validierung ist modellspezifisch. Prüfe Image-Modelle und die Models-API, bevor du dich quer über mehrere Modelle auf einen Parameter verlässt.

Modellspezifische Optionen

Hochauflösende Generierung

Manche Image-Modelle unterstützen aspect_ratio ohne wählbare resolution-Stufe. Beispiel: qwen-image-2 akzeptiert eine Aspect-Ratio und mappt sie auf modellspezifische Ausgabedimensionen:
{
  "model": "qwen-image-2",
  "prompt": "Editorial product photo of a luxury watch on black marble, dramatic studio lighting",
  "aspect_ratio": "16:9"
}
Andere Image-Modelle unterstützen aspect_ratio plus eine resolution-Stufe. Beispiel: gpt-image-2, nano-banana-2 und nano-banana-pro unterstützen 1K, 2K und 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"
}
Nutze Image-Modelle, um zu sehen, welche Modelle höhere Auflösungen unterstützen und wie sie bepreist werden.

Style-Presets

Wenn das gewählte Modell es unterstützt, kannst du mit style_preset die Ausgabe steuern, ohne deinen gesamten Prompt umzuschreiben. Gültige Preset-Namen findest du unter Image Styles:
{
  "model": "qwen-image-2",
  "prompt": "A futuristic Venice skyline at sunrise",
  "style_preset": "3D Model"
}
Die aktuelle Style-Liste findest du unter Image Styles.

OpenAI-kompatibler Endpoint

Wenn du bereits OpenAI-Image-SDKs oder bestehende DALL-E-Integrationen verwendest, unterstützt Venice auch POST /images/generations. Das Request-Format ist einfacher, bietet aber weniger Features als der native Venice-Endpoint. Request:
{
  "model": "qwen-image-2",
  "prompt": "A clean isometric illustration of an AI control room",
  "size": "1024x1024",
  "response_format": "b64_json"
}
Nutze die OpenAI-kompatible Route für schnellere Migrationen. Verwende /image/generate, wenn du Venice-spezifische Optionen wie cfg_scale, style_preset, variants oder Binary-Responses brauchst.

Prompting-Tipps

  1. Mit dem Motiv beginnen, dann Medium, Beleuchtung, Komposition und Stimmung ergänzen.
  2. Zu vermeidende Details ins negative_prompt stecken, statt den Hauptprompt zu überladen.
  3. seed beim Iterieren wiederverwenden, um Prompt-Änderungen zu vergleichen, ohne die Komposition komplett zu wechseln.
  4. Größenangabe modellbewusst halten. Manche Modelle nutzen width/height, manche aspect_ratio, Resolution-Tier-Modelle aspect_ratio plus resolution.
  5. variants beim Explorieren nutzen, dann auf eine einzelne Ausgabe zurückwechseln, sobald die Richtung steht.

Fehler

StatusBedeutungAktion
400Ungültige Request-ParameterFeldnamen, Typen und modellspezifische Constraints prüfen
401Authentifizierung fehlgeschlagen oder Modell benötigt höhere Access-TierAPI-Schlüssel und Modellzugang prüfen
402Unzureichendes GuthabenCredits unter venice.ai/settings/api aufladen
415Ungültiger Content-TypeJSON mit Content-Type: application/json senden
429Rate-Limit überschritten oder Modell überlastetMit Backoff erneut versuchen; Retry-After-Header beachten
500Inferenz-Verarbeitung fehlgeschlagenRequest wiederholen
503Modell ausgelastetNach kurzer Verzögerung erneut versuchen
Wenn Safe Venice aktiviert ist, prüfe Response-Header wie x-venice-is-blurred und x-venice-is-content-violation, wenn du Moderationsergebnisse programmatisch erkennen musst.

Verfügbare Modelle

Aktuelle Modellliste, Preise und Feature-Support unter Image-Modelle.