/image/generate e ricevi la tua immagine nella stessa risposta, sia come base64 dentro un JSON sia come binario raw quando return_binary è true.
Endpoint
Passo 1: Invia una richiesta di generazione
Il dimensionamento è specifico per ogni modello. Alcuni modelli accettanowidth e height espliciti; altri espongono aspect_ratio; e i modelli a tier di risoluzione espongono aspect_ratio più valori di resolution come 1K, 2K o 4K.
Esempio di dimensionamento basato su pixel:
images contiene i dati dell’immagine codificati in base64. Decodifica il primo elemento per salvarlo o visualizzarlo. timing.total è la durata complessiva della richiesta in millisecondi.
Passo 2: Decodifica e salva l’immagine
Passo 3: Restituire binario invece di JSON (opzionale)
Se vuoi che il corpo della risposta sia il file immagine stesso, impostareturn_binary: true. Questo è utile quando vuoi fare streaming o salvare l’immagine direttamente senza decodifica base64.
return_binary è true, il corpo della risposta è dato raw image/jpeg, image/png o image/webp in base al format richiesto.
variants è supportato solo quando return_binary è false.Passo 4: Elenca gli stili di immagine disponibili (opzionale)
Se vuoi usarestyle_preset, recupera prima gli stili disponibili da /image/styles:
data, non al livello superiore — leggi response.data invece di iterare direttamente sull’oggetto della risposta.
Poi passa uno di questi valori nella tua richiesta di generazione:
Parametri della richiesta
La validazione è specifica per ogni modello. Consulta Modelli di immagini e l’API Models prima di fare affidamento su un parametro tra più modelli.
Opzioni specifiche per modello
Generazione ad alta risoluzione
Alcuni modelli di immagini supportanoaspect_ratio senza un tier di resolution selezionabile. Per esempio, qwen-image-2 accetta l’aspect ratio e lo mappa a dimensioni di output specifiche per il modello:
aspect_ratio più un tier di resolution. Per esempio, gpt-image-2, nano-banana-2 e nano-banana-pro supportano 1K, 2K e 4K:
Intensità dei LoRA
Alcuni modelli di immagini applicano LoRA aggiuntivi.lora_strength (integer, da 0 a 100) imposta quanto intensamente vengono applicati e ha effetto solo sui modelli che li usano.
L’API non accetta file LoRA personalizzati e nessun endpoint elenca i LoRA usati da un modello. lora_strength è l’unico controllo sui LoRA.
Contenuti per adulti e safe mode
safe_mode controlla se i contenuti per adulti nell’output della generazione vengono sfocati. Il default è true, quindi le immagini classificate come per adulti vengono restituite sfocate a meno che tu non invii safe_mode: false:
safe_mode: false. Esempi presenti nella pagina dei prezzi includono lustify-sdxl, lustify-v7 e lustify-v8. Consulta Modelli di immagini e Prezzi per la lista attuale e i costi per modello.
Per la modifica di immagini esistenti, il modello di editing di default è firered-image-edit. Le policy di contenuto variano in base al modello di edit; se hai bisogno di editing non censurato, usa qwen-edit-uncensored tramite Image Editing.
Quando safe_mode è abilitato e il modello restituisce un output sfocato o moderato, ispeziona gli header di risposta x-venice-is-blurred e x-venice-is-content-violation se hai bisogno di rilevarlo a livello programmatico.
Usi un’app di terze parti? Le immagini per adulti restano sfocate a meno che l’app non invii
safe_mode: false, oppure moderation: "low" sull’endpoint compatibile con OpenAI (vedi sotto).Preset di stile
Se il modello selezionato lo supporta,style_preset ti permette di orientare l’output senza riscrivere l’intero prompt. Puoi recuperare i nomi dei preset validi da Image Styles:
Riferimenti di stile
style_references va un passo oltre style_preset: invece di un preset con nome, condiziona la generazione su una o più immagini di riferimento. Ogni voce ha un image e uno strength opzionale:
Il supporto varia in base al modello. Controlla
GET /models?type=image:
model_spec.supportsStyleReferencesètruesolo sui modelli che accettano il campo.model_spec.constraints.maxStyleReferencesè il numero di voci che il modello accetta.model_spec.constraints.supportsStyleReferenceStrengthindica sestrengthha effetto.
style_references a un modello che non lo supporta restituisce 400, così come superare il limite del modello o inviare un riferimento corrotto, irraggiungibile o troppo grande. Alcuni modelli applicano una tariffa per il riferimento di stile per ogni immagine restituita, in aggiunta al prezzo base dell’immagine, ad esempio Krea v2 Large e Krea v2 Medium. La tariffa viene addebitata solo per le immagini effettivamente restituite. Consulta Image Models per i prezzi base per immagine.
Risultati parziali delle varianti
Convariants maggiore di 1, singole varianti possono essere rifiutate dalla content policy del provider mentre le altre vanno a buon fine. In tal caso l’endpoint restituisce comunque 200 con meno immagini di quelle richieste:
- Quando una o più varianti vengono omesse, il body JSON include
content_policy_violation_count, il numero di varianti omesse. - L’header di risposta
x-venice-content-violation-countriporta lo stesso conteggio. x-venice-is-content-violationex-venice-is-blurreddescrivono le immagini restituite.
422. Non dare per scontato che len(images) == variants; confronta la lunghezza dell’array con variants e, quando presente, controlla content_policy_violation_count.
Endpoint compatibile con OpenAI
Se stai già usando gli SDK di immagini OpenAI o integrazioni DALL-E esistenti, Venice supporta anchePOST /images/generations. Offre un formato di richiesta più semplice, ma meno funzionalità rispetto all’endpoint nativo di Venice.
Richiesta:
size si applica solo ai modelli dimensionati in pixel, che hanno un widthHeightDivisor superiore a 1 in model_spec.constraints da GET /models?type=image. La maggior parte dei modelli, incluso qwen-image-2, dimensiona invece l’output in base ad aspect ratio e risoluzione e ignora size.
Alcuni parametri OpenAI sono accettati per compatibilità con gli SDK ma vengono ignorati (n è limitato a 1):
Su questo percorso non esiste il controllo del tier: non c’è un campo
resolution o aspect_ratio, e quality non può aumentare o ridurre l’addebito. Per i modelli GPT Image a tier, usa l’endpoint nativo /image/generate quando devi scegliere quality, resolution o aspect_ratio.
Usa il percorso compatibile con OpenAI per migrazioni più rapide. Usa /image/generate quando hai bisogno di opzioni specifiche di Venice come cfg_scale, style_preset, style_references, variants o risposte binarie.
Controllare la sfocatura dei contenuti per adulti su /images/generations
L’endpoint compatibile con OpenAI non accetta safe_mode. Inviarlo restituisce un 400 con Unrecognized key(s) in object: 'safe_mode'. Usa invece il parametro moderation in stile OpenAI:
safe_mode funziona solo sull’endpoint nativo POST /image/generate. moderation funziona solo sull’endpoint compatibile con OpenAI POST /images/generations.
La stessa distinzione vale per la trasparenza: /image/generate usa transparent_background: true, mentre /images/generations usa il parametro in stile OpenAI background: "transparent". Entrambi richiedono un formato di output png o webp e un modello con supportsTransparentBackground: true. Consulta Immagini con sfondo trasparente.
Consigli per il prompting
- Inizia dal soggetto, poi aggiungi medium, illuminazione, composizione e atmosfera.
- Metti i dettagli da evitare in
negative_promptinvece di sovraccaricare il prompt principale. - Riutilizza il
seeddurante le iterazioni così puoi confrontare le modifiche al prompt senza cambiare completamente la composizione. - Mantieni il dimensionamento consapevole del modello. Alcuni modelli usano
width/height, altriaspect_ratioe i modelli a tier di risoluzione usanoaspect_ratiopiùresolution. - Usa
variantsdurante l’esplorazione, poi torna a un singolo output una volta fissata la direzione.
Errori
Quando
safe_mode è abilitato (o moderation è auto), ispeziona gli header di risposta come x-venice-is-blurred e x-venice-is-content-violation se devi rilevare gli esiti della moderazione in modo programmatico.