Estrutura de solicitação e resposta para geração de imagens - Amazon Nova

Estrutura de solicitação e resposta para geração de imagens

Geração de imagens

Os exemplos a seguir apresentam diferentes casos de uso de geração de imagens. Cada exemplo fornece uma explicação dos campos usados para a geração da imagens.

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 } }

Os seguintes campos textToImageParams são usados nesta solicitação:

  • text (obrigatório): um prompt de texto para gerar a imagem. O prompt deve ter de 1 a 1.024 caracteres.

  • negativeText (opcional): um prompt de texto para definir o que não incluir na imagem. Esse valor deve ter de 1 a 1.024 caracteres.

  • style (opcional): especifica o estilo usado para gerar essa imagem. Para obter mais informações, consulte Estilos visuais.

nota

Evite usar palavras negativas (“não”, “nem”, “sem” etc.) em seus valores de text e negativeText. Por exemplo, se você não quiser espelhos em uma imagem, em vez de incluir “nenhum espelho” ou “sem espelhos” no campo text, use a palavra “espelhos” no 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 } }

Os seguintes campos textToImageParams são usados nesta solicitação:

  • conditionImage (obrigatório): uma imagem JPEG ou PNG que orienta o layout e a composição da imagem gerada. A imagem deve ser formatada como uma string Base64. Consulte Imagens de entrada para geração de imagens para obter os requisitos adicionais.

  • controlMode (opcional): especifica qual modo de condicionamento será usado. O valor padrão é “CANNY_EDGE”.

    • CANNY_EDGE: os elementos da imagem gerada seguirão rigorosamente os contornos proeminentes, ou as “bordas”, da imagem de condição.

    • SEGMENTATION: a imagem de condição será analisada automaticamente para identificar formas de conteúdo proeminentes. Essa análise resulta em uma máscara de segmentação que orienta a geração, resultando em uma imagem gerada que segue rigorosamente o layout da imagem de condição, mas permite ao modelo mais liberdade dentro dos limites de cada área de conteúdo.

  • controlStrength (opcional): especifica a semelhança que o layout e a composição da imagem gerada devem ter com conditionImage. O intervalo é de 0 a 1,0, e valores mais baixos introduzem mais aleatoriedade. O valor padrão é 0,7.

  • text (obrigatório): um prompt de texto para gerar a imagem. O prompt deve ter de 1 a 1.024 caracteres.

  • negativeText (opcional): um prompt de texto para definir o que não incluir na imagem. Esse valor deve ter de 1 a 1.024 caracteres.

  • style (opcional): especifica o estilo usado para gerar essa imagem. Para obter mais informações, consulte Estilos visuais.

nota

Evite usar palavras negativas (“não”, “nem”, “sem” etc.) em seus valores de text e negativeText. Por exemplo, se você não quiser espelhos em uma imagem, em vez de incluir “nenhum espelho” ou “sem espelhos” no campo text, use a palavra “espelhos” no 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 } }

Os seguintes campos colorGuidedGenerationParams são usados nesta solicitação:

  • colors (obrigatório): uma lista de até dez códigos de cores que definem a paleta de cores desejada para a sua imagem. Expressos como valores hexadecimais no formato “#RRGGBB”. Por exemplo, “#00FF00” é verde puro e “#FCF2AB” é um amarelo quente. A lista de colors tem o efeito mais forte quando uma referenceImage não é fornecida. Do contrário, as cores na lista e as cores da imagem de referência serão usadas na saída final.

  • referenceImage (opcional): uma imagem JPEG ou PNG para usar como referência de assunto e estilo. As cores da imagem também serão incorporadas à sua saída final, junto com as cores da lista de colors. Consulte Imagens de entrada para geração de imagens para obter os requisitos adicionais.

  • text (obrigatório): um prompt de texto para gerar a imagem. O prompt deve ter de 1 a 1.024 caracteres.

  • negativeText (opcional): um prompt de texto para definir o que não incluir na imagem. Esse valor deve ter de 1 a 1.024 caracteres.

  • style (opcional): especifica o estilo usado para gerar essa imagem. Para obter mais informações, consulte Estilos visuais.

nota

Evite usar palavras negativas (“não”, “nem”, “sem” etc.) em seus valores de text e negativeText. Por exemplo, se você não quiser espelhos em uma imagem, em vez de incluir “nenhum espelho” ou “sem espelhos” no campo text, use a palavra “espelhos” no 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 } }

