Vai al contenuto principale
L’editing di immagini su Venice è sincrono. Invia la tua immagine sorgente a /image/edit o /image/multi-edit e il risultato modificato torna nella stessa risposta come file PNG. Per i ritagli, /image/background-remove restituisce un PNG trasparente.
Gli endpoint di image edit sono sperimentali e il comportamento specifico dei modelli può cambiare nel tempo.

Endpoint

EndpointScopoIdeale per
POST /image/editModifica una singola immagine con un promptModifiche generali e inpainting guidato da prompt
POST /image/multi-editModifica usando 1-3 immagini a stratiModifiche più controllate con maschere o overlay
POST /image/background-removeRimuove lo sfondo da un’immagineRitagli trasparenti per prodotti, ritratti e asset

Quando usare quale endpoint

  • Usa /image/edit quando hai una sola immagine sorgente e vuoi cambiarne, rimuoverne o ridisegnarne una parte con un prompt.
  • Usa /image/multi-edit quando hai bisogno di un controllo aggiuntivo tramite maschere, overlay o layer di riferimento.
  • Usa /image/background-remove quando vuoi solo un soggetto in primo piano pulito con trasparenza.
Per l’inpainting, usa /image/edit o /image/multi-edit. Il vecchio parametro inpaint su /image/generate è deprecato.

Passo 1: Modifica una singola immagine

L’edit di una singola immagine è il flusso di inpainting più semplice. Invia un’immagine più un breve prompt come “remove the sign”, “change the sky to sunrise” o “replace the background with a studio backdrop”. Richiesta:
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"
}
Risposta (200): Il corpo della risposta è dato binario raw image/png. Salvalo direttamente in un file.
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)

Passo 2: Usa multi-edit per maschere o inpainting a strati

/image/multi-edit accetta fino a tre immagini. La prima immagine è quella di base. Le immagini rimanenti sono trattate come layer di edit o maschere, il che ti dà più controllo rispetto all’editing solo con prompt. Questa è la scelta migliore quando vuoi:
  • mirare a una regione specifica con una maschera
  • combinare una composizione esistente con un overlay
  • vincolare l’edit in modo più stretto di quanto possa fare un prompt su una singola immagine
Richiesta 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"
  ]
}
Richiesta 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
Come per /image/edit, il corpo della risposta è dato raw image/png.
/image/multi-edit attualmente usa il campo modelId invece di model nello schema della richiesta.

Consigli per l’inpainting

L’inpainting basato su prompt funziona meglio quando l’istruzione è breve e locale:
  • remove the tree
  • change the sky to sunset
  • replace the logo with a blank sign
  • restore the torn corner of the photo
Per cambiamenti di scena più ampi, descrivi cosa deve restare invariato:
Replace the background with a modern photo studio backdrop while preserving the subject pose, facial features, and clothing.
Se l’edit continua a interessare l’area sbagliata, passa da /image/edit a /image/multi-edit e fornisci una maschera o un layer di overlay.

Passo 3: Rimuovi lo sfondo

Usa /image/background-remove quando vuoi isolare il soggetto in primo piano su uno sfondo trasparente. Questo endpoint restituisce un PNG con trasparenza alpha. Usando un URL di immagine:
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"
  }'
Usando l’upload di un file locale:
curl https://api.venice.ai/api/v1/image/background-remove \
  -H "Authorization: Bearer $VENICE_API_KEY" \
  -F "[email protected]" \
  -o cutout.png
Usa la rimozione dello sfondo per:
  • foto prodotto ecommerce
  • foto profilo e ritratti
  • asset che intendi posizionare su un nuovo sfondo

Parametri della richiesta

/image/edit

ParametroTipoObbligatorioDefaultDescrizione
imagefile, stringa base64 o URL-Immagine sorgente da modificare
promptstring-Istruzioni testuali per l’edit
modelstringNoqwen-editID del modello di edit
aspect_ratiostringNodefault del modelloRapporto d’aspetto di output per i modelli che lo supportano
modelIdstringDeprecato-Alias deprecato per model

/image/multi-edit

ParametroTipoObbligatorioDefaultDescrizione
imagesarray di 1-3 file, stringhe base64 o URL-La prima immagine è quella di base; le altre sono layer di edit o maschere
promptstring-Istruzioni testuali su come combinare o modificare i layer
modelIdstringNoqwen-editID del modello di edit

/image/background-remove

ParametroTipoObbligatorioDescrizione
imagefile o stringa base64Uno tra image o image_urlImmagine sorgente da ritagliare
image_urlstringUno tra image o image_urlURL pubblico dell’immagine da ritagliare

Formati di input supportati

EndpointInput JSONInput multipartOutput
/image/editStringa base64 o URLUpload di fileimage/png
/image/multi-editStringhe base64 o URLUpload di fileimage/png
/image/background-removeStringa base64 o URLUpload di fileimage/png
Per gli endpoint di edit, le dimensioni dell’immagine devono essere almeno 65536 pixel e non più di 33177600 pixel. I file caricati devono essere inferiori a 25MB.

Modelli e prezzi

Il modello di edit di default è qwen-edit, con un prezzo di $0,04 per edit. Altri modelli con capacità di edit possono avere prezzi e vincoli diversi. Vedi:

Errori

StatusSignificatoAzione
400Parametri di richiesta non validiControlla numero di immagini, nomi dei campi e formato di input
401Autenticazione fallitaControlla la tua API key
402Saldo insufficienteAggiungi crediti su venice.ai/settings/api
415Content type non validoUsa correttamente JSON o multipart form-data
429Rate limit superato o modello sovraccaricoRiprova con backoff; controlla l’header Retry-After
500Elaborazione dell’inferenza fallitaRiprova la richiesta
503Modello al massimo della capacitàRiprova dopo un breve ritardo
Alcuni modelli di edit hanno policy sui contenuti più rigide rispetto ai modelli di generazione di immagini. Per esempio, qwen-edit blocca richieste che riguardano contenuti sessualmente espliciti, minori sessualizzati o violenza nel mondo reale.

Workflow correlati