Passer au contenu principal
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

EndpointObjectifIdé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-removeSupprimer l’arrière-plan d’une imageDé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ètreTypeRequisPar défautDescription
imagefichier, chaîne base64 ou URLOui-Image source à éditer
promptstringOui-Instructions textuelles pour l’édition
modelstringNonqwen-editIdentifiant du modèle d’édition
aspect_ratiostringNonvaleur par défaut du modèleRatio de sortie pour les modèles qui le prennent en charge
modelIdstringDéprécié-Alias déprécié de model

/image/multi-edit

ParamètreTypeRequisPar défautDescription
imagestableau de 1 à 3 fichiers, chaînes base64 ou URLOui-La première image est l’image de base ; les autres sont des couches d’édition ou des masques
promptstringOui-Instructions textuelles pour combiner ou éditer les couches
modelIdstringNonqwen-editIdentifiant du modèle d’édition

/image/background-remove

ParamètreTypeRequisDescription
imagefichier ou chaîne base64L’un de image ou image_urlImage source à détourer
image_urlstringL’un de image ou image_urlURL publique de l’image à détourer

Formats d’entrée pris en charge

EndpointEntrée JSONEntrée multipartSortie
/image/editChaîne base64 ou URLTéléversement de fichierimage/png
/image/multi-editChaînes base64 ou URLTéléversements de fichiersimage/png
/image/background-removeChaîne base64 ou URLTéléversement de fichierimage/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

StatutSignificationAction
400Paramètres de requête invalidesVérifiez le nombre d’images, les noms de champs et le format d’entrée
401Échec d’authentificationVérifiez votre clé API
402Solde insuffisantAjoutez des crédits sur venice.ai/settings/api
415Type de contenu invalideUtilisez correctement JSON ou multipart form-data
429Limite 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érenceRéessayez la requête
503Modè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