Gerar imagens usando solicitações de texto

É possível usar o Imagen na Vertex AI para gerar novas imagens a partir de um prompt de texto fornecido no console do Google Cloud ou enviar uma solicitação para a API Vertex AI .

Para mais informações sobre como escrever solicitações de texto para geração e edição de imagens, consulte o guia de solicitação.

Visualizar o card do modelo Imagen para geração

Testar a geração de imagens (Vertex AI Studio)

Locais

Um local é uma região que pode ser especificada em uma solicitação para controlar onde os dados são armazenados em repouso. Para uma lista de regiões disponíveis, consulte IA generativa em locais da Vertex AI.

Filtragem de segurança

Os dados de entrada e o conteúdo de saída são verificados quanto a material ofensivo quando você envia uma solicitação de geração de imagem para o Imagen. Isso significa que uma entrada de comando de texto ofensiva pode ser bloqueada. Da mesma forma, imagens de saída ofensivas também podem ser bloqueadas, afetando o número de imagens geradas que você recebe em uma resposta.

Para mais informações sobre a filtragem de segurança e o processamento de conteúdo bloqueado, consulte IA responsável e diretrizes de uso do Imagen.

Desempenho e limitações

Os limites a seguir se aplicam quando você usa um modelo Imagen para geração de imagens:

Limites Valor
(Imagen 3)
Número máximo de solicitações de API por minuto em cada projeto Imagen 3: 20

Imagen 3 Fast: 200
Número máximo de imagens retornadas por solicitação (geração de texto para imagem) 4
Tamanho máximo da imagem enviado ou enviado em uma solicitação (MB) 10 MB
Resolução de imagem retornada (pixels) compatível
  • 1024x1024 pixels (proporção de 1:1)
  • 896x1280 (proporção de 3:4)
  • 1280x896 (proporção de 4:3)
  • 768x1408 (proporção de 9:16)
  • 1408x768 (proporção de 16:9)
Número máximo de tokens de entrada (texto de solicitação de geração de texto para imagem) 480 tokens

Versões do modelo

Existem várias versões do modelo de geração de imagens que podem ser usadas. Para informações sobre o controle de versões dos modelos do Imagen, consulte Modelos do Imagen e ciclo de vida.

Os seguintes modelos e os recursos associados a eles estão disponíveis para a geração de imagem:

Modelo Nome e versão do recurso do modelo Estágio de criação Recursos Proporções Linguagens compatíveis Faturamento
Imagen 3 Imagen 3:

imagen-3.0-generate-002 (modelo mais recente)

imagen-3.0-generate-001


Imagen 3 Fast: imagen-3.0-fast-generate-001

Essa é uma variante de modelo de baixa latência que pode ser usada para prototipagem ou casos de uso de baixa latência.


Personalização do Imagen 3 e Edição: imagen-3.0-capability-001 (usuários aprovados)
Disponibilidade geral

Recursos compatíveis:

  • Geração de imagens
  • Marca-d'água digital e verificação
  • Configurações de segurança configuráveis pelo usuário
  • Melhoria do comando usando o reescrito de comando (somente modelo imagen-3.0-generate-002)
  • Personalização de imagens (aprendizado de poucos exemplos):
    • Personalização do assunto (produto, pessoa e animal de estimação)
    • Personalização de estilo
    • Personalização controlada (rabisco e borda nítida)
    • Instruir a personalização (transferência de estilo)
  • Edição de imagem (baseada em máscara):
    • retoque (inserir ou remover)
    • Outpainting
    • edição de imagens de produtos
  • 1:1 - 1024x1024 pixels (quadrado)
  • 3:4  - 896x1280
  • 4:3  - 1280x896
  • 9:16 - 768x1408
  • 16:9 - 1408x768

Disponibilidade geral

  • Inglês

Visualização:

  • Chinês (simplificado)
  • Chinês (tradicional)
  • Hindi
  • Japonês
  • Coreano
  • Português
  • Espanhol

Sim, o preço se aplica à geração. O preço dos modelos Imagen 3 está em uma nova SKU, então o preço é diferente dos outros modelos.

Para exibir todos os recursos e etapas de lançamento, consulte as Informações gerais do Imagen.
Para exibir os preços associados a cada recurso, consulte a página de preços.

Antes de começar

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Vertex AI API.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Vertex AI API.

    Enable the API

  8. Configure a autenticação do ambiente.

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    Java

    Para usar os exemplos Java desta página em um ambiente de desenvolvimento local, instale e inicialize o gcloud CLI e e configure o Application Default Credentials com suas credenciais de usuário.

    1. Install the Google Cloud CLI.
    2. To initialize the gcloud CLI, run the following command:

      gcloud init
    3. If you're using a local shell, then create local authentication credentials for your user account:

      gcloud auth application-default login

      You don't need to do this if you're using Cloud Shell.

    Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local na documentação de autenticação do Google Cloud.

    Node.js

    Para usar os exemplos Node.js desta página em um ambiente de desenvolvimento local, instale e inicialize o gcloud CLI e e configure o Application Default Credentials com suas credenciais de usuário.

    1. Install the Google Cloud CLI.
    2. To initialize the gcloud CLI, run the following command:

      gcloud init
    3. If you're using a local shell, then create local authentication credentials for your user account:

      gcloud auth application-default login

      You don't need to do this if you're using Cloud Shell.

    Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local na documentação de autenticação do Google Cloud.

    Python

    Para usar os exemplos Python desta página em um ambiente de desenvolvimento local, instale e inicialize o gcloud CLI e e configure o Application Default Credentials com suas credenciais de usuário.

    1. Install the Google Cloud CLI.
    2. To initialize the gcloud CLI, run the following command:

      gcloud init
    3. If you're using a local shell, then create local authentication credentials for your user account:

      gcloud auth application-default login

      You don't need to do this if you're using Cloud Shell.

    Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local na documentação de autenticação do Google Cloud.

    REST

    Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.

      Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init

    Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud.

Gerar imagens com texto

Você pode gerar novas imagens usando apenas texto descritivo como entrada. Os exemplos a seguir mostram instruções básicas para gerar imagens, mas também é possível usar parâmetros adicionais, dependendo do caso de uso.

Console

  1. No console do Google Cloud, abra a guia Vertex AI Studio > Media no painel da Vertex AI.

    Acessar a guia "Vertex AI Studio"
  2. No campo Escreva seu comando, insira uma descrição para as imagens que você quer gerar. Para detalhes sobre como escrever comandos eficazes, consulte o guia de comandos.

    • Por exemplo: ilustração em aquarela de pequeno barco na água durante a manhã
  3. Opcional. Na caixa Opções do modelo, no painel Parâmetros, selecione a versão do modelo a ser usada. Para mais informações, consulte Versões do modelo.

  4. Opcional. Altere os parâmetros padrão e avançados.

  5. Para gerar imagens, clique em Gerar.

    Um exemplo de imagem gerada usando texto
    Geração de imagens para imagens geradas com o Imagen na Vertex AI com base no comando: ilustração em tons pastéis de um pequeno barco vermelho na água pela manhã.

REST