Os seguintes campos imageVariationParams são usados nesta solicitação:

  • images (obrigatório): uma lista de uma a cinco imagens para usar como referências. Cada uma deve estar no formato JPEG ou PNG e deve ser codificada como strings Base64. Consulte Imagens de entrada para geração de imagens para obter os requisitos adicionais.

  • similarityStrength (opcional): especifica qual a semelhança que a imagem gerada deve ter em relação às imagens de entrada. Os valores válidos são entre 0,2 e 1,0, com valores mais baixos usados para introduzir mais aleatoriedade.

  • text (obrigatório): um prompt de texto para gerar a imagem. O prompt deve ter de 1 a 1.024 caracteres. Se você omitir este campo, o modelo removerá elementos dentro da área mascarada. Eles serão substituídos por uma extensão perfeita do plano de fundo da imagem.

  • negativeText (opcional): um prompt de texto para definir o que não incluir na imagem. Esse valor deve ter de 1 a 1.024 caracteres.

  • style (opcional): especifica o estilo usado para gerar essa imagem. Para obter mais informações, consulte Estilos visuais.

nota

Evite usar palavras negativas (“não”, “nem”, “sem” etc.) em seus valores de text e negativeText. Por exemplo, se você não quiser espelhos em uma imagem, em vez de incluir “nenhum espelho” ou “sem espelhos” no campo text, use a palavra “espelhos” no campo negativeText.

Edição de imagem

Os exemplos a seguir apresentam diferentes casos de uso para geração de imagens. Cada exemplo fornece uma explicação dos campos usados para editar a imagem.

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 } }

Os seguintes campos inPaintingParams são usados nesta solicitação:

  • image (obrigatório): o JPEG ou PNG que você deseja modificar, formatado como uma string Base64. Consulte Imagens de entrada para geração de imagens para obter os requisitos adicionais.

  • maskPrompt ou maskImage (obrigatório): você deve especificar o parâmetro maskPrompt ou maskImage, mas não ambos.

    O maskPrompt é um prompt de texto em linguagem natural que descreve as regiões da imagem a serem editadas.

    O maskImage é uma imagem que define as áreas da imagem a serem editadas. A imagem da máscara deve ter o mesmo tamanho da imagem de entrada. As áreas a serem editadas são sombreadas em preto puro, e as áreas a serem ignoradas são sombreadas em branco puro. Nenhuma outra cor é permitida na imagem da máscara.

    Observe que as solicitações de inpainting e outpainting são opostas em relação aos requisitos de cor das imagens da máscara.

  • text (obrigatório): um prompt de texto que descreve o que gerar dentro da região mascarada. O prompt deve ter de 1 a 1.024 caracteres. Se você omitir este campo, o modelo removerá elementos dentro da área mascarada. Eles serão substituídos por uma extensão perfeita do plano de fundo da imagem.

  • negativeText (opcional): um prompt de texto para definir o que não incluir na imagem. Esse valor deve ter de 1 a 1.024 caracteres.

nota

Evite usar palavras negativas (“não”, “nem”, “sem” etc.) em seus valores de text e negativeText. Por exemplo, se você não quiser espelhos em uma imagem, em vez de incluir “nenhum espelho” ou “sem espelhos” no campo text, use a palavra “espelhos” no 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 } }

Os seguintes campos outPaintingParams são usados nesta solicitação:

  • image (obrigatório): o JPEG ou PNG que você deseja modificar, formatado como uma string Base64. Consulte Imagens de entrada para geração de imagens para obter os requisitos adicionais.

  • maskPrompt ou maskImage (obrigatório): você deve especificar o parâmetro maskPrompt ou maskImage, mas não ambos.

    O maskPrompt é um prompt de texto em linguagem natural que descreve as regiões da imagem a serem editadas.

    O maskImage é uma imagem que define as áreas da imagem a serem editadas. A imagem da máscara deve ter o mesmo tamanho da imagem de entrada. As áreas a serem editadas são sombreadas em preto puro, e as áreas a serem ignoradas são sombreadas em branco puro. Nenhuma outra cor é permitida na imagem da máscara.

    Observe que as solicitações de inpainting e outpainting são opostas em relação aos requisitos de cor das imagens da máscara.

  • outPaintingMode: determina como a máscara que você fornece é interpretada.

    Use DEFAULT para fazer uma transição suave entre a área mascarada e a área não mascarada. Alguns dos pixels originais são usados como ponto de partida para o novo plano de fundo. Esse modo geralmente é melhor quando você deseja que o novo plano de fundo use cores semelhantes às do plano de fundo original. No entanto, você poderá obter um efeito de halo se seu prompt solicitar um novo plano de fundo que seja significativamente diferente do plano de fundo original.

    Use PRECISE para aderir estritamente aos limites da máscara. Este modo geralmente é melhor quando você está fazendo alterações significativas no plano de fundo.

  • text (obrigatório): um prompt de texto que descreve o que gerar dentro da região mascarada. O prompt deve ter de 1 a 1.024 caracteres. Se você omitir este campo, o modelo removerá elementos dentro da área mascarada. Eles serão substituídos por uma extensão perfeita do plano de fundo da imagem.

  • negativeText (opcional): um prompt de texto para definir o que não incluir na imagem. Esse valor deve ter de 1 a 1.024 caracteres.

