Zum Hauptinhalt springen
Die Bildbearbeitung auf Venice ist synchron. Sende dein Quellbild an /image/edit oder /image/multi-edit, und das bearbeitete Ergebnis kommt in derselben Antwort als PNG-Datei zurück. Für Freisteller liefert /image/background-remove ein transparentes PNG.
Die Image-Edit-Endpoints sind experimentell, und modellspezifisches Verhalten kann sich im Laufe der Zeit ändern.

Endpoints

EndpointZweckGeeignet für
POST /image/editEin Bild mit einem Prompt bearbeitenAllgemeine Edits und Prompt-getriebenes Inpainting
POST /image/multi-editBearbeitung mit 1–3 mehrschichtigen BildernKontrolliertere Edits mit Masken oder Overlays
POST /image/background-removeHintergrund eines Bildes entfernenTransparente Freisteller für Produkte, Porträts und Assets

Wann welcher Endpoint?

  • /image/edit verwenden, wenn du ein Quellbild hast und einen Teil davon per Prompt verändern, entfernen oder umstilen willst.
  • /image/multi-edit verwenden, wenn du zusätzliche Kontrolle durch Masken, Overlays oder Referenz-Layer brauchst.
  • /image/background-remove verwenden, wenn du nur ein sauberes Vordergrundmotiv mit Transparenz brauchst.
Für Inpainting /image/edit oder /image/multi-edit verwenden. Der alte inpaint-Parameter auf /image/generate ist deprecated.

Schritt 1: Ein einzelnes Bild bearbeiten

Single-Image-Edit ist der einfachste Inpainting-Flow. Sende ein Bild plus einen kurzen Prompt wie „remove the sign”, „change the sky to sunrise” oder „replace the background with a studio backdrop”. Request:
POST https://api.venice.ai/api/v1/image/edit
Authorization: Bearer $VENICE_API_KEY
Content-Type: application/json

{
  "model": "qwen-edit",
  "prompt": "Replace the cloudy sky with a warm sunrise while preserving the buildings and canal",
  "image": "https://example.com/venice-canal.jpg"
}
Antwort (200): Der Response-Body sind rohe image/png-Binärdaten. Speichere sie direkt in eine Datei.
import base64
import os
import requests

with open("input.jpg", "rb") as f:
    image_base64 = base64.b64encode(f.read()).decode("utf-8")

response = requests.post(
    "https://api.venice.ai/api/v1/image/edit",
    headers={
        "Authorization": f"Bearer {os.environ['VENICE_API_KEY']}",
        "Content-Type": "application/json",
    },
    json={
        "model": "qwen-edit",
        "prompt": "Remove the tourist crowd from the square and keep the architecture intact",
        "image": image_base64,
    },
)

with open("edited.png", "wb") as f:
    f.write(response.content)

Schritt 2: Multi-Edit für Masken oder mehrschichtiges Inpainting nutzen

/image/multi-edit akzeptiert bis zu drei Bilder. Das erste Bild ist das Basis-Bild. Die weiteren Bilder werden als Edit-Layer oder Masken behandelt – das gibt dir mehr Kontrolle als reines Prompt-Editing. Das ist die bessere Wahl, wenn du:
  • eine bestimmte Region per Maske gezielt ansprechen willst
  • eine bestehende Komposition mit einem Overlay kombinieren willst
  • den Edit enger einschränken willst, als es ein Single-Image-Prompt erlaubt
JSON-Request:
{
  "modelId": "qwen-edit",
  "prompt": "Replace the blank billboard area with a glowing Venice film festival poster while preserving lighting and perspective",
  "images": [
    "https://example.com/street-scene.png",
    "https://example.com/billboard-mask.png"
  ]
}
Multipart-Request:
curl https://api.venice.ai/api/v1/image/multi-edit \
  -H "Authorization: Bearer $VENICE_API_KEY" \
  -F "modelId=qwen-edit" \
  -F "prompt=Replace the blank billboard area with a glowing Venice film festival poster while preserving lighting and perspective" \
  -F "[email protected]" \
  -F "[email protected]" \
  -o multi-edited.png
Wie bei /image/edit sind die Response-Body rohe image/png-Daten.
/image/multi-edit verwendet im Request-Schema derzeit das Feld modelId statt model.

