L’édition d’images sur Venice est synchrone. Envoyez votre image source à /image/edit ou /image/multi-edit et le résultat édité revient dans la même réponse sous forme de fichier PNG. Pour les détourages, /image/background-remove renvoie un PNG transparent.
Les endpoints d’édition d’images sont expérimentaux et le comportement spécifique au modèle peut évoluer au fil du temps.
Endpoints
| Endpoint | Objectif | Idéal pour |
|---|
POST /image/edit | Éditer une seule image avec un prompt | Éditions générales et inpainting piloté par prompt |
POST /image/multi-edit | Éditer en utilisant 1 à 3 images superposées | Éditions plus contrôlées avec masques ou superpositions |
POST /image/background-remove | Supprimer l’arrière-plan d’une image | Détourages transparents pour produits, portraits et assets |
Quand utiliser quel endpoint
- Utilisez
/image/edit lorsque vous avez une image source et souhaitez modifier, supprimer ou restyler une partie de celle-ci avec un prompt.
- Utilisez
/image/multi-edit lorsque vous avez besoin d’un contrôle supplémentaire via des masques, des superpositions ou des couches de référence.
- Utilisez
/image/background-remove lorsque vous souhaitez uniquement un sujet de premier plan propre avec transparence.
Pour l’inpainting, utilisez /image/edit ou /image/multi-edit. L’ancien paramètre inpaint sur /image/generate est déprécié.
Étape 1 : Éditer une seule image
L’édition d’une seule image est le flux d’inpainting le plus simple. Envoyez une image et un prompt court tel que « remove the sign », « change the sky to sunrise » ou « replace the background with a studio backdrop ».
Requête :
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"
}
Réponse (200) :
Le corps de la réponse est constitué de données binaires brutes image/png. Enregistrez-les directement dans un fichier.
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)
Étape 2 : Utiliser multi-edit pour les masques ou l’inpainting en couches
/image/multi-edit accepte jusqu’à trois images. La première image est l’image de base. Les images restantes sont traitées comme des couches d’édition ou des masques, ce qui vous donne plus de contrôle que l’édition par prompt seul.
C’est le meilleur choix lorsque vous souhaitez :
- cibler une région spécifique avec un masque
- combiner une composition existante avec une superposition
- contraindre l’édition plus étroitement qu’un prompt sur une seule image ne peut le faire
Requête JSON :
{
"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"
]
}
Requête multipart :
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
Comme pour /image/edit, le corps de la réponse est constitué de données image/png brutes.
/image/multi-edit utilise actuellement le champ modelId plutôt que model dans le schéma de requête.
Conseils d’inpainting
L’inpainting basé sur prompt fonctionne mieux lorsque l’instruction est courte et locale :
remove the tree
change the sky to sunset
replace the logo with a blank sign
restore the torn corner of the photo
Pour des changements de scène plus larges, décrivez ce qui doit rester identique :
Replace the background with a modern photo studio backdrop while preserving the subject pose, facial features, and clothing.
Si l’édition continue d’affecter la mauvaise zone, passez de /image/edit à /image/multi-edit et fournissez une couche de masque ou de superposition.
Étape 3 : Supprimer l’arrière-plan
Utilisez /image/background-remove lorsque vous souhaitez isoler le sujet de premier plan sur un arrière-plan transparent. Cet endpoint renvoie un PNG avec transparence alpha.
En utilisant une URL d’image :
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"
}'
En utilisant un téléversement de fichier local :
curl https://api.venice.ai/api/v1/image/background-remove \
-H "Authorization: Bearer $VENICE_API_KEY" \
-F "[email protected]" \
-o cutout.png
Utilisez la suppression d’arrière-plan pour :
- les photos de produits e-commerce
- les photos de profil et les portraits
- les assets que vous prévoyez de placer sur un nouvel arrière-plan
Paramètres de la requête
/image/edit
| Paramètre | Type | Requis | Par défaut | Description |
|---|
image | fichier, chaîne base64 ou URL | Oui | - | Image source à éditer |
prompt | string | Oui | - | Instructions textuelles pour l’édition |
model | string | Non | qwen-edit | Identifiant du modèle d’édition |
aspect_ratio | string | Non | valeur par défaut du modèle | Ratio de sortie pour les modèles qui le prennent en charge |
modelId | string | Déprécié | - | Alias déprécié de model |
/image/multi-edit
| Paramètre | Type | Requis | Par défaut | Description |
|---|
images | tableau de 1 à 3 fichiers, chaînes base64 ou URL | Oui | - | La première image est l’image de base ; les autres sont des couches d’édition ou des masques |
prompt | string | Oui | - | Instructions textuelles pour combiner ou éditer les couches |
modelId | string | Non | qwen-edit | Identifiant du modèle d’édition |
/image/background-remove
| Paramètre | Type | Requis | Description |
|---|
image | fichier ou chaîne base64 | L’un de image ou image_url | Image source à détourer |
image_url | string | L’un de image ou image_url | URL publique de l’image à détourer |
| Endpoint | Entrée JSON | Entrée multipart | Sortie |
|---|
/image/edit | Chaîne base64 ou URL | Téléversement de fichier | image/png |
/image/multi-edit | Chaînes base64 ou URL | Téléversements de fichiers | image/png |
/image/background-remove | Chaîne base64 ou URL | Téléversement de fichier | image/png |
Pour les endpoints d’édition, les dimensions de l’image doivent être d’au moins 65536 pixels et d’au plus 33177600 pixels. Les fichiers téléversés doivent faire moins de 25MB.
Modèles et tarification
Le modèle d’édition par défaut est qwen-edit, au tarif de 0,04 $ par édition. D’autres modèles capables d’édition peuvent avoir des tarifs et des contraintes différents.
Voir :
Erreurs
| Statut | Signification | Action |
|---|
400 | Paramètres de requête invalides | Vérifiez le nombre d’images, les noms de champs et le format d’entrée |
401 | Échec d’authentification | Vérifiez votre clé API |
402 | Solde insuffisant | Ajoutez des crédits sur venice.ai/settings/api |
415 | Type de contenu invalide | Utilisez correctement JSON ou multipart form-data |
429 | Limite de débit dépassée ou modèle surchargé | Réessayez avec un backoff ; vérifiez l’en-tête Retry-After |
500 | Échec du traitement d’inférence | Réessayez la requête |
503 | Modèle à pleine capacité | Réessayez après un court délai |
Certains modèles d’édition ont des politiques de contenu plus strictes que les modèles de génération d’images. Par exemple, qwen-edit bloque les requêtes impliquant des images sexuelles explicites, des mineurs sexualisés ou de la violence réelle.
Workflows liés