Struttura di richieste e risposte per la generazione di immagini
Generazione di immagini
I seguenti esempi presentano diversi casi d’uso di generazione di immagini. Ogni esempio fornisce una spiegazione dei campi utilizzati per la generazione di immagini.
- Text-to-image request
-
{
"taskType": "TEXT_IMAGE",
"textToImageParams": {
"text": string,
"negativeText": string,
"style": "3D_ANIMATED_FAMILY_FILM" |
"DESIGN_SKETCH" | "FLAT_VECTOR_ILLUSTRATION" |
"GRAPHIC_NOVEL_ILLUSTRATION" | "MAXIMALISM" |
"MIDCENTURY_RETRO" | "PHOTOREALISM" |
"SOFT_DIGITAL_PAINTING"
},
"imageGenerationConfig": {
"width": int,
"height": int,
"quality": "standard" | "premium",
"cfgScale": float,
"seed": int,
"numberOfImages": int
}
}
In questa richiesta vengono utilizzati i seguenti campi textToImageParams:
-
text (obbligatorio): un prompt di testo per generare l’immagine. La lunghezza del prompt deve essere compresa tra 1 e 1.024 caratteri.
-
negativeText (facoltativo): un prompt di testo per definire cosa non includere nell’immagine. Questo valore deve avere una lunghezza compresa tra 1 e 1.024 caratteri.
-
style (facoltativo): specifica lo stile utilizzato per generare l’immagine. Per ulteriori informazioni, consulta Stili grafici.
Evita di utilizzare parole di negazione (“no”, “non”, “senza”, ecc.) nei valori text e negativeText. Ad esempio, se non desideri che siano presenti specchi in un’immagine, non includere “no specchi” o “senza specchi” nel campo text, ma usa la parola “specchi” nel campo negativeText.
- Text-to-image request with image conditioning
-
{
"taskType": "TEXT_IMAGE",
"textToImageParams": {
"conditionImage": string (Base64 encoded image),
"controlMode": "CANNY_EDGE" | "SEGMENTATION",
"controlStrength": float,
"text": string,
"negativeText": string,
"style": "3D_ANIMATED_FAMILY_FILM" |
"DESIGN_SKETCH" | "FLAT_VECTOR_ILLUSTRATION" |
"GRAPHIC_NOVEL_ILLUSTRATION" | "MAXIMALISM" |
"MIDCENTURY_RETRO" | "PHOTOREALISM" |
"SOFT_DIGITAL_PAINTING"
},
"imageGenerationConfig": {
"width": int,
"height": int,
"quality": "standard" | "premium",
"cfgScale": float,
"seed": int,
"numberOfImages": int
}
}
In questa richiesta vengono utilizzati i seguenti campi textToImageParams:
-
conditionImage (obbligatorio): un’immagine JPEG o PNG che determina il layout e la composizione dell’immagine generata. L’immagine deve essere formattata come stringa Base64. Consulta Immagini di input per la generazione di immagini per i requisiti aggiuntivi.
-
controlMode (facoltativo): specifica la modalità di condizionamento da utilizzare. Il valore predefinito è “CANNY_EDGE”.
-
CANNY_EDGE: gli elementi dell’immagine generata seguiranno con precisione i contorni evidenti, o “bordi”, dell’immagine di condizionamento.
-
SEGMENTATION: l’immagine di condizionamento sarà analizzata automaticamente per identificare le forme dai contorni evidenti. Questa analisi produce una maschera di segmentazione che guida la generazione e porta a un’immagine generata che segue da vicino il layout dell’immagine di condizionamento, ma lascia al modello una maggiore libertà entro i limiti di ciascuna area di contenuto.
-
controlStrength (facoltativo): specifica quanto simili alla conditionImage devono essere il layout e la composizione dell’immagine generata. L’intervallo è compreso tra 0 e 1,0 e valori più bassi introducono più casualità. Il valore predefinito è 0.7.
-
text (obbligatorio): un prompt di testo per generare l’immagine. La lunghezza del prompt deve essere compresa tra 1 e 1.024 caratteri.
-
negativeText (facoltativo): un prompt di testo per definire cosa non includere nell’immagine. Questo valore deve avere una lunghezza compresa tra 1 e 1.024 caratteri.
-
style (facoltativo): specifica lo stile utilizzato per generare l’immagine. Per ulteriori informazioni, consulta Stili grafici.
Evita di utilizzare parole di negazione (“no”, “non”, “senza”, ecc.) nei valori text e negativeText. Ad esempio, se non desideri che siano presenti specchi in un’immagine, non includere “no specchi” o “senza specchi” nel campo text, ma usa la parola “specchi” nel campo negativeText.
- Color guided image generation request
-
{
"taskType": "COLOR_GUIDED_GENERATION",
"colorGuidedGenerationParams": {
"colors": string[] (list of hexadecimal color values),
"referenceImage": string (Base64 encoded image),
"text": string,
"negativeText": string
},
"imageGenerationConfig": {
"width": int,
"height": int,
"quality": "standard" | "premium",
"cfgScale": float,
"seed": int,
"numberOfImages": int
}
}
In questa richiesta vengono utilizzati i seguenti campi colorGuidedGenerationParams:
-
colors (obbligatorio): un elenco di un massimo di 10 codici colore che definiscono la palette di colori desiderata per l’immagine. I valori devono essere espressi in valori esadecimali nel formato “#RRGGBB”. Ad esempio, “#00FF00” è verde puro e “#FCF2AB” è un giallo caldo. L’elenco colors ha un effetto maggiore quando non viene fornita una referenceImage. In caso contrario, nell’output finale saranno utilizzati sia i colori nell’elenco che i colori dell’immagine di riferimento.
-
referenceImage (facoltativo): un’immagine JPEG o PNG da utilizzare come riferimento per soggetto e stile. I colori dell’immagine saranno inoltre inseriti nell’output finale insieme ai colori dell’elenco colors. Consulta la sezione Immagini di input per la generazione di immagini per i requisiti aggiuntivi.
-
text (obbligatorio): un prompt di testo per generare l’immagine. La lunghezza del prompt deve essere compresa tra 1 e 1.024 caratteri.
-
negativeText (facoltativo): un prompt di testo per definire cosa non includere nell’immagine. Questo valore deve avere una lunghezza compresa tra 1 e 1.024 caratteri.
Evita di utilizzare parole di negazione (“no”, “non”, “senza”, ecc.) nei valori text e negativeText. Ad esempio, se non desideri che siano presenti specchi in un’immagine, non includere “no specchi” o “senza specchi” nel campo text, ma usa la parola “specchi” nel campo negativeText.
- Image variation request
-
{
"taskType": "IMAGE_VARIATION",
"imageVariationParams": {
"images": string[] (list of Base64 encoded images),
"similarityStrength": float,
"text": string,
"negativeText": string
},
"imageGenerationConfig": {
"height": int,
"width": int,
"cfgScale": float,
"seed": int,
"numberOfImages": int
}
}
In questa richiesta vengono utilizzati i seguenti campi imageVariationParams:
-
images (obbligatorio): un elenco di 1-5 immagini da utilizzare come riferimento. Ciascuna deve essere in formato JPEG o PNG e codificata come stringa Base64. Consulta la sezione Immagini di input per la generazione di immagini per i requisiti aggiuntivi.
-
similarityStrength (facoltativo): specifica quanto l’immagine generata deve essere simile alle immagini di input. I valori validi sono compresi tra 0,2-1,0 e i valori più bassi sono utilizzati per introdurre una casualità maggiore.
-
text (obbligatorio): un prompt di testo per generare l’immagine. La lunghezza del prompt deve essere compresa tra 1 e 1.024 caratteri. Se ometti questo campo, il modello rimuoverà gli elementi presenti all’interno dell’area mascherata e li sostituirà con una naturale estensione dello sfondo dell’immagine.
-
negativeText (facoltativo): un prompt di testo per definire cosa non includere nell’immagine. Questo valore deve avere una lunghezza compresa tra 1 e 1.024 caratteri.
Evita di utilizzare parole di negazione (“no”, “non”, “senza”, ecc.) nei valori text e negativeText. Ad esempio, se non desideri che siano presenti specchi in un’immagine, non includere “no specchi” o “senza specchi” nel campo text, ma usa la parola “specchi” nel campo negativeText.
Editing di immagini
I seguenti esempi presentano diversi casi d’uso di editing di immagini. Ogni esempio fornisce una spiegazione dei campi utilizzati per l’editing di immagini.
- Inpainting request
-
{
"taskType": "INPAINTING",
"inPaintingParams": {
"image": string (Base64 encoded image),
"maskPrompt": string,
"maskImage": string (Base64 encoded image),
"text": string,
"negativeText": string
},
"imageGenerationConfig": {
"numberOfImages": int,
"quality": "standard" | "premium",
"cfgScale": float,
"seed": int
}
}
In questa richiesta vengono utilizzati i seguenti campi inPaintingParams:
-
image (obbligatorio): il file JPEG o PNG che desideri modificare, formattato come stringa Base64. Consulta la sezione Immagini di input per la generazione di immagini per i requisiti aggiuntivi.
-
maskPrompt o maskImage (obbligatorio): devi specificare il parametro maskPrompt o maskImage, ma non entrambi.
maskPrompt è un prompt di testo in linguaggio naturale che descrive le aree dell’immagine da modificare.
maskImage è un’immagine che definisce le aree dell’immagine da modificare. L’immagine maschera deve avere le stesse dimensioni dell’immagine di input. Le aree da modificare sono di colore nero puro, mentre quelle da ignorare sono di colore bianco puro. Non è consentito utilizzare altri colori nell’immagine maschera.
Tieni presente che le richieste di inpainting e outpainting sono opposte relativamente ai requisiti di colore per le immagini maschera.
-
text (obbligatorio): un prompt di testo che descrive cosa generare all’interno dell’area mascherata. La lunghezza del prompt deve essere compresa tra 1 e 1.024 caratteri. Se ometti questo campo, il modello rimuoverà gli elementi presenti all’interno dell’area mascherata e li sostituirà con una naturale estensione dello sfondo dell’immagine.
-
negativeText (facoltativo): un prompt di testo per definire cosa non includere nell’immagine. Questo valore deve avere una lunghezza compresa tra 1 e 1.024 caratteri.
Evita di utilizzare parole di negazione (“no”, “non”, “senza”, ecc.) nei valori text e negativeText. Ad esempio, se non desideri che siano presenti specchi in un’immagine, non includere “no specchi” o “senza specchi” nel campo text, ma usa la parola “specchi” nel campo negativeText.
- Outpainting request
-
{
"taskType": "OUTPAINTING",
"outPaintingParams": {
"image": string (Base64 encoded image),
"maskPrompt": string,
"maskImage": string (Base64 encoded image),
"outPaintingMode": "DEFAULT" | "PRECISE",
"text": string,
"negativeText": string
},
"imageGenerationConfig": {
"numberOfImages": int,
"quality": "standard" | "premium",
"cfgScale": float,
"seed": int
}
}
In questa richiesta vengono utilizzati i seguenti campi outPaintingParams:
-
image (obbligatorio): il file JPEG o PNG che desideri modificare, formattato come stringa Base64. Consulta la sezione Immagini di input per la generazione di immagini per i requisiti aggiuntivi.
-
maskPrompt o maskImage (obbligatorio): devi specificare il parametro maskPrompt o maskImage, ma non entrambi.
maskPrompt è un prompt di testo in linguaggio naturale che descrive le aree dell’immagine da modificare.
maskImage è un’immagine che definisce le aree dell’immagine da modificare. L’immagine maschera deve avere le stesse dimensioni dell’immagine di input. Le aree da modificare sono di colore nero puro, mentre quelle da ignorare sono di colore bianco puro. Non è consentito utilizzare altri colori nell’immagine maschera.
Tieni presente che le richieste di inpainting e outpainting sono opposte relativamente ai requisiti di colore per le immagini maschera.
-
outPaintingMode: determina il modo in cui viene interpretata la maschera fornita.
Utilizza DEFAULT per creare una transizione fluida tra l’area mascherata e quella non mascherata. Alcuni dei pixel originali vengono utilizzati come punto di partenza per il nuovo sfondo. In genere, questa modalità produce risultati migliori quando il nuovo sfondo deve utilizzare colori simili a quello originale. Tuttavia, potresti ottenere un effetto alone se il prompt richiede un nuovo sfondo con differenze significative rispetto a quello originale.
Utilizza PRECISE per rispettare rigorosamente i limiti della maschera. In genere, questa modalità produce i risultati migliori quando apporti modifiche significative allo sfondo.
-
text (obbligatorio): un prompt di testo che descrive cosa generare all’interno dell’area mascherata. La lunghezza del prompt deve essere compresa tra 1 e 1.024 caratteri. Se ometti questo campo, il modello rimuoverà gli elementi presenti all’interno dell’area mascherata e li sostituirà con una naturale estensione dello sfondo dell’immagine.
-
negativeText (facoltativo): un prompt di testo per definire cosa non includere nell’immagine. Questo valore deve avere una lunghezza compresa tra 1 e 1.024 caratteri.
Evita di utilizzare parole di negazione (“no”, “non”, “senza”, ecc.) nei valori text e negativeText. Ad esempio, se non desideri che siano presenti specchi in un’immagine, non includere “no specchi” o “senza specchi” nel campo text, ma usa la parola “specchi” nel campo negativeText.
- Background removal request
-
{
"taskType": "BACKGROUND_REMOVAL",
"backgroundRemovalParams": {
"image": string (Base64 encoded image)
}
}
In questa richiesta viene utilizzato il seguente campo backgroundRemovalParams:
L’operazione BACKGROUND_REMOVAL restituirà un’immagine PNG con trasparenza completa a 8 bit. Questo formato offre un isolamento uniforme e pulito degli oggetti in primo piano e semplifica la composizione dell’immagine con altri elementi in un’app di editing di immagini, in una presentazione o in un sito web. Lo sfondo può essere facilmente modificato in un colore a tinta unita utilizzando un codice personalizzato.
- Virtual try-on
-
{
"taskType": "VIRTUAL_TRY_ON",
"virtualTryOnParams": {
"sourceImage": string (Base64 encoded image),
"referenceImage": string (Base64 encoded image),
"maskType": "IMAGE" | "GARMENT" | "PROMPT",
"imageBasedMask":{
"maskImage": string (Base64 encoded image),
},
"garmentBasedMask":{
"maskShape": "CONTOUR" | "BOUNDING_BOX" | "DEFAULT",
"garmentClass": "UPPER_BODY" | "LOWER_BODY" |
"FULL_BODY" | "FOOTWEAR" | "LONG_SLEEVE_SHIRT" |
"SHORT_SLEEVE_SHIRT" | "NO_SLEEVE_SHIRT" |
"OTHER_UPPER_BODY" | "LONG_PANTS" | "SHORT_PANTS" |
"OTHER_LOWER_BODY" | "LONG_DRESS" | "SHORT_DRESS" |
"FULL_BODY_OUTFIT" | "OTHER_FULL_BODY" | "SHOES" |
"BOOTS" | "OTHER_FOOTWEAR",
"garmentStyling":{
"longSleeveStyle": "SLEEVE_DOWN" | "SLEEVE_UP",
"tuckingStyle": "UNTUCKED" | "TUCKED",
"outerLayerStyle": "CLOSED" | "OPEN",
}
},
"promptBasedMask":{
"maskShape": "BOUNDING_BOX" | "CONTOUR" | "DEFAULT",
"maskPrompt": string,
},
"maskExclusions": {
"preserveBodyPose": "ON" | "OFF" | "DEFAULT",
"preserveHands": "ON" | "OFF" | "DEFAULT",
"preserveFace": "OFF" | "ON" | "DEFAULT"
},
"mergeStyle" : "BALANCED" | "SEAMLESS" | "DETAILED" ,
"returnMask": boolean,
},
"imageGenerationConfig": {
"numberOfImages": int,
"quality": "standard" | "premium",
"cfgScale": float,
"seed": int
}
}
In questa richiesta vengono utilizzati i seguenti campi virtualTryOnParams:
-
sourceImage (obbligatorio): il file JPEG o PNG che desideri modificare, formattato come stringa Base64. Consulta Immagini di input per la generazione di immagini per i requisiti aggiuntivi.
-
referenceImage (obbligatorio): il file JPEG o PNG che contiene l’oggetto che desideri sovrapporre all’immagine di origine, formattato come stringa Base64. Consulta Immagini di input per la generazione di immagini per i requisiti aggiuntivi.
-
maskType (obbligatorio): specifica se la maschera viene fornita come immagine, prompt o maschera per capi di abbigliamento.
-
imageBasedMask: obbligatorio quando maskType è "IMAGE".
maskImage è un’immagine che definisce le aree dell’immagine da modificare. L’immagine maschera deve avere le stesse dimensioni dell’immagine di input. Le aree da modificare sono di colore nero puro, mentre quelle da ignorare sono di colore bianco puro. Non è consentito utilizzare altri colori nell’immagine maschera.
-
garmentBasedMask: obbligatorio quando maskType è "GARMENT".
-
maskShape (facoltativo): definisce la forma del riquadro di delimitazione della maschera. La forma e le dimensioni del riquadro di delimitazione possono influire sul modo in cui l’immagine di riferimento viene trasferita nell’immagine di origine.
-
garmentClass (obbligatorio): definisce il capo di abbigliamento da trasferire. Questo parametro consente al modello di concentrarsi su parti specifiche dell’immagine di riferimento che desideri trasferire.
-
garmentStyling: offre indicazioni di stile al modello per determinati capi di abbigliamento. I parametri longSleeveStyle e tuckingStyle si applicano solo ai capi per la parte superiore del corpo. Il parametro outerLayerStyle si applica solo ai capi per la parte superiore del corpo indossati come strato esterno.
-
promptBasedMask (obbligatorio): obbligatorio quando maskType è "PROMPT".
-
maskShape (facoltativo): definisce la forma del riquadro di delimitazione della maschera. La forma e le dimensioni del riquadro di delimitazione possono influire sul modo in cui l’immagine di riferimento viene trasferita in quella di origine.
-
maskPrompt (obbligatorio): un prompt di testo in linguaggio naturale che descrive le aree dell’immagine da modificare.
-
maskExclusions (facoltativo): quando viene rilevata una persona nell’immagine di origine, questi parametri stabiliscono se la posa del corpo, le mani e il volto devono essere mantenuti nell’immagine di output o rigenerati.
-
mergeStyle (facoltativo): determina la modalità di unione delle immagini di origine e di riferimento. Ogni stile di fusione adotta un approccio diverso alla modalità di unione degli elementi per creare l’immagine finale, ognuno con i propri vantaggi e compromessi.
-
"BALANCED": protegge i pixel non mascherati dell’immagine di origine, garantendo che rimangano accurati al 100% rispetto all’originale. In alcuni casi, sarà presente una discrepanza di colore o texture appena percepibile nell’immagine di output, che si presenta come una sorta di immagine “fantasma” della forma della maschera. È più probabile che ciò si verifichi quando nell’immagine è presente una persona di fronte a uno sfondo a tinta unita o con una texture uniforme. Per evitarlo, puoi utilizzare lo stile di fusione "SEAMLESS".
-
"SEAMLESS": garantisce che non vi sia mai una linea di unione evidente tra le aree mascherate e non nell’immagine finale. Il compromesso è che questa modalità comporta una leggera modifica di tutti i pixel dell’immagine e, a volte, una riduzione dei dettagli granulari nelle aree non mascherate dell’immagine.
-
"DETAILED": può migliorare notevolmente i dettagli granulari come loghi e testo, soprattutto quando l’area mascherata è relativamente piccola rispetto all’immagine complessiva. Il modello ottiene questo risultato eseguendo l’inpainting su una versione dell’immagine originale ben ritagliata e ad alta risoluzione che include solo l’area mascherata. In seguito, unisce il risultato all’immagine originale. Proprio come con la modalità "BALANCED", a volte questo metodo può generare una linea di unione visibile.
-
returnMask (facoltativo): specifica se l’immagine maschera deve essere restituita insieme all’immagine di output.
Corpo di risposta
Il corpo della risposta conterrà uno o più campi indicati di seguito:
{
"images": "images": string[] (list of Base64 encoded images),
"maskImage": string (Base64 encoded image),
"error": string
}
-
images: in caso di operazione riuscita, viene restituito un elenco di stringhe codificate in Base64 che rappresentano ogni immagine generata. Tale elenco non contiene sempre lo stesso numero di immagini richiesto. Singole immagini potrebbero essere bloccate dopo la generazione se non sono in linea con la policy di moderazione dei contenuti relativa all’IA responsabile (RAI) di AWS. Vengono restituite solo le immagini che rispettano la policy RAI.
-
maskImage: quando specifichi che l’immagine maschera deve essere restituita insieme all’output, la maschera viene restituita in questo campo.
-
error: se un’immagine non è in linea con la policy RAI, viene restituito questo campo. In caso contrario, questo campo viene omesso dalla risposta.
Il campo imageGenerationConfig è comune a tutti i tipi di attività, a eccezione di BACKGROUND_REMOVAL. È facoltativo e contiene i seguenti campi. Se ometti questo oggetto, vengono utilizzate le configurazioni predefinite.
-
width e height (facoltativo): definiscono le dimensioni e le proporzioni dell’immagine generata. L’impostazione predefinita di entrambi è 1.024.
Non devi fornire i valori width e height per i tipi di attività "INPAINTING", "OUTPAINTING" o "VIRTUAL_TRY_ON".
Per l’elenco completo delle risoluzioni supportate, consulta Risoluzioni di immagini supportate.
-
quality (facoltativo): specifica la qualità da utilizzare quando generi l’immagine, ovvero “standard” (impostazione predefinita) o “premium”.
-
cfgScale (facoltativo): specifica quanto rigorosamente il modello deve rispettare il prompt. I valori vanno da 1,1 a 10 (inclusi) e il valore predefinito è 6,5.
-
Valori bassi (1,1-3): maggiore libertà creativa per l’IA, risultati potenzialmente più estetici, ma con basso contrasto e meno rispettosi del prompt.
-
Valori medi (4-7): approccio equilibrato, consigliati solitamente per la maggior parte delle generazioni.
-
Valori alti (8-10): rispetto rigoroso del prompt, che può produrre risultati più precisi, ma a discapito, a volte, dell’estetica naturale e con una saturazione di colori maggiore.
-
numberOfImages (facoltativo): il numero di immagini da generare.
| Minimum |
Maximum |
Default |
| 1 |
5 |
1 |
-
seed (facoltativo): determina l’impostazione iniziale del rumore per il processo di generazione. Modificando il valore di seed e lasciando tutti gli altri parametri invariati, verrà prodotta un’immagine completamente nuova che rispetta comunque il prompt, le dimensioni e le altre impostazioni. È comune sperimentare con diversi valori di seed per trovare l’immagine perfetta.
| Minimum |
Maximum |
Default |
| 0 |
2,147,483,646 |
12 |
I parametri di risoluzione (width e height), numberOfImages e quality hanno tutti un impatto sul tempo richiesto per completare la generazione. L’AWS SDK ha un read_timeout predefinito di 60 secondi, che può essere facilmente superato quando si utilizzano valori elevati per i parametri indicati in precedenza. Pertanto, si consiglia di aumentare il read_timeout delle chiamate di invocazione ad almeno 5 minuti (300 secondi). Gli esempi di codice dimostrano come eseguire questa operazione.