Para mais informações sobre solicitações de modelo imagegeneration, consulte a referência da API do modelo imagegeneration.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_ID: o Google Cloud ID do projeto.
  • MODEL_VERSION: a versão do modelo imagegeneration a ser usada. Valores disponíveis:
    • Imagen 3:
      • imagen-3.0-generate-002 (modelo mais recente)
      • imagen-3.0-generate-001
      • imagen-3.0-fast-generate-001: versão do modelo de baixa latência.
    • Versão padrão do modelo:
      • imagegeneration: usa a versão de modelo padrão v.006. Como prática recomendada, sempre especifique uma versão de modelo, principalmente em ambientes de produção.

    Para mais informações sobre versões e recursos do modelo, consulte Versões do modelo.

  • LOCATION: a região do seu projeto. Por exemplo, us-central1, europe-west2 ou asia-northeast3. Para uma lista de regiões disponíveis, consulte IA generativa em locais da Vertex AI.
  • TEXT_PROMPT: o comando de texto que orienta quais imagens o modelo gera. Este campo é obrigatório para geração e edição.
  • IMAGE_COUNT: o número de imagens geradas. Valores inteiros aceitos: 1 a 8 (imagegeneration@002), 1 a 4 (todas as outras versões de modelo). Valor padrão: 4.
  • Parâmetros opcionais adicionais

    Use as variáveis opcionais a seguir, dependendo do seu caso de uso. Adicione alguns ou todos os parâmetros abaixo no objeto "parameters": {}. Esta lista mostra parâmetros opcionais comuns e não é exaustiva. Para mais informações sobre parâmetros opcionais, consulte a Referência da API Imagen: gerar imagens.

    "parameters": {
      "sampleCount": IMAGE_COUNT,
      "addWatermark": ADD_WATERMARK,
      "aspectRatio": "ASPECT_RATIO",
      "enhancePrompt": ENABLE_PROMPT_REWRITING,
      "includeRaiReason": INCLUDE_RAI_REASON,
      "includeSafetyAttributes": INCLUDE_SAFETY_ATTRIBUTES,
      "outputOptions": {
        "mimeType": "MIME_TYPE",
        "compressionQuality": COMPRESSION_QUALITY
      },
      "personGeneration": "PERSON_SETTING",
      "safetySetting": "SAFETY_SETTING",
      "seed": SEED_NUMBER,
      "storageUri": "OUTPUT_STORAGE_URI"
    }
    
    • ADD_WATERMARK: booleano. Opcional. Define se uma marca-d'água será ativada para imagens geradas. Qualquer imagem gerada quando o campo está definido como true contém um SynthID digital que você pode usar para verificar uma imagem de marca d'água. Se você omitir esse campo, o valor padrão de true será usado. Defina o valor como false para desativar esse recurso. Só é possível usar o campo seed para receber uma saída determinística quando ele está definido como false.
    • ASPECT_RATIO: string. Opcional. Um parâmetro do modo de geração que controla a proporção. Valores de proporção aceitos e o uso pretendido:
      • 1:1 (padrão, quadrado)
      • 3:4 (anúncios, mídias sociais)
      • 4:3 (TV, fotografia)
      • 16:9 (paisagem)
      • 9:16 (retrato)
    • ENABLE_PROMPT_REWRITING: booleano. Opcional. Um parâmetro para usar um recurso de reescrita de comando baseado em LLM para fornecer imagens de maior qualidade que reflitam melhor a intenção do comando original. A desativação desse recurso pode afetar a qualidade da imagem e a adesão imediata. Valor padrão: true
    • INCLUDE_RAI_REASON: booleano. Opcional. Define se o código de motivo filtrado da IA responsável precisa ser ativado nas respostas com entrada ou saída bloqueada. Valor padrão: false.
    • INCLUDE_SAFETY_ATTRIBUTES: booleano. Opcional. Define se as pontuações de IA responsável arredondadas serão ativadas para uma lista de atributos de segurança nas respostas de entrada e saída não filtradas. Categorias de atributos de segurança: "Death, Harm & Tragedy", "Firearms & Weapons", "Hate", "Health", "Illicit Drugs", "Politics", "Porn", "Religion & Belief", "Toxic", "Violence", "Vulgarity", "War & Conflict". Valor padrão: false.
    • MIME_TYPE: string. Opcional. O tipo MIME do conteúdo da imagem. Valores disponíveis:
      • image/jpeg
      • image/gif
      • image/png
      • image/webp
      • image/bmp
      • image/tiff
      • image/vnd.microsoft.icon
    • COMPRESSION_QUALITY: número inteiro. Opcional. Aplica-se apenas a arquivos de saída JPEG. O nível de detalhes que o modelo preserva para imagens geradas no formato de arquivo JPEG. Valores: 0 a 100, em que um número maior significa mais compactação. Padrão: 75.
    • PERSON_SETTING: string. Opcional. A configuração de segurança que controla o tipo de pessoa ou geração de rostos permitida pelo modelo. Valores disponíveis:
      • allow_adult (padrão): permite a geração somente de adultos, exceto para celebridades. A geração de celebridades não é permitida em nenhuma configuração.
      • dont_allow: desativa a inclusão de pessoas ou rostos nas imagens geradas.
    • SAFETY_SETTING: string. Opcional. Uma configuração que controla os limites de filtro de segurança para imagens geradas. Valores disponíveis:
      • block_low_and_above: o limite de segurança mais alto, resultando na maior quantidade de imagens geradas que são filtradas. Valor anterior: block_most.
      • block_medium_and_above (padrão): um limite de segurança médio que equilibra a filtragem de conteúdo potencialmente nocivo e seguro. Valor anterior: block_some.
      • block_only_high: um limite de segurança que reduz o número de solicitações bloqueadas devido a filtros de segurança. Essa configuração pode aumentar o conteúdo censurável gerado pelo Imagen. Valor anterior: block_few.
    • SEED_NUMBER: número inteiro. Opcional. Qualquer número inteiro não negativo fornecido para tornar as imagens de saída determinísticas. Fornecer o mesmo número de origem sempre resulta nas mesmas imagens de saída. Se o modelo que você está usando for compatível com a marca d'água digital, defina "addWatermark": false para usar esse campo. Valores inteiros aceitos: 1 a 2147483647.
    • OUTPUT_STORAGE_URI: string. Opcional. O bucket do Cloud Storage para armazenar as imagens de saída. Se não forem fornecidos, os bytes de imagem codificados em base64 serão retornados na resposta. Valor de exemplo: gs://image-bucket/output/.

Método HTTP e URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_VERSION:predict

Corpo JSON da solicitação:

{
  "instances": [
    {
      "prompt": "TEXT_PROMPT"
    }
  ],
  "parameters": {
    "sampleCount": IMAGE_COUNT
  }
}

Para enviar a solicitação, escolha uma destas opções:

curl

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_VERSION:predict"

PowerShell

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_VERSION:predict" | Select-Object -Expand Content
O exemplo de resposta a seguir é para uma solicitação com "sampleCount": 2. A resposta retorna dois objetos de previsão, com os bytes de imagem gerados codificados em base64.
{
  "predictions": [
    {
      "bytesBase64Encoded": "BASE64_IMG_BYTES",
      "mimeType": "image/png"
    },
    {
      "mimeType": "image/png",
      "bytesBase64Encoded": "BASE64_IMG_BYTES"
    }
  ]
}

Se você usar um modelo compatível com o aprimoramento de comando, a resposta incluirá um campo prompt adicional com o comando aprimorado usado para geração:

{
  "predictions": [
    {
      "mimeType": "MIME_TYPE",
      "prompt": "ENHANCED_PROMPT_1",
      "bytesBase64Encoded": "BASE64_IMG_BYTES_1"
    },
    {
      "mimeType": "MIME_TYPE",
      "prompt": "ENHANCED_PROMPT_2",
      "bytesBase64Encoded": "BASE64_IMG_BYTES_2"
    }
  ]
}

