Structure de demande et de réponse pour la génération d’images
Génération d'images
Les exemples suivants présentent différents cas d’utilisation de la génération d’images. Chaque exemple fournit une explication des champs utilisés pour la génération d’images.
- 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
}
}
Les champs textToImageParams suivants sont utilisés dans cette demande :
-
text (obligatoire) : invite de texte pour générer l’image. L’invite doit comporter entre 1 et 1 024 caractères.
-
negativeText (facultatif) : invite de texte pour définir les éléments à ne pas inclure dans l’image. Cette valeur doit comporter entre 1 et 1 024 caractères.
-
style (facultatif) : spécifie le style utilisé pour générer cette image. Pour de plus amples informations, consultez Styles visuels.
Évitez d’utiliser des mots négatifs (« non », « pas », « sans », etc.) dans vos valeurs text et negativeText. Par exemple, si vous ne voulez pas de miroirs dans une image, au lieu d’inclure « pas de miroirs » ou « sans miroirs » dans le champ text, utilisez le mot « miroirs » dans le champ 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
}
}
Les champs textToImageParams suivants sont utilisés dans cette demande :
-
conditionImage (obligatoire) : image JPEG ou PNG qui guide la mise en page et la composition de l’image générée. L’image doit être formatée sous forme de chaîne Base64. Consultez Images d’entrée pour la génération d’images pour des prérequis supplémentaires.
-
controlMode (facultatif) : spécifie le mode de conditionnement à utiliser. La valeur par défaut est « CANNY_EDGE ».
-
CANNY_EDGE : les éléments de l’image générée suivront de près les contours proéminents, ou « bords », de l’image de condition.
-
SEGMENTATION : l’image de condition sera automatiquement analysée afin d’identifier les formes de contenu proéminentes. Cette analyse aboutit à un masque de segmentation qui guide la génération, ce qui donne une image générée qui suit de près la mise en page de l’image de condition, mais qui laisse au modèle plus de liberté dans les limites de chaque zone de contenu.
-
controlStrength (facultatif) : spécifie dans quelle mesure la mise en page et la composition de l’image générée doivent être similaires à celles de conditionImage. La plage est comprise entre 0 et 1,0, et les valeurs inférieures introduisent plus d’aléatoire. La valeur par défaut est 0.7.
-
text (obligatoire) : invite de texte pour générer l’image. L’invite doit comporter entre 1 et 1 024 caractères.
-
negativeText (facultatif) : invite de texte pour définir les éléments à ne pas inclure dans l’image. Cette valeur doit comporter entre 1 et 1 024 caractères.
-
style (facultatif) : spécifie le style utilisé pour générer cette image. Pour de plus amples informations, consultez Styles visuels.
Évitez d’utiliser des mots négatifs (« non », « pas », « sans », etc.) dans vos valeurs text et negativeText. Par exemple, si vous ne voulez pas de miroirs dans une image, au lieu d’inclure « pas de miroirs » ou « sans miroirs » dans le champ text, utilisez le mot « miroirs » dans le champ 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
}
}
Les champs colorGuidedGenerationParams suivants sont utilisés dans cette demande :
-
colors (obligatoire) : une liste de 10 codes de couleur maximum qui définissent la palette de couleurs souhaitée pour votre image. Exprimés sous forme de valeurs hexadécimales au format « #RRGGBB ». Par exemple, « #00FF00 » correspond à un vert pur et « #FCF2AB » à un jaune chaud. La liste colors a le plus d’effet lorsqu’aucun referenceImage n’est fourni. Sinon, les couleurs de la liste et celles de l’image de référence seront toutes deux utilisées dans le résultat final.
-
referenceImage (facultatif) : une image JPEG ou PNG à utiliser comme référence pour le sujet et le style. Les couleurs de l’image seront également intégrées à votre résultat final, en plus des couleurs de la liste colors. Consultez Images d’entrée pour la génération d’images pour des prérequis supplémentaires.
-
text (obligatoire) : invite de texte pour générer l’image. L’invite doit comporter entre 1 et 1 024 caractères.
-
negativeText (facultatif) : invite de texte pour définir les éléments à ne pas inclure dans l’image. Cette valeur doit comporter entre 1 et 1 024 caractères.
Évitez d’utiliser des mots négatifs (« non », « pas », « sans », etc.) dans vos valeurs text et negativeText. Par exemple, si vous ne voulez pas de miroirs dans une image, au lieu d’inclure « pas de miroirs » ou « sans miroirs » dans le champ text, utilisez le mot « miroirs » dans le champ 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
}
}
Les champs imageVariationParams suivants sont utilisés dans cette demande :
-
images (obligatoire) : une liste de 1 à 5 images à utiliser comme références. Chacune doit être au format JPEG ou PNG et encodée sous forme de chaînes Base64. Consultez Images d’entrée pour la génération d’images pour des prérequis supplémentaires.
-
similarityStrength (facultatif) : spécifie à quel point l’image générée doit être similaire aux images d’entrée. Les valeurs valides sont comprises entre 0,2 et 1,0, les valeurs les plus faibles étant utilisées pour introduire plus d’aléatoire.
-
text (obligatoire) : invite de texte pour générer l’image. L’invite doit comporter entre 1 et 1 024 caractères. Si vous omettez ce champ, le modèle supprimera les éléments à l’intérieur de la zone masquée. Ils seront remplacés par une extension transparente de l’arrière-plan de l’image.
-
negativeText (facultatif) : invite de texte pour définir les éléments à ne pas inclure dans l’image. Cette valeur doit comporter entre 1 et 1 024 caractères.
Évitez d’utiliser des mots négatifs (« non », « pas », « sans », etc.) dans vos valeurs text et negativeText. Par exemple, si vous ne voulez pas de miroirs dans une image, au lieu d’inclure « pas de miroirs » ou « sans miroirs » dans le champ text, utilisez le mot « miroirs » dans le champ negativeText.
Modification d’image
Les exemples suivants présentent différents cas d’utilisation de la modification d’image. Chaque exemple fournit une explication des champs utilisés pour modifier l’image.
- 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
}
}
Les champs inPaintingParams suivants sont utilisés dans cette demande :
-
image (obligatoire) : le fichier JPEG ou PNG que vous voulez modifier, formaté en chaîne Base64. Consultez Images d’entrée pour la génération d’images pour des prérequis supplémentaires.
-
maskPrompt ou maskImage (obligatoire) : vous devez spécifier le paramètre maskPrompt ou maskImage, mais pas les deux.
Le paramètre maskPrompt est une invite de texte en langage naturel qui décrit les zones de l’image à modifier.
Le paramètre maskImage est une image qui définit les zones de l’image à modifier. L’image de masque doit être de la même taille que l’image d’entrée. Les zones à modifier sont ombrées en noir pur et les zones à ignorer sont ombrées en blanc pur. Aucune autre couleur n’est autorisée dans l’image de masque.
Veuillez noter que les demandes de remplissage et de retouche sont opposées en ce qui concerne les exigences de couleur des images de masque.
-
text (obligatoire) : une invite textuelle qui décrit ce qu’il faut générer dans la zone masquée. L’invite doit comporter entre 1 et 1 024 caractères. Si vous omettez ce champ, le modèle supprimera les éléments à l’intérieur de la zone masquée. Ils seront remplacés par une extension transparente de l’arrière-plan de l’image.
-
negativeText (facultatif) : invite de texte pour définir les éléments à ne pas inclure dans l’image. Cette valeur doit comporter entre 1 et 1 024 caractères.
Évitez d’utiliser des mots négatifs (« non », « pas », « sans », etc.) dans vos valeurs text et negativeText. Par exemple, si vous ne voulez pas de miroirs dans une image, au lieu d’inclure « pas de miroirs » ou « sans miroirs » dans le champ text, utilisez le mot « miroirs » dans le champ 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
}
}
Les champs outPaintingParams suivants sont utilisés dans cette demande :
-
image (obligatoire) : le fichier JPEG ou PNG que vous voulez modifier, formaté en chaîne Base64. Consultez Images d’entrée pour la génération d’images pour des prérequis supplémentaires.
-
maskPrompt ou maskImage (obligatoire) : vous devez spécifier le paramètre maskPrompt ou maskImage, mais pas les deux.
Le paramètre maskPrompt est une invite de texte en langage naturel qui décrit les zones de l’image à modifier.
Le paramètre maskImage est une image qui définit les zones de l’image à modifier. L’image de masque doit être de la même taille que l’image d’entrée. Les zones à modifier sont ombrées en noir pur et les zones à ignorer sont ombrées en blanc pur. Aucune autre couleur n’est autorisée dans l’image de masque.
Veuillez noter que les demandes de remplissage et de retouche sont opposées en ce qui concerne les exigences de couleur des images de masque.
-
outPaintingMode : détermine la manière dont le masque que vous fournissez est interprété.
Utilisez DEFAULT pour assurer une transition fluide entre la zone masquée et la zone non masquée. Certains des pixels d’origine sont utilisés comme point de départ pour le nouvel arrière-plan. Ce mode est généralement préférable lorsque vous voulez que le nouvel arrière-plan utilise des couleurs similaires à celles de l’arrière-plan d’origine. Cependant, vous pouvez obtenir un effet de halo si votre invite demande un nouvel arrière-plan très différent de l’arrière-plan d’origine.
Utilisez PRECISE pour respecter strictement les limites du masque. Ce mode est généralement préférable lorsque vous apportez des modifications importantes à l’arrière-plan.
-
text (obligatoire) : une invite textuelle qui décrit ce qu’il faut générer dans la zone masquée. L’invite doit comporter entre 1 et 1 024 caractères. Si vous omettez ce champ, le modèle supprimera les éléments à l’intérieur de la zone masquée. Ils seront remplacés par une extension transparente de l’arrière-plan de l’image.
-
negativeText (facultatif) : invite de texte pour définir les éléments à ne pas inclure dans l’image. Cette valeur doit comporter entre 1 et 1 024 caractères.
Évitez d’utiliser des mots négatifs (« non », « pas », « sans », etc.) dans vos valeurs text et negativeText. Par exemple, si vous ne voulez pas de miroirs dans une image, au lieu d’inclure « pas de miroirs » ou « sans miroirs » dans le champ text, utilisez le mot « miroirs » dans le champ negativeText.
- Background removal request
-
{
"taskType": "BACKGROUND_REMOVAL",
"backgroundRemovalParams": {
"image": string (Base64 encoded image)
}
}
Le champ backgroundRemovalParams suivant est utilisé dans cette demande :
La tâche BACKGROUND_REMOVAL renvoie une image PNG avec une transparence 8 bits complète. Ce format vous permet d’isoler de manière fluide et nette les objets au premier plan et facilite la composition de l’image avec d’autres éléments dans une application d’édition d’images, une présentation ou un site web. L’arrière-plan peut être facilement remplacé par une couleur unie à l’aide d’un simple code personnalisé.
- 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
}
}
Les champs virtualTryOnParams suivants sont utilisés dans cette demande :
-
sourceImage (obligatoire) : le fichier JPEG ou PNG que vous voulez modifier, formaté en chaîne Base64. Consultez Images d’entrée pour la génération d’images pour des prérequis supplémentaires.
-
referenceImage (obligatoire) : fichier JPEG ou PNG contenant l’objet que vous voulez superposer à l’image source, au format chaîne Base64. Consultez Images d’entrée pour la génération d’images pour des prérequis supplémentaires.
-
maskType (obligatoire) : indique si le masque est fourni sous forme d’image, d’invite ou de masque de vêtement.
-
imageBasedMask : obligatoire quand maskType est "IMAGE".
Le paramètre maskImage est une image qui définit les zones de l’image à modifier. L’image de masque doit être de la même taille que l’image d’entrée. Les zones à modifier sont ombrées en noir pur et les zones à ignorer sont ombrées en blanc pur. Aucune autre couleur n’est autorisée dans l’image de masque.
-
garmentBasedMask : obligatoire quand maskType est "GARMENT".
-
maskShape (facultatif) : définit la forme du cadre de sélection du masque. La forme et la taille du cadre de sélection peuvent avoir une incidence sur la manière dont l’image de référence est transférée vers l’image source.
-
garmentClass (obligatoire) : définit le vêtement qui est transféré. Ce paramètre permet au modèle de se concentrer sur des parties spécifiques de l’image de référence que vous voulez transférer.
-
garmentStyling (facultatif) : fournit des indications de style au modèle pour certains vêtements. Les paramètres longSleeveStyle et tuckingStyle s’appliquent uniquement aux vêtements du haut du corps. Le paramètre outerLayerStyle s’applique uniquement aux vêtements extérieurs du haut du corps.
-
promptBasedMask (obligatoire) : obligatoire lorsque maskType est "PROMPT".
-
maskShape (facultatif) : définit la forme du cadre de sélection du masque. La forme et la taille du cadre de sélection peuvent avoir une incidence sur la manière dont l’image de référence est transférée vers l’image source.
-
maskPrompt (obligatoire) : invite textuelle en langage naturel qui décrit les zones de l’image à modifier.
-
maskExclusions (facultatif) : lorsqu’une personne est détectée dans l’image source, ces paramètres déterminent si sa posture, ses mains et son visage doivent être conservés dans l’image de sortie ou régénérés.
-
mergeStyle (facultatif) : détermine la manière dont les images source et de référence sont assemblées. Chaque style de fusion adopte une approche différente pour assembler les éléments afin de créer l’image finale, chacun présentant ses propres avantages et inconvénients.
-
"BALANCED" : protège tous les pixels non masqués de l’image d’origine, garantissant qu’ils restent fidèles à 100 % à l’original. Dans certains cas, il peut y avoir un léger décalage perceptible au niveau de la couleur ou de la texture dans l’image finale, qui se présente comme une sorte d’image « fantôme » de la forme du masque. Ce phénomène est plus susceptible de se produire lorsque l’image représente une personne debout devant un arrière-plan de couleur unie ou de texture uniforme. Pour éviter cela, vous pouvez utiliser le style de fusion "SEAMLESS" à la place.
-
"SEAMLESS" : garantit qu’il n’y aura jamais de jointure visible entre les zones masquées et non masquées de l’image finale. Le compromis est que ce mode entraîne une légère modification de tous les pixels de l’image et peut parfois réduire les détails fins dans les zones non masquées de l’image.
-
"DETAILED" : peut considérablement améliorer les détails fins tels que les logos et le texte, en particulier lorsque la zone masquée est relativement petite par rapport à l’image globale. Le modèle y parvient en effectuant un remplissage sur une version fortement recadrée et à plus haute résolution de l’image originale, qui ne comprend que la zone masquée. Il fusionne ensuite le résultat avec l’image originale. Comme pour le mode "BALANCED", ce mode peut parfois entraîner une jointure visible.
-
returnMask (facultatif) : spécifie si l’image de masque est renvoyée avec l’image de sortie.
Corps de la réponse
Le corps de la réponse contiendra un ou plusieurs des champs suivants :
{
"images": "images": string[] (list of Base64 encoded images),
"maskImage": string (Base64 encoded image),
"error": string
}
-
images : en cas de succès, une liste de chaînes codées en Base64 représentant chaque image générée est renvoyée. Cette liste ne contient pas toujours le même nombre d’images que celle que vous avez demandée. Certaines images peuvent être bloquées après leur génération si elles ne sont pas conformes à la politique de modération de contenu d’AWS en matière d’IA responsable (RAI). Seules les images conformes à la politique RAI sont renvoyées.
-
maskImage : lorsque vous avez spécifié que l’image de masque doit être renvoyée avec la sortie, c’est ici qu’elle est renvoyée.
-
error : si une image n’est pas conforme à la politique RAI, ce champ est renvoyé. Sinon, ce champ est omis de la réponse.
Le champ imageGenerationConfig est commun à tous les types de tâches, à l’exception de BACKGROUND_REMOVAL. Il est facultatif et contient les champs suivants. Si vous omettez cet objet, les configurations par défaut sont utilisées.
-
width et height (facultatif) : définissez la taille et le rapport d’aspect de l’image générée. Les deux valeurs par défaut sont 1024.
Les valeurs width et height ne doivent pas être fournies pour les types de tâches "INPAINTING", "OUTPAINTING" ou "VIRTUAL_TRY_ON".
Pour obtenir la liste complète des résolutions prises en charge, consultez Résolutions d’image prises en charge.
-
quality (facultatif) : spécifie la qualité à utiliser lors de la génération de l’image : « standard » (par défaut) ou « premium ».
-
cfgScale (facultatif) : spécifie le degré de rigueur avec lequel le modèle doit respecter l’invite. Les valeurs vont de 1,1 à 10 inclus, la valeur par défaut étant 6,5.
-
Valeurs faibles (1,1-3) : plus de liberté créative pour l’IA, potentiellement plus esthétique, mais contraste faible et résultats moins conformes à l’invite
-
Valeurs moyennes (4-7) : approche équilibrée, généralement recommandée pour la plupart des générations
-
Valeurs élevées (8-10) : respect strict de l’invite, ce qui peut produire des résultats plus précis, mais parfois au détriment de l’esthétique naturelle et avec une saturation des couleurs accrue
-
numberOfImages (facultatif) : nombre d’images à générer.
| Minimum |
Maximum |
Default |
| 1 |
5 |
1 |
-
seed (facultatif) : détermine le paramètre de bruit initial pour le processus de génération. Modifier la valeur de la graine tout en laissant tous les autres paramètres inchangés produira une image totalement nouvelle qui respectera toujours votre invite, vos dimensions et vos autres paramètres. Il est courant d’expérimenter différentes valeurs de graine pour trouver l’image parfaite.
| Minimum |
Maximum |
Default |
| 0 |
2,147,483,646 |
12 |
La résolution (width et height), numberOfImages et quality ont toutes un impact sur le temps nécessaire à la génération. Le kit SDK AWS a une valeur read_timeout par défaut de 60 secondes, qui peut facilement être dépassée lorsque vous utilisez des valeurs plus élevées pour ces paramètres. Il est donc recommandé d’augmenter la valeur read_timeout de vos appels d’invocation à au moins 5 minutes (300 secondes). Les exemples de code montrent comment procéder.