Inpainting-Tipps

Prompt-basiertes Inpainting funktioniert am besten, wenn die Anweisung kurz und lokal ist:
  • remove the tree
  • change the sky to sunset
  • replace the logo with a blank sign
  • restore the torn corner of the photo
Für umfangreichere Szenenänderungen beschreibe, was unverändert bleiben soll:
Replace the background with a modern photo studio backdrop while preserving the subject pose, facial features, and clothing.
Wenn der Edit ständig den falschen Bereich trifft, wechsle von /image/edit zu /image/multi-edit und übergib einen Masken- oder Overlay-Layer.

Schritt 3: Hintergrund entfernen

Verwende /image/background-remove, wenn du das Vordergrundmotiv auf transparentem Hintergrund isoliert haben willst. Dieser Endpoint liefert ein PNG mit Alpha-Transparenz. Per Bild-URL:
curl https://api.venice.ai/api/v1/image/background-remove \
  -H "Authorization: Bearer $VENICE_API_KEY" \
  -H "Content-Type: application/json" \
  -o cutout.png \
  -d '{
    "image_url": "https://example.com/product-photo.jpg"
  }'
Per lokalem Datei-Upload:
curl https://api.venice.ai/api/v1/image/background-remove \
  -H "Authorization: Bearer $VENICE_API_KEY" \
  -F "[email protected]" \
  -o cutout.png
Hintergrundentfernung eignet sich für:
  • E-Commerce-Produktfotos
  • Profilbilder und Porträts
  • Assets, die du auf einen neuen Hintergrund legen willst

Request-Parameter

/image/edit

ParameterTypPflichtDefaultBeschreibung
imageDatei, Base64-String oder URLJa-Zu bearbeitendes Quellbild
promptstringJa-Text-Anweisungen für den Edit
modelstringNeinqwen-editEdit-Modell-ID
aspect_ratiostringNeinModell-DefaultOutput-Ratio bei Modellen, die das unterstützen
modelIdstringDeprecated-Deprecated-Alias für model

/image/multi-edit

ParameterTypPflichtDefaultBeschreibung
imagesArray aus 1–3 Dateien, Base64-Strings oder URLsJa-Erstes Bild ist das Basis-Bild; weitere sind Edit-Layer oder Masken
promptstringJa-Text-Anweisungen, wie die Layer kombiniert oder bearbeitet werden
modelIdstringNeinqwen-editEdit-Modell-ID

/image/background-remove

ParameterTypPflichtBeschreibung
imageDatei oder Base64-StringEines von image oder image_urlQuellbild zum Freistellen
image_urlstringEines von image oder image_urlÖffentliche Bild-URL zum Freistellen

Unterstützte Eingabeformate

EndpointJSON-InputMultipart-InputOutput
/image/editBase64-String oder URLDatei-Uploadimage/png
/image/multi-editBase64-Strings oder URLsDatei-Uploadsimage/png
/image/background-removeBase64-String oder URLDatei-Uploadimage/png
Für Edit-Endpoints müssen die Bilddimensionen mindestens 65536 Pixel und höchstens 33177600 Pixel betragen. Uploaded files müssen unter 25MB sein.

Modelle und Preise

Das Default-Edit-Modell ist qwen-edit, $0,04 pro Edit. Andere edit-fähige Modelle können andere Preise und Einschränkungen haben. Siehe:

Fehler

StatusBedeutungAktion
400Ungültige Request-ParameterBildanzahl, Feldnamen und Input-Format prüfen
401Authentifizierung fehlgeschlagenAPI-Schlüssel prüfen
402Unzureichendes GuthabenCredits unter venice.ai/settings/api aufladen
415Ungültiger Content-TypeJSON oder Multipart-Form-Data korrekt nutzen
429Rate-Limit überschritten oder Modell überlastetMit Backoff erneut versuchen; Retry-After-Header beachten
500Inferenz-Verarbeitung fehlgeschlagenRequest wiederholen
503Modell ausgelastetNach kurzer Verzögerung erneut versuchen
Einige Edit-Modelle haben strengere Content-Policies als Image-Generation-Modelle. Zum Beispiel blockiert qwen-edit Anfragen, die explizite sexuelle Inhalte, sexualisierte Minderjährige oder reale Gewalt betreffen.

Verwandte Workflows