Python

Antes de testar esse exemplo, siga as instruções de configuração para Python no Guia de início rápido da Vertex AI sobre como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Vertex AI para Python.

Para autenticar na Vertex AI, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.

Neste exemplo, você chama o método generate_images no ImageGenerationModel e salva as imagens geradas localmente. Em seguida, é possível usar o método show() em um notebook para mostrar as imagens geradas. Para mais informações sobre versões e atributos de modelos, consulte Versões do modelo.


import vertexai
from vertexai.preview.vision_models import ImageGenerationModel

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# output_file = "input-image.png"
# prompt = "" # The text prompt describing what you want to see.

vertexai.init(project=PROJECT_ID, location="us-central1")

model = ImageGenerationModel.from_pretrained("imagen-3.0-generate-002")

images = model.generate_images(
    prompt=prompt,
    # Optional parameters
    number_of_images=1,
    language="en",
    # You can't use a seed value and watermark at the same time.
    # add_watermark=False,
    # seed=100,
    aspect_ratio="1:1",
    safety_filter_level="block_some",
    person_generation="allow_adult",
)

images[0].save(location=output_file, include_generation_parameters=False)

# Optional. View the generated image in a notebook.
# images[0].show()

print(f"Created output image using {len(images[0]._image_bytes)} bytes")
# Example response:
# Created output image using 1234567 bytes

Java

Antes de testar esse exemplo, siga as instruções de configuração para Java no Guia de início rápido da Vertex AI sobre como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Vertex AI para Java.

Para autenticar na Vertex AI, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.

Neste exemplo, você especifica o modelo imagen-3.0-generate-001 como parte de um EndpointName. O EndpointName é transmitido ao método predict, que é chamado em um PredictionServiceClient. O serviço gera imagens que são salvas localmente. Para mais informações sobre versões e atributos de modelos, consulte Versões do modelo.


import com.google.api.gax.rpc.ApiException;
import com.google.cloud.aiplatform.v1.EndpointName;
import com.google.cloud.aiplatform.v1.PredictResponse;
import com.google.cloud.aiplatform.v1.PredictionServiceClient;
import com.google.cloud.aiplatform.v1.PredictionServiceSettings;
import com.google.gson.Gson;
import com.google.protobuf.InvalidProtocolBufferException;
import com.google.protobuf.Value;
import com.google.protobuf.util.JsonFormat;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.Base64;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;

public class GenerateImageSample {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "my-project-id";
    String location = "us-central1";
    String prompt = ""; // The text prompt describing what you want to see.

    generateImage(projectId, location, prompt);
  }

  // Generate an image using a text prompt using an Imagen model
  public static PredictResponse generateImage(String projectId, String location, String prompt)
      throws ApiException, IOException {
    final String endpoint = String.format("%s-aiplatform.googleapis.com:443", location);
    PredictionServiceSettings predictionServiceSettings =
        PredictionServiceSettings.newBuilder().setEndpoint(endpoint).build();

    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests.
    try (PredictionServiceClient predictionServiceClient =
        PredictionServiceClient.create(predictionServiceSettings)) {

      final EndpointName endpointName =
          EndpointName.ofProjectLocationPublisherModelName(
              projectId, location, "google", "imagen-3.0-generate-001");

      Map<String, Object> instancesMap = new HashMap<>();
      instancesMap.put("prompt", prompt);
      Value instances = mapToValue(instancesMap);

      Map<String, Object> paramsMap = new HashMap<>();
      paramsMap.put("sampleCount", 1);
      // You can't use a seed value and watermark at the same time.
      // paramsMap.put("seed", 100);
      // paramsMap.put("addWatermark", false);
      paramsMap.put("aspectRatio", "1:1");
      paramsMap.put("safetyFilterLevel", "block_some");
      paramsMap.put("personGeneration", "allow_adult");
      Value parameters = mapToValue(paramsMap);

      PredictResponse predictResponse =
          predictionServiceClient.predict(
              endpointName, Collections.singletonList(instances), parameters);

      for (Value prediction : predictResponse.getPredictionsList()) {
        Map<String, Value> fieldsMap = prediction.getStructValue().getFieldsMap();
        if (fieldsMap.containsKey("bytesBase64Encoded")) {
          String bytesBase64Encoded = fieldsMap.get("bytesBase64Encoded").getStringValue();
          Path tmpPath = Files.createTempFile("imagen-", ".png");
          Files.write(tmpPath, Base64.getDecoder().decode(bytesBase64Encoded));
          System.out.format("Image file written to: %s\n", tmpPath.toUri());
        }
      }
      return predictResponse;
    }
  }

  private static Value mapToValue(Map<String, Object> map) throws InvalidProtocolBufferException {
    Gson gson = new Gson();
    String json = gson.toJson(map);
    Value.Builder builder = Value.newBuilder();
    JsonFormat.parser().merge(json, builder);
    return builder.build();
  }
}

Node.js

Antes de testar esse exemplo, siga as instruções de configuração para Node.js no Guia de início rápido da Vertex AI sobre como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Vertex AI para Node.js.

Para autenticar na Vertex AI, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.

Neste exemplo, você chama o método predict em um PredictionServiceClient. O serviço gera imagens que são salvas localmente. Para mais informações sobre versões e recursos do modelo, consulte versões do modelo.

/**
 * TODO(developer): Update these variables before running the sample.
 */
const projectId = process.env.CAIP_PROJECT_ID;
const location = 'us-central1';
const prompt = 'a dog reading a newspaper';

const aiplatform = require('@google-cloud/aiplatform');

// Imports the Google Cloud Prediction Service Client library
const {PredictionServiceClient} = aiplatform.v1;

// Import the helper module for converting arbitrary protobuf.Value objects
const {helpers} = aiplatform;

// Specifies the location of the api endpoint
const clientOptions = {
  apiEndpoint: `${location}-aiplatform.googleapis.com`,
};

// Instantiates a client
const predictionServiceClient = new PredictionServiceClient(clientOptions);

async function generateImage() {
  const fs = require('fs');
  const util = require('util');
  // Configure the parent resource
  const endpoint = `projects/${projectId}/locations/${location}/publishers/google/models/imagen-3.0-generate-001`;

  const promptText = {
    prompt: prompt, // The text prompt describing what you want to see
  };
  const instanceValue = helpers.toValue(promptText);
  const instances = [instanceValue];

  const parameter = {
    sampleCount: 1,
    // You can't use a seed value and watermark at the same time.
    // seed: 100,
    // addWatermark: false,
    aspectRatio: '1:1',
    safetyFilterLevel: 'block_some',
    personGeneration: 'allow_adult',
  };
  const parameters = helpers.toValue(parameter);

  const request = {
    endpoint,
    instances,
    parameters,
  };

  // Predict request
  const [response] = await predictionServiceClient.predict(request);
  const predictions = response.predictions;
  if (predictions.length === 0) {
    console.log(
      'No image was generated. Check the request parameters and prompt.'
    );
  } else {
    let i = 1;
    for (const prediction of predictions) {
      const buff = Buffer.from(
        prediction.structValue.fields.bytesBase64Encoded.stringValue,
        'base64'
      );
      // Write image content to the output file
      const writeFile = util.promisify(fs.writeFile);
      const filename = `output${i}.png`;
      await writeFile(filename, buff);
      console.log(`Saved image ${filename}`);
      i++;
    }
  }
}
await generateImage();

Usar parâmetros para gerar imagens

Ao gerar imagens, há vários parâmetros padrão e avançados que podem ser definidos, dependendo do seu caso de uso.

