Estructura de la solicitud y la respuesta para la generación de imágenes
Generación de imágenes
Los siguientes ejemplos presentan diferentes casos de uso de la generación de imágenes. Cada ejemplo proporciona una explicación de los campos que se utilizan para la generación de imágenes.
- 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
}
}
En esta solicitud, se utilizan los siguientes campos textToImageParams
:
-
text
(obligatorio): una petición de texto para generar la imagen. La petición debe tener una longitud de entre 1 y 1024 caracteres.
-
negativeText
(opcional): una petición de texto para definir lo que no se debe incluir en la imagen. Este valor debe tener una longitud de entre 1 y 1024 caracteres.
-
style
(opcional): especifica el estilo que se utiliza para generar esta imagen. Para obtener más información, consulte Estilos visuales.
Evite usar palabras negativas (“no”, “sin”, etc.) en sus valores text
y negativeText
. Por ejemplo, si no quiere espejos en una imagen, en lugar de incluir “que no haya espejos” o “sin espejos” en el campo text
, utilice la palabra “espejos” en el 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
}
}
En esta solicitud, se utilizan los siguientes campos textToImageParams
:
-
conditionImage
(obligatorio): una imagen JPEG o PNG que guía el diseño y la composición de la imagen generada. La imagen debe tener el formato de una cadena Base64. Consulte Imágenes de entrada para la generación de imágenes para ver los requisitos adicionales.
-
controlMode
(opcional): especifica qué modo de acondicionamiento se debe utilizar. El valor predeterminado es “CANNY_EDGE”.
-
CANNY_EDGE
: los elementos de la imagen generada seguirán de cerca los contornos o “bordes” prominentes de la imagen de condición.
-
SEGMENTATION
: la imagen de condición se analizará automáticamente para identificar las formas de contenido más prominentes. Este análisis da como resultado una máscara de segmentación que guía la generación, lo que resulta en una imagen generada que sigue de cerca el diseño de la imagen de condición, pero permite al modelo más libertad dentro de los límites de cada área de contenido.
-
controlStrength
(opcional): especifica lo similares que deben ser el diseño y la composición de la imagen generada a conditionImage
. El rango es de 0 a 1,0, y los valores más bajos introducen más aleatoriedad. El valor predeterminado es 0,7.
-
text
(obligatorio): una petición de texto para generar la imagen. La petición debe tener una longitud de entre 1 y 1024 caracteres.
-
negativeText
(opcional): una petición de texto para definir lo que no se debe incluir en la imagen. Este valor debe tener una longitud de entre 1 y 1024 caracteres.
-
style
(opcional): especifica el estilo que se utiliza para generar esta imagen. Para obtener más información, consulte Estilos visuales.
Evite usar palabras negativas (“no”, “sin”, etc.) en sus valores text
y negativeText
. Por ejemplo, si no quiere espejos en una imagen, en lugar de incluir “que no haya espejos” o “sin espejos” en el campo text
, utilice la palabra “espejos” en el 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
,
"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
}
}
En esta solicitud, se utilizan los siguientes campos colorGuidedGenerationParams
:
-
colors
(obligatorio): una lista de hasta 10 códigos de color que definen la paleta de color deseada para su imagen. Expresados como valores hexadecimales en el formato “#RRGGBB”. Por ejemplo, “#00FF00” es verde puro y “#FCF2AB” es amarillo cálido. La lista colors
tiene el efecto más fuerte cuando no se proporciona referenceImage
. De lo contrario, los colores de la lista y los colores de la imagen de referencia se utilizarán en el resultado final.
-
referenceImage
(opcional): una imagen JPEG o PNG para usarla como referencia del tema y el estilo. Los colores de la imagen también se incorporarán al resultado final, junto con los colores de la lista colors
. Consulte Imágenes de entrada para la generación de imágenes para ver los requisitos adicionales.
-
text
(obligatorio): una petición de texto para generar la imagen. La petición debe tener una longitud de entre 1 y 1024 caracteres.
-
negativeText
(opcional): una petición de texto para definir lo que no se debe incluir en la imagen. Este valor debe tener una longitud de entre 1 y 1024 caracteres.
-
style
(opcional): especifica el estilo que se utiliza para generar esta imagen. Para obtener más información, consulte Estilos visuales.
Evite usar palabras negativas (“no”, “sin”, etc.) en sus valores text
y negativeText
. Por ejemplo, si no quiere espejos en una imagen, en lugar de incluir “que no haya espejos” o “sin espejos” en el campo text
, utilice la palabra “espejos” en el campo negativeText
.
- Image variation request
-
{
"taskType": "IMAGE_VARIATION",
"imageVariationParams": {
"images": string[]
(list of Base64 encoded images),
"similarityStrength": 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": {
"height": int
,
"width": int
,
"cfgScale": float
,
"seed": int
,
"numberOfImages": int
}
}
En esta solicitud, se utilizan los siguientes campos imageVariationParams
:
-
images
(obligatorio): una lista de 1 a 5 imágenes para utilizarlas como referencias. Cada una debe tener formato JPEG o PNG y estar codificada como cadenas Base64. Consulte Imágenes de entrada para la generación de imágenes para ver los requisitos adicionales.
-
similarityStrength
(opcional): especifica el grado de similitud que debe tener la imagen generada con las imágenes de entrada. Los valores válidos están entre 0,2 y 1,0, y se utilizan valores más bajos para introducir más aleatoriedad.
-
text
(obligatorio): una petición de texto para generar la imagen. La petición debe tener una longitud de entre 1 y 1024 caracteres. Si omite este campo, el modelo eliminará los elementos que se encuentran dentro del área de máscara. Se sustituirán por una extensión perfecta del fondo de la imagen.
-
negativeText
(opcional): una petición de texto para definir lo que no se debe incluir en la imagen. Este valor debe tener una longitud de entre 1 y 1024 caracteres.
-
style
(opcional): especifica el estilo que se utiliza para generar esta imagen. Para obtener más información, consulte Estilos visuales.
Evite usar palabras negativas (“no”, “sin”, etc.) en sus valores text
y negativeText
. Por ejemplo, si no quiere espejos en una imagen, en lugar de incluir “que no haya espejos” o “sin espejos” en el campo text
, utilice la palabra “espejos” en el campo negativeText
.
Edición de imágenes
Los siguientes ejemplos presentan diferentes casos de uso de la edición de imágenes. Cada ejemplo proporciona una explicación de los campos que se utilizan para editar imágenes.
- 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
}
}
En esta solicitud, se utilizan los siguientes campos inPaintingParams
:
-
image
(obligatorio): la imagen JPEG o PNG que desea modificar, formateada como una cadena Base64. Consulte Imágenes de entrada para la generación de imágenes para ver los requisitos adicionales.
-
maskPrompt
o maskImage
(obligatorio): debe especificar el parámetro maskPrompt
o el parámetro maskImage
, pero no ambos.
El maskPrompt
es una petición de texto en lenguaje natural que describe las regiones de la imagen que se deben editar.
El maskImage
es una imagen que define las áreas de la imagen que se deben editar. La imagen de máscara debe tener el mismo tamaño que la imagen de entrada. Las áreas que se deben editar se sombrean en negro puro y las áreas que se deben ignorar se sombrean en blanco puro. No se permiten otros colores en la imagen de máscara.
Tenga en cuenta que las solicitudes de inpainting y outpainting son opuestas en cuanto a los requisitos de color de las imágenes de máscara.
-
text
(obligatorio): una petición de texto que describe qué se debe generar en la región de máscara. La petición debe tener una longitud de entre 1 y 1024 caracteres. Si omite este campo, el modelo eliminará los elementos que se encuentran dentro del área de máscara. Se sustituirán por una extensión perfecta del fondo de la imagen.
-
negativeText
(opcional): una petición de texto para definir lo que no se debe incluir en la imagen. Este valor debe tener una longitud de entre 1 y 1024 caracteres.
Evite usar palabras negativas (“no”, “sin”, etc.) en sus valores text
y negativeText
. Por ejemplo, si no quiere espejos en una imagen, en lugar de incluir “que no haya espejos” o “sin espejos” en el campo text
, utilice la palabra “espejos” en el 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
}
}
En esta solicitud, se utilizan los siguientes campos outPaintingParams
:
-
image
(obligatorio): la imagen JPEG o PNG que desea modificar, formateada como una cadena Base64. Consulte Imágenes de entrada para la generación de imágenes para ver los requisitos adicionales.
-
maskPrompt
o maskImage
(obligatorio): debe especificar el parámetro maskPrompt
o el parámetro maskImage
, pero no ambos.
El maskPrompt
es una petición de texto en lenguaje natural que describe las regiones de la imagen que se deben editar.
El maskImage
es una imagen que define las áreas de la imagen que se deben editar. La imagen de máscara debe tener el mismo tamaño que la imagen de entrada. Las áreas que se deben editar se sombrean en negro puro y las áreas que se deben ignorar se sombrean en blanco puro. No se permiten otros colores en la imagen de máscara.
Tenga en cuenta que las solicitudes de inpainting y outpainting son opuestas en cuanto a los requisitos de color de las imágenes de máscara.
-
outPaintingMode
: determina cómo se interpreta la máscara proporcionada.
Utilice DEFAULT
para realizar una transición sutil entre el área enmascarada y el área no enmascarada. Algunos de los píxeles originales se utilizan como punto de partida para el nuevo fondo. Este modo suele ser mejor cuando se desea que el nuevo fondo utilice colores similares a los del fondo original. Sin embargo, puede obtener un efecto de halo si su petición solicita un fondo nuevo que sea significativamente diferente al fondo original.
Utilice PRECISE
para adherirse estrictamente a los límites de la máscara. Este modo suele ser mejor cuando se realizan cambios significativos en el fondo.
-
text
(obligatorio): una petición de texto que describe qué se debe generar en la región de máscara. La petición debe tener una longitud de entre 1 y 1024 caracteres. Si omite este campo, el modelo eliminará los elementos que se encuentran dentro del área de máscara. Se sustituirán por una extensión perfecta del fondo de la imagen.
-
negativeText
(opcional): una petición de texto para definir lo que no se debe incluir en la imagen. Este valor debe tener una longitud de entre 1 y 1024 caracteres.
Evite usar palabras negativas (“no”, “sin”, etc.) en sus valores text
y negativeText
. Por ejemplo, si no quiere espejos en una imagen, en lugar de incluir “que no haya espejos” o “sin espejos” en el campo text
, utilice la palabra “espejos” en el campo negativeText
.
- Background removal request
-
{
"taskType": "BACKGROUND_REMOVAL",
"backgroundRemovalParams": {
"image": string
(Base64 encoded image)
}
}
En esta solicitud, se utiliza el siguiente campo backgroundRemovalParams
:
La tarea BACKGROUND_REMOVAL
devolverá una imagen PNG con transparencia completa de 8 bits. Este formato proporciona un aislamiento suave y limpio de los objetos en primer plano y facilita la composición de la imagen con otros elementos en una aplicación de edición de imágenes, una presentación o un sitio web. El fondo se puede cambiar fácilmente a un color sólido mediante un código personalizado sencillo.
- 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
}
}
En esta solicitud, se utilizan los siguientes campos virtualTryOnParams
:
-
sourceImage
(obligatorio): la imagen JPEG o PNG que desea modificar, formateada como una cadena Base64. Consulte Imágenes de entrada para la generación de imágenes para ver los requisitos adicionales.
-
referenceImage
(obligatorio): la imagen JPEG o PNG que contiene el objeto que desea superponer a la imagen de origen, formateada como una cadena Base64. Consulte Imágenes de entrada para la generación de imágenes para ver los requisitos adicionales.
-
maskType
(obligatorio): especifica si la máscara se proporciona como imagen, petición o máscara para prendas de vestir.
-
imageBasedMask
: obligatorio cuando maskType
es "IMAGE"
.
El maskImage
es una imagen que define las áreas de la imagen que se deben editar. La imagen de máscara debe tener el mismo tamaño que la imagen de entrada. Las áreas que se deben editar se sombrean en negro puro y las áreas que se deben ignorar se sombrean en blanco puro. No se permiten otros colores en la imagen de máscara.
-
garmentBasedMask
: obligatorio cuando maskType
es "GARMENT"
.
-
maskShape
(opcional): define la forma del cuadro delimitador de la máscara. La forma y el tamaño del cuadro delimitador pueden afectar la forma en que la imagen de referencia se transfiere a la imagen de origen.
-
garmentClass
(obligatorio): define la prenda de vestir que se va a transferir. Este parámetro permite al modelo centrarse en partes específicas de la imagen de referencia que desea transferir.
-
garmentStyling
(opcional): proporciona pautas de estilo al modelo para determinadas prendas de vestir. Los parámetros longSleeveStyle
y tuckingStyle
se aplican únicamente a las prendas de la parte superior del cuerpo. El parámetro outerLayerStyle
se aplica solo a las prendas exteriores de la parte superior del cuerpo.
-
promptBasedMask
(obligatorio): obligatorio cuando maskType
es "PROMPT"
.
-
maskShape
(opcional): define la forma del cuadro delimitador de la máscara. La forma y el tamaño del cuadro delimitador pueden afectar la forma en que la imagen de referencia se transfiere a la imagen de origen.
-
maskPrompt
(obligatorio): una petición de texto en lenguaje natural que describe las regiones de la imagen que se deben editar.
-
maskExclusions
(opcional): cuando se detecta a una persona en la imagen de origen, estos parámetros determinan si su postura corporal, manos y rostro deben mantenerse en la imagen de salida o regenerarse.
-
mergeStyle
(opcional): determina cómo se unen las imágenes de origen y de referencia. Cada estilo de combinación adopta un enfoque diferente para unir los elementos y crear la imagen final, cada uno con sus propias ventajas y desventajas.
-
"BALANCED"
: protege los píxeles no enmascarados de la imagen de origen, garantizando que conserven una precisión del 100 % con respecto al original. En algunos casos, habrá un ligero desajuste perceptible de color o textura en la imagen de salida, que se presenta como una especie de imagen “fantasma” con forma de máscara. Lo más probable es que esto ocurra cuando la imagen muestre a una persona de pie sobre un fondo de color sólido o con una textura uniforme. Para evitarlo, puede utilizar el estilo de fusión "SEAMLESS"
en su lugar.
-
"SEAMLESS"
: garantiza que en la imagen final nunca se notará una unión entre las áreas de las imágenes enmascaradas y no enmascaradas. La desventaja es que este modo hace que todos los píxeles de la imagen cambien ligeramente y, a veces, puede disminuir los detalles finos en las áreas no enmascaradas de la imagen.
-
"DETAILED"
: puede mejorar considerablemente los detalles finos, como los logotipos y el texto, especialmente cuando el área enmascarada es relativamente pequeña en comparación con la imagen en general. El modelo logra esto al realizar inpainting en una versión de la imagen original muy recortada y de mayor resolución, que solo incluye la zona enmascarada. A continuación, vuelve a fusionar el resultado con la imagen original. Al igual que con el modo "BALANCED"
, este modo a veces puede resultar en una unión visible.
-
returnMask
(opcional): especifica si la imagen de máscara se devuelve con la imagen de salida.
Cuerpo de respuesta
El cuerpo de la respuesta contendrá uno o varios de los siguientes campos:
{
"images": "images": string[] (list of Base64 encoded images),
"maskImage": string (Base64 encoded image),
"error": string
}
-
images
: cuando se ejecuta correctamente, se devuelve una lista de cadenas codificadas en Base64 que representan cada imagen que se generó. Esta lista no siempre contiene el mismo número de imágenes que solicitó. Es posible que las imágenes individuales se bloqueen después de la generación si no cumplen con la política de moderación de contenido de la IA responsable (RAI) de AWS. Solo se devuelven imágenes que cumplan con la política de RAI.
-
maskImage
: cuando especificó que la imagen de máscara debe devolverse con la salida, aquí es donde se devuelve.
-
error
: si alguna imagen no cumple con la política de RAI, se devuelve este campo. De lo contrario, este campo se omite en la respuesta.
El campo imageGenerationConfig
es común a todos los tipos de tareas, excepto BACKGROUND_REMOVAL
. Es opcional y contiene los siguientes campos. Si omite este objeto, se utilizan las configuraciones predeterminadas.
-
width
y height
(opcional): definen el tamaño y la relación de aspecto de la imagen generada. El valor predeterminado de ambos es 1024.
Los valores width
y height
no deben proporcionarse para los tipos de tareas "INPAINTING"
, "OUTPAINTING"
o "VIRTUAL_TRY_ON"
.
Para obtener una lista completa de resoluciones admitidas, consulte Resoluciones de imágenes admitidas.
-
quality
(opcional): especifica la calidad que se utilizará al generar la imagen, “standard” (predeterminada) o “premium”.
-
cfgScale
(opcional): especifica lo estrictamente que el modelo debe adherirse a la petición. Los valores oscilan entre 1,1 y 10, inclusive, y el valor predeterminado es de 6,5.
-
Valores bajos (entre 1,1 y 3): más libertad creativa para la IA, potencialmente más estéticos, pero con bajo contraste y resultados menos adherentes a la petición
-
Valores medios (entre 4 y 7): enfoque equilibrado, que normalmente se recomienda para la mayoría de las generaciones
-
Valores altos (entre 8 y 10): adherencia estricta a la petición, que puede producir resultados más precisos, pero a veces a costa de una estética natural y de una mayor saturación del color
-
numberOfImages
(opcional): el número de imágenes que se van a generar.
Minimum |
Maximum |
Default |
1 |
5 |
1 |
-
seed
(opcional): determina el ajuste de ruido inicial para el proceso de generación. Si se cambia el valor de inicio y se mantienen intactos todos los demás parámetros, se obtendrá una imagen totalmente nueva que seguirá ajustándose a las peticiones, las dimensiones y demás ajustes. Es habitual experimentar con una variedad de valores de inicio para encontrar la imagen perfecta.
Minimum |
Maximum |
Default |
0 |
2,147,483,646 |
12 |
La resolución (width
y height
), numberOfImages
y quality
influyen en el tiempo que tarda la generación en completarse. El SDK de AWS tiene un read_timeout
predeterminado de 60 segundos, que se puede superar fácilmente si se utilizan valores más altos para estos parámetros. Por lo tanto, se recomienda aumentar el read_timeout
de sus llamadas de invocación a al menos 5 minutos (300 segundos). En el siguiente ejemplo de código, se muestra cómo hacerlo.