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
| Endpoint | Zweck | Geeignet für |
|---|
POST /image/edit | Ein Bild mit einem Prompt bearbeiten | Allgemeine Edits und Prompt-getriebenes Inpainting |
POST /image/multi-edit | Bearbeitung mit 1–3 mehrschichtigen Bildern | Kontrolliertere Edits mit Masken oder Overlays |
POST /image/background-remove | Hintergrund eines Bildes entfernen | Transparente 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
| Parameter | Typ | Pflicht | Default | Beschreibung |
|---|
image | Datei, Base64-String oder URL | Ja | - | Zu bearbeitendes Quellbild |
prompt | string | Ja | - | Text-Anweisungen für den Edit |
model | string | Nein | qwen-edit | Edit-Modell-ID |
aspect_ratio | string | Nein | Modell-Default | Output-Ratio bei Modellen, die das unterstützen |
modelId | string | Deprecated | - | Deprecated-Alias für model |
/image/multi-edit
| Parameter | Typ | Pflicht | Default | Beschreibung |
|---|
images | Array aus 1–3 Dateien, Base64-Strings oder URLs | Ja | - | Erstes Bild ist das Basis-Bild; weitere sind Edit-Layer oder Masken |
prompt | string | Ja | - | Text-Anweisungen, wie die Layer kombiniert oder bearbeitet werden |
modelId | string | Nein | qwen-edit | Edit-Modell-ID |
/image/background-remove
| Parameter | Typ | Pflicht | Beschreibung |
|---|
image | Datei oder Base64-String | Eines von image oder image_url | Quellbild zum Freistellen |
image_url | string | Eines von image oder image_url | Öffentliche Bild-URL zum Freistellen |
| Endpoint | JSON-Input | Multipart-Input | Output |
|---|
/image/edit | Base64-String oder URL | Datei-Upload | image/png |
/image/multi-edit | Base64-Strings oder URLs | Datei-Uploads | image/png |
/image/background-remove | Base64-String oder URL | Datei-Upload | image/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
| Status | Bedeutung | Aktion |
|---|
400 | Ungültige Request-Parameter | Bildanzahl, Feldnamen und Input-Format prüfen |
401 | Authentifizierung fehlgeschlagen | API-Schlüssel prüfen |
402 | Unzureichendes Guthaben | Credits unter venice.ai/settings/api aufladen |
415 | Ungültiger Content-Type | JSON oder Multipart-Form-Data korrekt nutzen |
429 | Rate-Limit überschritten oder Modell überlastet | Mit Backoff erneut versuchen; Retry-After-Header beachten |
500 | Inferenz-Verarbeitung fehlgeschlagen | Request wiederholen |
503 | Modell ausgelastet | Nach 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