Adicionar ou verificar uma marca-d'água de imagem

Por padrão, uma marca-d'água digital é adicionada a qualquer imagem gerada por uma versão de modelo compatível com esse processo. Esses recursos adicionam uma marca-d'água digital não visível, chamada SynthID, às imagens. Você pode verificar se uma imagem contém uma marca d'água digital ou não.

Gerar imagens com marca-d'água

Use os exemplos a seguir para gerar imagens com uma marca d'água digital.

Console

  1. No console do Google Cloud, abra a guia Vertex AI Studio > Media no painel da Vertex AI.

    Acessar a guia "Vertex AI Studio"
  2. No campo Escreva seu comando, insira uma descrição para as imagens que você quer gerar. Para detalhes sobre como escrever comandos eficazes, consulte o guia de comandos.

    • Por exemplo: ilustração em aquarela de pequeno barco na água durante a manhã
  3. Opcional. Na caixa Opções do modelo, no painel Parâmetros, selecione a versão do modelo a ser usada. Para mais informações, consulte Versões do modelo.

  4. Opcional. Altere os parâmetros padrão e avançados.

  5. Para gerar imagens, clique em Gerar.

  6. Versão de modelo 006 e mais recentes: uma marca-d'água digital é adicionada automaticamente às imagens geradas. Não é possível desativar a marca-d'água digital para a geração de imagens usando o console do Google Cloud.

    É possível selecionar uma imagem para acessar a janela Detalhes da imagem. As imagens com marca-d'água têm um selo de marca d'água digital. Também é possível verificar explicitamente uma marca-d'água de imagem.

    Um exemplo de imagem com marca-d&#39;água gerada usando texto
    Visualização de detalhes de uma imagem com marca-d'água gerada com o Imagen 2 usando o comando: pequeno barco vermelho na água de manhã em aquarela com cores suaves.

REST

Para mais informações sobre solicitações de modelo imagegeneration, consulte a referência da API do modelo imagegeneration.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_ID: o Google Cloud ID do projeto.
  • MODEL_VERSION: a versão do modelo imagegeneration a ser usada. Valores disponíveis:
    • imagen-3.0-generate-002 (modelo mais recente)
    • imagen-3.0-generate-001
    • imagen-3.0-fast-generate-001: versão do modelo de baixa latência.
    • imagegeneration@006

    Para mais informações sobre versões e recursos do modelo, consulte Versões do modelo.

  • LOCATION: a região do seu projeto. Por exemplo, us-central1, europe-west2 ou asia-northeast3. Para uma lista de regiões disponíveis, consulte IA generativa em locais da Vertex AI.
  • TEXT_PROMPT: o comando de texto que orienta quais imagens o modelo gera. Este campo é obrigatório para geração e edição.
  • IMAGE_COUNT: o número de imagens geradas. Valores inteiros aceitos: 1 a 8 (imagegeneration@002), 1 a 4 (todas as outras versões de modelo). Valor padrão: 4.
  • ADD_WATERMARK: booleano. Opcional. Define se uma marca-d'água será ativada para imagens geradas. Qualquer imagem gerada quando o campo está definido como true contém um SynthID digital que você pode usar para verificar uma imagem de marca d'água. Se você omitir esse campo, o valor padrão de true será usado. Defina o valor como false para desativar esse recurso. Só é possível usar o campo seed para receber uma saída determinística quando ele está definido como false.

Método HTTP e URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_VERSION:predict

Corpo JSON da solicitação:

{
  "instances": [
    {
      "prompt": "TEXT_PROMPT"
    }
  ],
  "parameters": {
    "sampleCount": IMAGE_COUNT,
    "addWatermark": ADD_WATERMARK
  }
}

Para enviar a solicitação, escolha uma destas opções:

curl

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_VERSION:predict"

PowerShell

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_VERSION:predict" | Select-Object -Expand Content
O exemplo de resposta a seguir é para uma solicitação com "sampleCount": 2. A resposta retorna dois objetos de previsão, com os bytes de imagem gerados codificados em base64. A marca d'água digital é adicionada automaticamente às imagens, assim a resposta é igual a uma resposta sem marca-d'água.
{
  "predictions": [
    {
      "mimeType": "image/png",
      "bytesBase64Encoded": "BASE64_IMG_BYTES"
    },
    {
      "bytesBase64Encoded": "BASE64_IMG_BYTES",
      "mimeType": "image/png"
    }
  ]
}

SDK da Vertex AI para Python


import vertexai
from vertexai.preview.vision_models import ImageGenerationModel

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# output_file = "input-image.png"
# prompt = "" # The text prompt describing what you want to see.

vertexai.init(project=PROJECT_ID, location="us-central1")

model = ImageGenerationModel.from_pretrained("imagen-3.0-generate-002")

images = model.generate_images(
    prompt=prompt,
    # Optional parameters
    number_of_images=1,
    language="en",
    # You can't use a seed value and watermark at the same time.
    # add_watermark=False,
    # seed=100,
    aspect_ratio="1:1",
    safety_filter_level="block_some",
    person_generation="allow_adult",
)

images[0].save(location=output_file, include_generation_parameters=False)

# Optional. View the generated image in a notebook.
# images[0].show()

print(f"Created output image using {len(images[0]._image_bytes)} bytes")
# Example response:
# Created output image using 1234567 bytes

Node.js

/**
 * TODO(developer): Update these variables before running the sample.
 */
const projectId = process.env.CAIP_PROJECT_ID;
const location = 'us-central1';
const prompt = 'a dog reading a newspaper';

const aiplatform = require('@google-cloud/aiplatform');

// Imports the Google Cloud Prediction Service Client library
const {PredictionServiceClient} = aiplatform.v1;

// Import the helper module for converting arbitrary protobuf.Value objects
const {helpers} = aiplatform;

// Specifies the location of the api endpoint
const clientOptions = {
  apiEndpoint: `${location}-aiplatform.googleapis.com`,
};

// Instantiates a client
const predictionServiceClient = new PredictionServiceClient(clientOptions);

async function generateImage() {
  const fs = require('fs');
  const util = require('util');
  // Configure the parent resource
  const endpoint = `projects/${projectId}/locations/${location}/publishers/google/models/imagen-3.0-generate-001`;

  const promptText = {
    prompt: prompt, // The text prompt describing what you want to see
  };
  const instanceValue = helpers.toValue(promptText);
  const instances = [instanceValue];

  const parameter = {
    sampleCount: 1,
    // You can't use a seed value and watermark at the same time.
    // seed: 100,
    // addWatermark: false,
    aspectRatio: '1:1',
    safetyFilterLevel: 'block_some',
    personGeneration: 'allow_adult',
  };
  const parameters = helpers.toValue(parameter);

  const request = {
    endpoint,
    instances,
    parameters,
  };

  // Predict request
  const [response] = await predictionServiceClient.predict(request);
  const predictions = response.predictions;
  if (predictions.length === 0) {
    console.log(
      'No image was generated. Check the request parameters and prompt.'
    );
  } else {
    let i = 1;
    for (const prediction of predictions) {
      const buff = Buffer.from(
        prediction.structValue.fields.bytesBase64Encoded.stringValue,
        'base64'
      );
      // Write image content to the output file
      const writeFile = util.promisify(fs.writeFile);
      const filename = `output${i}.png`;
      await writeFile(filename, buff);
      console.log(`Saved image ${filename}`);
      i++;
    }
  }
}
await generateImage();