nota

Evite usar palavras negativas (“não”, “nem”, “sem” etc.) em seus valores de text e negativeText. Por exemplo, se você não quiser espelhos em uma imagem, em vez de incluir “nenhum espelho” ou “sem espelhos” no campo text, use a palavra “espelhos” no campo negativeText.

Background removal request
{ "taskType": "BACKGROUND_REMOVAL", "backgroundRemovalParams": { "image": string (Base64 encoded image) } }

O seguinte campo backgroundRemovalParams é usado nesta solicitação:

A tarefa BACKGROUND_REMOVAL retornará uma imagem PNG com transparência total de 8 bits. Esse formato oferece um isolamento suave e limpo dos objetos em primeiro plano e facilita a composição da imagem com outros elementos em uma aplicação de edição de imagens, apresentação ou site. O plano de fundo pode ser facilmente alterado para uma cor sólida usando um código personalizado simples.

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 } }

Os seguintes campos virtualTryOnParams são usados nesta solicitação:

  • sourceImage (obrigatório): o JPEG ou PNG que você deseja modificar, formatado como uma string Base64. Consulte Imagens de entrada para geração de imagens para obter os requisitos adicionais.

  • referenceImage (obrigatório): o JPEG ou PNG que contém o objeto que você deseja sobrepor à imagem de origem, formatado como uma string Base64. Consulte Imagens de entrada para geração de imagens para obter os requisitos adicionais.

  • maskType (obrigatório): especifica se a máscara é fornecida como uma imagem, uma indicação ou uma máscara de vestuário.

  • imageBasedMask: obrigatório quando maskType for "IMAGE".

    O maskImage é uma imagem que define as áreas da imagem a serem editadas. A imagem da máscara deve ter o mesmo tamanho da imagem de entrada. As áreas a serem editadas são sombreadas em preto puro, e as áreas a serem ignoradas são sombreadas em branco puro. Nenhuma outra cor é permitida na imagem da máscara.

  • garmentBasedMask: obrigatório quando maskType for "GARMENT".

    • maskShape (opcional): define a forma da caixa delimitadora da máscara. A forma e o tamanho da caixa delimitadora podem afetar a forma como a imagem de referência é transferida para a imagem de origem.

    • garmentClass (obrigatório): define a peça de roupa que está sendo transferida. Esse parâmetro permite que o modelo se concentre em partes específicas da imagem de referência que você deseja transferir.

    • garmentStyling (opcional): fornece dicas de estilo ao modelo para determinadas peças de vestuário. Os parâmetros longSleeveStyle e tuckingStyle são aplicáveis somente aos trajes da parte superior do corpo. O parâmetro outerLayerStyle só é aplicável somente às roupas da camada externa e da parte superior do corpo.

  • promptBasedMask (obrigatório): obrigatório quando maskType for "PROMPT".

    • maskShape (opcional): define a forma da caixa delimitadora da máscara. A forma e o tamanho da caixa delimitadora podem afetar a forma como a imagem de referência é transferida para a imagem de origem.

    • maskPrompt (obrigatório): um prompt de texto em linguagem natural que descreve as regiões da imagem a serem editadas.

  • maskExclusions (opcional): quando uma pessoa é detectada na imagem de origem, esses parâmetros determinam se a pose corporal, as mãos e o rosto devem ser mantidos na imagem de saída ou regenerados.

  • mergeStyle (opcional): determina como as imagens de origem e de referência são unidas. Cada estilo de mesclagem adota uma abordagem diferente na forma de costurar os elementos para criar a imagem final, cada um com seus benefícios e desvantagens.

    • "BALANCED": protege todos os pixels não mascarados na imagem original, garantindo que eles permaneçam 100% precisos em relação à imagem original. Em alguns casos, haverá uma leve incompatibilidade perceptível de cor ou textura na imagem de saída que se apresenta como uma espécie de imagem “fantasma” do formato da máscara. É mais provável que isso ocorra quando a imagem mostrar uma pessoa em pé contra um fundo de cor sólida ou com textura uniforme. Para evitar isso, você poderá usar o estilo de mesclagem "SEAMLESS" como alternativa.

    • "SEAMLESS": garante que nunca haja uma costura perceptível entre as áreas das imagens mascaradas e não mascaradas na imagem final. A desvantagem é que esse modo faz com que todos os pixels da imagem mudem levemente e, ocasionalmente, pode diminuir detalhes refinados nas áreas não mascaradas da imagem.

    • "DETAILED": pode melhorar muito detalhes refinados, como logotipos e texto, especialmente quando a área mascarada for relativamente pequena em comparação com a imagem geral. O modelo consegue isso realizando inpainting em uma versão bem recortada e de alta resolução da imagem original, que inclui apenas a área mascarada. Em seguida, ele mescla o resultado de volta com a imagem original. Assim como no uso do modo "BALANCED", ocasionalmente esse modo pode resultar em uma costura visível.

  • returnMask (opcional): especifica se a imagem da máscara é retornada com a imagem de saída.