Verificar uma imagem com marca d'água

Use os exemplos a seguir para verificar se uma imagem tem uma marca-d'água.

Console

  1. No console do Google Cloud, abra a guia Vertex AI Studio > Media no painel da Vertex AI.

    Acessar a guia "Vertex AI Studio"

  2. No painel de baixo, clique em Verificar.

  3. Clique em Fazer upload da imagem.

  4. Selecione uma imagem gerada localmente.

    Exemplo de marca-d&#39;água verificada na imagem gerada no console

REST

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_ID: o Google Cloud ID do projeto.
  • LOCATION: a região do seu projeto. Por exemplo, us-central1, europe-west2 ou asia-northeast3. Para uma lista de regiões disponíveis, consulte IA generativa em locais da Vertex AI.
  • B64_IMAGE: a imagem a ser verificada se contém uma marca d'água digital. A imagem precisa ser especificada como uma string de bytes codificada em base64. Limite de tamanho: 10 MB.

Método HTTP e URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/imageverification@001:predict

Corpo JSON da solicitação:

{
  "instances": [
    {
      "image": {
        "bytesBase64Encoded": "B64_IMAGE"
      }
    }
  ],
  "parameters": {
    "watermarkVerification": true
  }
}

Para enviar a solicitação, escolha uma destas opções:

curl

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/imageverification@001:predict"

PowerShell

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/imageverification@001:predict" | Select-Object -Expand Content
O exemplo de resposta a seguir é para uma solicitação com uma imagem que tem uma marca d'água digital. O campo de decisão pode retornar qualquer um destes valores: ACCEPT ou REJECT.
{
  "predictions": [
    {
      "decision": "ACCEPT"
    }
  ]
}

SDK da Vertex AI para Python


import vertexai
from vertexai.preview.vision_models import (
    Image,
    WatermarkVerificationModel,
)

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# input_file = "input-image.png"

vertexai.init(project=PROJECT_ID, location="us-central1")

verification_model = WatermarkVerificationModel.from_pretrained(
    "imageverification@001"
)
image = Image.load_from_file(location=input_file)

watermark_verification_response = verification_model.verify_image(image)

print(
    f"Watermark verification result: {watermark_verification_response.watermark_verification_result}"
)
# Example response:
# Watermark verification result: ACCEPT
# or "REJECT" if the image does not contain a digital watermark.

Node.js

/**
 * TODO(developer): Update these variables before running the sample.
 */
const projectId = process.env.CAIP_PROJECT_ID;
const location = 'us-central1';
const inputFile = 'resources/dog_newspaper.png'; // has watermark

const aiplatform = require('@google-cloud/aiplatform');

// Imports the Google Cloud Prediction Service Client library
const {PredictionServiceClient} = aiplatform.v1;

// Import the helper module for converting arbitrary protobuf.Value objects
const {helpers} = aiplatform;

// Specifies the location of the api endpoint
const clientOptions = {
  apiEndpoint: `${location}-aiplatform.googleapis.com`,
};

// Instantiates a client
const predictionServiceClient = new PredictionServiceClient(clientOptions);

async function verifyImageWatermark() {
  const fs = require('fs');
  // Configure the parent resource
  const endpoint = `projects/${projectId}/locations/${location}/publishers/google/models/imageverification@001`;

  const imageFile = fs.readFileSync(inputFile);
  // Convert the image data to a Buffer and base64 encode it.
  const encodedImage = Buffer.from(imageFile).toString('base64');

  const instance = {
    image: {
      bytesBase64Encoded: encodedImage,
    },
  };
  const instanceValue = helpers.toValue(instance);
  const instances = [instanceValue];

  const request = {
    endpoint,
    instances,
  };

  // Predict request
  const [response] = await predictionServiceClient.predict(request);
  const predictions = response.predictions;
  if (predictions.length === 0) {
    console.log('No decision was generated. Check the request image.');
  } else {
    predictions.forEach(prediction => {
      // "ACCEPT" if the image contains a digital watermark
      // "REJECT" if the image does not contain a digital watermark
      console.log(prediction.structValue.fields.decision.stringValue);
    });
  }
}
await verifyImageWatermark();

Definir as configurações de segurança da IA responsável (RAI)

Há vários parâmetros de filtragem da IA responsável (RAI) que podem ser usados com um modelo de geração de imagens. Por exemplo, é possível permitir que o modelo informe códigos de RAI para conteúdo bloqueado, desative pessoas ou geração de rostos usando filtros de RAI, defina o nível de filtragem de conteúdo ou retorne pontuações de RAI arredondadas de lista de segurança atributos de entrada e saída.

Para informações mais detalhadas sobre a IA responsável (RAI), os parâmetros associados e a amostra de saída, consulte Entender e configurar a IA responsável para o Imagen.

Os exemplos a seguir mostram como definir parâmetros RAI disponíveis para geração de imagens.

Console

  1. No console do Google Cloud, abra a guia Vertex AI Studio > Media no painel da Vertex AI.

    Acessar a guia "Vertex AI Studio"

  2. Adicione seu comando de texto e escolha os parâmetros de entrada.

  3. Se essa opção não aparecer, clique em Opções avançadas.

  4. Clique em Configurações de segurança.

  5. Escolha suas configurações de segurança:

    • Geração de pessoa/rosto: escolha uma configuração:
      • Allow (All ages)
      • Allow (Adults only)
      • Don't allow
    • Limite do filtro de segurança: escolha uma configuração:
      • Block low and above
      • Block medium and above
      • Block only high
  6. Clique em Salvar.

  7. Clique em Gerar.

REST

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_ID: o Google Cloud ID do projeto.
  • LOCATION: a região do seu projeto. Por exemplo, us-central1, europe-west2 ou asia-northeast3. Para uma lista de regiões disponíveis, consulte IA generativa em locais da Vertex AI.
  • TEXT_PROMPT: o comando de texto que orienta quais imagens o modelo gera. Este campo é obrigatório para geração e edição.
  • IMAGE_COUNT: o número de imagens geradas. Valores inteiros aceitos: 1 a 8 (imagegeneration@002), 1 a 4 (todas as outras versões de modelo). Valor padrão: 4.
  • SAFETY_SETTING: string. Opcional. Uma configuração que controla os limites de filtro de segurança para imagens geradas. Valores disponíveis:
    • block_low_and_above: o limite de segurança mais alto, resultando na maior quantidade de imagens geradas que são filtradas. Valor anterior: block_most.
    • block_medium_and_above (padrão): um limite de segurança médio que equilibra a filtragem de conteúdo potencialmente nocivo e seguro. Valor anterior: block_some.
    • block_only_high: um limite de segurança que reduz o número de solicitações bloqueadas devido a filtros de segurança. Essa configuração pode aumentar o conteúdo censurável gerado pelo Imagen. Valor anterior: block_few.
  • PERSON_SETTING: string. Opcional. A configuração de segurança que controla o tipo de pessoa ou geração de rostos permitida pelo modelo. Valores disponíveis:
    • allow_adult (padrão): permite a geração somente de adultos, exceto para celebridades. A geração de celebridades não é permitida em nenhuma configuração.
    • dont_allow: desativa a inclusão de pessoas ou rostos nas imagens geradas.
  • INCLUDE_RAI_REASON: booleano. Opcional. Define se o código de motivo filtrado da IA responsável precisa ser ativado nas respostas com entrada ou saída bloqueada. Valor padrão: false.
  • INCLUDE_SAFETY_ATTRIBUTES: booleano. Opcional. Define se as pontuações de IA responsável arredondadas serão ativadas para uma lista de atributos de segurança nas respostas de entrada e saída não filtradas. Categorias de atributos de segurança: "Death, Harm & Tragedy", "Firearms & Weapons", "Hate", "Health", "Illicit Drugs", "Politics", "Porn", "Religion & Belief", "Toxic", "Violence", "Vulgarity", "War & Conflict". Valor padrão: false.

Método HTTP e URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/imagegeneration@006:predict

Corpo JSON da solicitação:

{
  "instances": [
    {
      "prompt": "TEXT_PROMPT"
    }
  ],
  "parameters": {
    "sampleCount": IMAGE_COUNT,
    "safetySetting": "SAFETY_SETTING",
    "personGeneration": "PERSON_SETTING",
    "includeRaiReason": INCLUDE_RAI_REASON,
    "includeSafetyAttributes": INCLUDE_SAFETY_ATTRIBUTES
  }
}

Para enviar a solicitação, escolha uma destas opções:

curl

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/imagegeneration@006:predict"

PowerShell

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/imagegeneration@006:predict" | Select-Object -Expand Content
A resposta depende das configurações de segurança definidas. Para mais informações, consulte Entender e configurar a IA responsável (RAI) para o Imagen.

Melhoria do comando usando o reescritor de comandos

A versão 002 do modelo Imagen 3 inclui um recurso de reescrita de comando que usa uma ferramenta de reescrita de comando baseada em LLM. Em geral, essa ferramenta adiciona mais detalhes ao comando fornecido para fornecer imagens de maior qualidade que reflitam melhor o comando. Se você desativar esse recurso, a qualidade e a aderência às instruções das imagens recebidas poderão ser afetadas. Esse recurso é ativado por padrão.

A instrução reescrita só será enviada pela resposta da API se a instrução original tiver menos de 30 palavras.

Console

  1. No console do Google Cloud, abra a guia Vertex AI Studio > Media no painel da Vertex AI.

    Acessar a guia "Vertex AI Studio"

  2. Adicione seu comando de texto e escolha os parâmetros de entrada.

  3. No painel Parâmetros, use a opção toggle_onAtivar a melhoria de instruções para ativar ou desativar esse recurso.

  4. Clique em Gerar.

REST

Para mais informações sobre solicitações de modelo imagegeneration, consulte a referência da API do modelo imagegeneration.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_ID: o Google Cloud ID do projeto.
  • MODEL_VERSION: a versão do modelo de geração de imagem a ser usada. Valores disponíveis que oferecem suporte à melhoria de avisos:
    • imagen-3.0-generate-002

    Para mais informações sobre versões e recursos do modelo, consulte Versões do modelo.

  • LOCATION: a região do seu projeto. Por exemplo, us-central1, europe-west2 ou asia-northeast3. Para uma lista de regiões disponíveis, consulte IA generativa em locais da Vertex AI.
  • TEXT_PROMPT: o comando de texto que orienta quais imagens o modelo gera. Antes que as imagens sejam geradas, esse comando básico é aprimorado com mais detalhes e linguagem descritiva usando a ferramenta de reescrita de comando baseada em LLM.
  • IMAGE_COUNT: o número de imagens geradas. Valores inteiros aceitos: 1 a 4. Valor padrão: 4.
  • enhancePrompt: booleano para ativar o aprimoramento de comandos baseado em LLM. Por padrão, esse valor é definido como true.

Método HTTP e URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_VERSION:predict

Corpo JSON da solicitação:

{
  "instances": [
    {
      "prompt": "TEXT_PROMPT"
    }
  ],
  "parameters": {
    "sampleCount": IMAGE_COUNT,
    "enhancePrompt": true
  }
}

Para enviar a solicitação, escolha uma destas opções:

curl

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_VERSION:predict"

PowerShell

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_VERSION:predict" | Select-Object -Expand Content
Com o aprimoramento de comando ativado, a resposta inclui um campo prompt adicional que mostra o comando aprimorado e a imagem gerada associada:
  {
    "predictions": [
      {
        "mimeType": "MIME_TYPE",
        "prompt": "ENHANCED_PROMPT_1",
        "bytesBase64Encoded": "BASE64_IMG_BYTES_1"
      },
      {
        "mimeType": "MIME_TYPE",
        "prompt": "ENHANCED_PROMPT_2",
        "bytesBase64Encoded": "BASE64_IMG_BYTES_2"
      }
    ]
  }

Por exemplo, o exemplo de resposta a seguir é para uma solicitação com "sampleCount": 2 e "prompt": "A raccoon wearing formal clothes, wearing a top hat. Oil painting in the style of Vincent Van Gogh.". A resposta retorna dois objetos de previsão, cada um com o comando aprimorado e os bytes de imagem gerados codificados em base64.

{
  "predictions": [
    {
      "mimeType": "image/png",
      "prompt": "An oil painting in the style of Vincent van Gogh, depicting a raccoon adorned
        in a finely tailored tuxedo, complete with a crisp white shirt and a bow tie. The raccoon
        also sports a classic top hat, perched jauntily on its head. The painting uses thick,
        swirling brushstrokes characteristic of van Gogh, with vibrant hues of blue, yellow, and
        green in the background, contrasting with the dark tones of the raccoon's attire. The light
        source is subtly placed, casting a dramatic shadow of the raccoon's attire onto the surface
        it sits upon, further enhancing the depth and dimensionality of the composition. The
        overall impression is one of a whimsical and sophisticated character, a raccoon elevated to
        a higher class through its formal attire, rendered in van Gogh's iconic style.",
      "bytesBase64Encoded": "BASE64_IMG_BYTES"
    },
    {
      "mimeType": "image/png",
      "prompt": "An oil painting in the style of Vincent van Gogh featuring a raccoon in a
        dapper suit, complete with a black jacket, crisp white shirt, and a black bow tie. The
        raccoon is wearing a black top hat, adding a touch of elegance to its ensemble. The
        painting is rendered with characteristic van Gogh brushwork, utilizing thick, impasto
        strokes of color. The background is a swirl of blues, greens, and yellows, creating a
        vibrant yet slightly chaotic atmosphere that contrasts with the raccoon's formal attire.
        The lighting is dramatic, casting sharp shadows and highlighting the textures of the fabric
        and the raccoon's fur, enhancing the sense of realism within the fantastical scene. The
        composition focuses on the raccoon's proud posture, highlighting the whimsical contrast of
        a wild animal dressed in formal attire, captured in the unique artistic language of van
        Gogh. ",
      "bytesBase64Encoded": "BASE64_IMG_BYTES"
    }
  ]
}

Idioma do comando de texto

Esse parâmetro opcional permite definir o idioma do texto de entrada para a geração ou edição de imagens.

Imagem de livro gerada a partir de um comando em hindi
Imagem gerada a partir do comando: Você também vai receber todo o conteúdo do canal e a VERTEX AI*

*Uma pilha de livros vista de cima. O livro na parte superior contém uma ilustração em aquarela de um pássaro. A VERTEX AI está escrita em negrito no livro.
imagem de uma mulher com base em um comando em coreano
Imagem gerada com base no comando: 어두운 노란색과 청록색으로 이루어진 밝은 색의 옷을입고 귀걸이를 끼고있는 여자 포스트 모던 패션 사진

Mulher usando brincos e roupas com cores brilhantes, em amarelo-escuro e ciano-escuro; fotografia de moda pós-moderna

Antes de começar