Corpo da resposta

O corpo da resposta conterá um ou mais dos seguintes campos:

{ "images": "images": string[] (list of Base64 encoded images), "maskImage": string (Base64 encoded image), "error": string }
  • images: quando bem-sucedida, o sistema retorna uma lista de strings codificadas em Base64 que representam cada imagem gerada. Essa lista nem sempre contém o mesmo número de imagens que você solicitou. Imagens individuais poderão ser bloqueadas após a geração se não estiverem alinhadas com a política de moderação de conteúdo de IA responsável (RAI) da AWS. Somente imagens alinhadas com a política de RAI são retornadas.

  • maskImage: quando você especificar que a imagem da máscara deve ser retornada com a saída, ela é retornada aqui.

  • error: esse campo será retornado se alguma imagem não estiver alinhada com a política de RAI. Senão, este campo será omitido da resposta.

O campo imageGenerationConfig é comum a todos os tipos de tarefas, exceto BACKGROUND_REMOVAL. É opcional e contém os campos a seguir. Se você omitir este objeto, as configurações padrão serão usadas.

  • width e height (opcional): define o tamanho e a proporção da imagem gerada. O padrão de ambos é 1024.

    Os valores width e height não devem ser fornecidos para os tipos de tarefa "INPAINTING", "OUTPAINTING" ou "VIRTUAL_TRY_ON".

    Para obter uma lista completa de resoluções compatíveis, consulte Resoluções de imagem compatíveis.

  • quality (opcional): especifica a qualidade a ser usada ao gerar a imagem: “standard” (padrão) ou “premium”.

  • cfgScale (opcional): especifica o nível de rigidez para que o modelo siga o prompt. Os valores variam de 1,1 a 10, inclusive, e o valor padrão é 6,5.

    • Valores baixos (1,1 a 3): mais liberdade criativa para a IA, potencialmente mais estéticos, mas com baixo contraste e resultados menos aderentes ao prompt.

    • Valores médios (4 a 7): abordagem equilibrada, normalmente recomendada para a maioria das gerações.

    • Valores altos (8 a 10): aderência rígida ao prompt, que pode produzir resultados mais precisos, mas ocasionalmente abrindo mão da estética natural e do aumento da saturação da cor.

  • numberOfImages (opcional): o número de imagens a serem geradas.

    Minimum Maximum Default
    1 5 1
  • seed (opcional): determina a configuração inicial de ruído para o processo de geração. Alterar o valor da semente e deixar todos os outros parâmetros iguais produzirá uma imagem totalmente nova que ainda segue suas instruções, dimensões e outras configurações. É comum experimentar uma variedade de valores de semente para encontrar a imagem perfeita.

    Minimum Maximum Default
    0 2,147,483,646 12
Importante

A resolução (width e height), o numberOfImages e a quality têm um impacto no tempo necessário para que a geração seja concluída. O AWS SDK tem um read_timeout padrão de sessenta segundos, que pode ser facilmente excedido ao usar valores mais altos para esses parâmetros. Portanto, é recomendável que você aumente o read_timeout de suas chamadas de invocação para pelo menos cinco minutos (300 segundos). Os exemplos de código demonstram como fazer isso.