Siga estas outras etapas antes de usar esse recurso:

  1. Use o comando a seguir para criar uma identidade de serviço para a Vertex AI usar no seu projeto:

    gcloud beta services identity create --service=aiplatform.googleapis.com --project=PROJECT_ID
    
  2. Solicitar acesso ao recurso. Para solicitar acesso, envie um e-mail para o grupo Google Cloud Acesso de trusted testers: GenApp Builder. Mencione as instruções multilíngues na mensagem e inclua o número do projeto. O processo de aprovação geralmente leva várias horas.

Definir o idioma da solicitação de texto

Há suporte para os seguintes valores de idioma do prompt de texto de entrada:

  • Chinês (simplificado) (zh/zh-CN)
  • Chinese (Traditional) (zh-TW)
  • Inglês (en, valor padrão)
  • Hindi (hi)
  • Japonês (ja)
  • Coreano (ko)
  • Português (pt)
  • Espanhol (es)

Console

Se o comando estiver em um dos idiomas compatíveis, o Imagen detectará e traduzirá automaticamente o texto e retornará as imagens geradas ou editadas.

Se o comando estiver em um idioma sem suporte, o Imagen vai usar o texto literal para a solicitação. Isso pode resultar em uma saída inesperada.

REST

Para mais informações sobre solicitações de modelo imagegeneration, consulte a referência da API do modelo imagegeneration.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_ID: o Google Cloud ID do projeto.
  • TEXT_PROMPT: o comando de texto que orienta quais imagens o modelo gera. Este campo é obrigatório para geração e edição.
  • PROMPT_LANGUAGE: string. Opcional. O código do idioma que corresponde ao idioma do comando de texto. Neste exemplo, seria hi. Valores disponíveis:
    • auto - Detecção automática Se o Imagen detectar um idioma compatível, o comando (e, se quiser, um comando negativo) será traduzido para o inglês. Se o idioma detectado não for compatível, o Imagen vai usar o texto de entrada literalmente, o que pode resultar em uma saída inesperada. Nenhum código de erro é retornado.
    • en: inglês (valor padrão se omitido)
    • es - Espanhol
    • hi - Hindi
    • ja - Japonês
    • ko - Coreano
    • pt - Português
    • zh-TW - Chinese (Traditional)
    • zh ou zh-CN: chinês (simplificado)

Método HTTP e URL:

POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/imagegeneration@005:predict

Corpo JSON da solicitação:

{
  "instances": [
    {
      "prompt": "सूर्यास्त के समय एक समुद्र तट। उड़ते पक्षी, हवा में लहराते नारियल के पेड़। लोग समुद्र तट पर सैर का आनंद ले रहे हैं।"
    }
  ],
  "parameters": {
    "language": "PROMPT_LANGUAGE"
  }
}

Para enviar a solicitação, escolha uma destas opções:

curl

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/imagegeneration@005:predict"

PowerShell

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/imagegeneration@005:predict" | Select-Object -Expand Content
O exemplo de resposta a seguir é para uma solicitação com "sampleCount": 2. A resposta retorna dois objetos de previsão, com os bytes de imagem gerados codificados em base64.
{
  "predictions": [
    {
      "bytesBase64Encoded": "BASE64_IMG_BYTES",
      "mimeType": "image/png"
    },
    {
      "mimeType": "image/png",
      "bytesBase64Encoded": "BASE64_IMG_BYTES"
    }
  ]
}

Proporção

Dependendo de como você planeja usar as imagens geradas, algumas proporções podem funcionar melhor que outras. Escolha a proporção que melhor se adapta ao seu caso de uso.

Proporções compatíveis e uso pretendido:

Proporção Uso pretendido Resolução da imagem (pixels) Imagem de amostra
1:1 padrão, quadrado, uso geral 1024x1024 (Imagen v.002)

1536x1536 (Imagen 2 v.005, v.006)

1024x1024 (Imagen 3)
Exemplo de imagem gerada no console
Prompt: foto aérea de um jantar com massas, foto de estúdio no estilo de capa de uma revista de culinária.
3:4 TV, mídia e filme 1344x1792 (Imagen 2 v.006)

896x1280 (Imagen 3)
Exemplo de imagem gerada no console
Prompt: sessão de fotos comercial, anúncio de fragrâncias, frasco aromático de lavanda e baunilha em um fundo de cor clara..
4:3 TV, mídia e filme 1792x1344 (Imagen 2 v.006)

1280x896 (Imagen 3)
Exemplo de imagem gerada no console
Prompt: sessão de fotos comercial, tênis verde e cinza de cano alto, 4K, ângulos dramáticos.
9:16 retrato, objetos altos, dispositivos móveis 1134x2016 (Imagen 2 v.005, v.006)

768x1408 (Imagen 3)
Exemplo de imagem gerada no console
Instrução: arranha-céus em Nova York, renderização futurista, conceito, arte digital.
16:9 paisagem 2016x1134 (Imagen 2 v.006)

1408x768 (Imagen 3)
Exemplo de imagem gerada no console
Prompt: fotografia da natureza, uma praia no Havaí com o mar ao fundo, o alargamento das lentes, o pôr do sol.

Console

  1. Siga as instruções em Gerar imagem com texto para abrir o Vertex AI Studio e inserir seu comando de texto.

  2. No painel Parâmetros, selecione uma proporção no menu Proporção.

  3. Clique em Gerar.

REST

A proporção é um campo opcional no objeto parameters do corpo de uma solicitação JSON.

  1. Siga as instruções para gerar imagem com texto para substituir outras variáveis do corpo da solicitação.

  2. Substitua:

    • ASPECT_RATIO: string. Opcional. Um parâmetro do modo de geração que controla a proporção. Valores de proporção aceitos e o uso pretendido:
      • 1:1 (padrão, quadrado)
      • 3:4 (anúncios, mídias sociais)
      • 4:3 (TV, fotografia)
      • 16:9 (paisagem)
      • 9:16 (retrato)
    {
      "instances": [
        ...
      ],
      "parameters": {
        "sampleCount": IMAGE_COUNT,
        "aspectRatio": "ASPECT_RATIO"
      }
    }
    
  3. Siga as instruções para gerar imagem com texto para enviar sua solicitação REST.

Número de resultados

Use o parâmetro de número de resultados para limitar a quantidade de imagens retornadas para cada solicitação (gerar ou editar) enviada.

Console

  1. Siga as instruções em Gerar imagem com texto para abrir o Vertex AI Studio e inserir seu comando de texto.

  2. No painel Parâmetros, selecione um valor inteiro válido no campo Número de resultados.

  3. Clique em Gerar.

REST

Para mais informações sobre solicitações de modelo imagegeneration, consulte a referência da API do modelo imagegeneration.

Número de resultados é um campo no objeto parameters de um corpo de solicitação JSON.

  1. Siga as instruções para gerar imagem com texto para substituir outras variáveis do corpo da solicitação.

  2. Substitua:

    • IMAGE_COUNT: o número de imagens geradas. Valores inteiros aceitos: 1 a 8 (imagegeneration@002), 1 a 4 (todas as outras versões de modelo). Valor padrão: 4.
    {
      "instances": [
        ...
      ],
      "parameters": { 
        "sampleCount": IMAGE_COUNT
      }
    }
    
  3. Siga as instruções para gerar imagem com texto para enviar sua solicitação REST.

Prompt negativo

Um comando negativo é uma descrição do que você quer omitir nas imagens geradas. Por exemplo, considere a solicitação "uma rua chuvosa da cidade à noite sem pessoas". O modelo pode interpretar "pessoas" como uma diretiva do que incluir em vez de omitir. Para gerar resultados melhores, você pode usar o prompt "uma rua de cidade chuvosa à noite" com um prompt negativo "pessoas".

O Imagen gera essas imagens com e sem um prompt negativo:

Somente prompt de texto

  • Prompt de texto: "uma pizza"

três exemplos de imagens de pizza

Solicitação de texto e prompt negativo

  • Prompt de texto: "uma pizza"
  • Prompt negativo: "pepperoni"

três exemplos de imagens de pizza sem pepperoni

Console

  1. Siga as instruções em Gerar imagem com texto para abrir o Vertex AI Studio e inserir seu comando de texto.

  2. No painel Parâmetros, insira um prompt negativo no campo Prompt negativo.

  3. Clique em Gerar.

REST

Para mais informações sobre solicitações de modelo imagegeneration, consulte a referência da API do modelo imagegeneration.

O prompt negativo é um campo opcional no objeto parameters de um corpo de solicitação JSON.

  1. Siga as instruções para gerar imagem com texto para substituir outras variáveis do corpo da solicitação.

  2. Substitua:

    • NEGATIVE_PROMPT: um prompt negativo para ajudar a gerar as imagens. Por exemplo: "animais" (remove animais), "desfocado" (deixa a imagem mais clara), "texto" (remove texto) ou "cortado" (remove imagens cortadas).
    {
      "instances": [
        ...
      ],
      "parameters": {
        "sampleCount": IMAGE_COUNT,
        "negativePrompt": "NEGATIVE_PROMPT"
      }
    }
    
  3. Siga as instruções para gerar imagem com texto para enviar sua solicitação REST.

Número da semente

Um número de semente é aquele que você adiciona a uma solicitação para tornar as imagens geradas determinísticas. Adicionar um número de sugestão com sua solicitação é uma maneira de garantir que você sempre receba as mesmas imagens geradas. Por exemplo, é possível fornecer uma solicitação, definir o número de resultados como 1 e usar um número de sugestão para ter a mesma imagem sempre que usar os mesmos valores de entrada. Se você enviar a mesma solicitação com o número de resultados definido como 8, receberá as mesmas oito imagens. No entanto, as imagens não são retornadas necessariamente na mesma ordem.

Console

  1. Siga as instruções em Gerar imagem com texto para abrir o Vertex AI Studio e inserir seu comando de texto.

  2. No painel Parâmetros, clique na seção expansível Opções avançadas.

  3. No campo Semente, digite um número.

  4. Clique em Gerar.

REST

Para mais informações sobre solicitações de modelo imagegeneration, consulte a referência da API do modelo imagegeneration.

O número original é um campo opcional no objeto parameters do corpo de uma solicitação JSON.

  1. Siga as instruções para gerar imagem com texto para substituir outras variáveis do corpo da solicitação.

  2. Substitua:

    • SEED_NUMBER: número inteiro. Opcional. Qualquer número inteiro não negativo fornecido para tornar as imagens de saída determinísticas. Fornecer o mesmo número de origem sempre resulta nas mesmas imagens de saída. Se o modelo que você está usando for compatível com a marca d'água digital, defina "addWatermark": false para usar esse campo. Valores inteiros aceitos: 1 a 2147483647.
    {
      "instances": [
        ...
      ],
      "parameters": {
        "sampleCount": IMAGE_COUNT,
        "seed": SEED_NUMBER,
        // required for model version 006 and greater only when using a seed number
        "addWatermark": false
      }
    }
    
  3. Siga as instruções para gerar imagem com texto para enviar sua solicitação REST.

Estilo predefinido

O estilo da imagem que você quer gerar. Use esse recurso para criar imagens em estilos conhecidos, como arte digital, aquarela ou cyberpunk.

Console

  1. Siga as instruções em Gerar imagem com texto para abrir o Vertex AI Studio e inserir seu comando de texto.

  2. Na seção Estilo do painel Parâmetros, escolha um estilo no menu.

  3. Clique em Gerar.

REST

Para mais informações sobre solicitações de modelo imagegeneration, consulte a referência da API do modelo imagegeneration.

O estilo predefinido é um campo opcional no objeto parameters de um corpo de solicitação JSON.

  1. Siga as instruções para gerar imagem com texto para substituir outras variáveis do corpo da solicitação.

  2. Substitua:

    • IMAGE_STYLE: um dos estilos predefinidos disponíveis:
      • photograph
      • digital_art
      • landscape
      • sketch
      • watercolor
      • cyberpunk
      • pop_art
    {
      "instances": [
        ...
      ],
      "parameters": {
        "sampleCount": IMAGE_COUNT,
        "sampleImageStyle": "IMAGE_STYLE"
      }
    }
    
  3. Siga as instruções para gerar imagem com texto para enviar sua solicitação REST.

Aumentar a resolução de uma imagem

Use o escalonamento vertical para aumentar o tamanho de imagens existentes, geradas ou editadas sem perder a qualidade.

Console

  1. Siga as instruções para gerar imagem com texto.

  2. Selecione a imagem que você quer aumentar.

  3. Clique em Exportar.

  4. Selecione Fazer upgrade das imagens.

  5. Escolha um valor em Fator de escala.

  6. Clique em Exportar para salvar a imagem ampliada.

REST

Para mais informações sobre solicitações de modelo imagegeneration, consulte a referência da API do modelo imagegeneration.

O modo de escalonamento vertical é um campo opcional no objeto parameters de um corpo de solicitação JSON. Ao refinar uma imagem usando a API, especifique "mode": "upscale" e upscaleConfig.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • LOCATION: a região do seu projeto. Por exemplo, us-central1, europe-west2 ou asia-northeast3. Para uma lista de regiões disponíveis, consulte IA generativa em locais da Vertex AI.
  • PROJECT_ID: o Google Cloud ID do projeto.
  • B64_BASE_IMAGE: a imagem de base que será editada ou aprimorada. A imagem precisa ser especificada como uma string de bytes codificada em base64. Limite de tamanho: 10 MB.
  • IMAGE_SOURCE: o local do Cloud Storage da imagem que você quer editar ou aprimorar. Por exemplo, gs://output-bucket/source-photos/photo.png.
  • UPSCALE_FACTOR: opcional. O fator para o qual a imagem será aumentada. Se não for especificado, o fator de luxo será determinado pelo lado maior da imagem de entrada e sampleImageSize. Valores disponíveis: x2 ou x4.

Método HTTP e URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/imagegeneration@002:predict

Corpo JSON da solicitação:

{
  "instances": [
    {
      "prompt": "",
      "image": {
        // use one of the following to specify the image to upscale
        "bytesBase64Encoded": "B64_BASE_IMAGE"
        "gcsUri": "IMAGE_SOURCE"
        // end of base image input options
      },
    }
  ],
  "parameters": {
    "sampleCount": 1,
    "mode": "upscale",
    "upscaleConfig": {
      "upscaleFactor": "UPSCALE_FACTOR"
    }
  }
}

Para enviar a solicitação, escolha uma destas opções:

curl

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/imagegeneration@002:predict"

PowerShell

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/imagegeneration@002:predict" | Select-Object -Expand Content

Você receberá uma resposta JSON semelhante a esta:

{
  "predictions": [
    {
      "mimeType": "image/png",
      "bytesBase64Encoded": "iVBOR..[base64-encoded-upscaled-image]...YII="
    }
  ]
}

A seguir

Confira artigos sobre o Imagen e outras IAs generativas nos produtos da Vertex AI: