Com a personalização controlada, é possível criar novas imagens com base em uma imagem de origem ou em um sinal de imagem de origem (borda nítida ou rabiscada). Nesta página, mostramos como enviar dois tipos de solicitações de personalização controlada:
Personalização controlada do Imagen 3 (recurso GA)
Personalização controlada do Imagen 2: sinal de imagem de origem de borda nítida ou rabiscada (recurso em fase de pré-lançamento)
Os seguintes modelos são compatíveis com a personalização controlada:
Casos de uso
A personalização controlada do Imagen 3 oferece comandos de estilo livre, o que pode dar a impressão de que o modelo pode fazer mais do que foi treinado para fazer. As seções a seguir descrevem casos de uso e exemplos da personalização controlada do Imagen 3.
O modelo foi treinado em casos de uso que fornecemos, e esperamos bons resultados quando você usa a personalização controlada do Imagen 3. Se você pressionar o modelo para responder de maneiras inesperadas, não espere bons resultados.
Exemplos de casos de uso pretendidos
Confira a seguir casos de uso em que a personalização controlada do Imagen 3 foi treinada para atuar e gera bons resultados:
Gere uma imagem que siga o comando e as imagens de controle de borda canny.
Gere uma imagem que siga o comando e os rabiscos.
Estilize uma foto de uma pessoa preservando a expressão facial.
Exemplos de casos de uso não intencionais
Confira a seguir casos de uso para os quais a personalização controlada do Imagen 3 não foi treinada e produz resultados ruins:
Gere uma imagem usando um estilo especificado no comando.
Gere uma imagem com base em um texto que segue um estilo específico fornecido por uma imagem de referência, com algum nível de controle na composição da imagem usando uma imagem de controle.
Gere uma imagem com base em um texto que segue um estilo específico fornecido por uma imagem de referência, com algum nível de controle na composição da imagem usando um rabisco de controle.
Gere uma imagem com base em texto que siga um estilo específico fornecido pela imagem de referência, com algum nível de controle na composição da imagem usando uma imagem de controle. A pessoa na imagem tem uma expressão facial específica.
Estilize uma foto de duas ou mais pessoas e preserve as expressões faciais delas.
Estilize uma foto de um animal de estimação e transforme em um desenho. Preserve ou especifique a composição da imagem (por exemplo, aquarela).
Antes de começar
- Faça login na sua conta do Google Cloud . Se você começou a usar o Google Cloud, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Vertex AI API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Vertex AI API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Configure a autenticação do ambiente.
Selecione a guia para como planeja usar as amostras nesta página:
Console
Quando você usa o console Google Cloud para acessar serviços Google Cloud e APIs, não é necessário configurar a autenticação.
REST
Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para CLI gcloud.
Instale a CLI do Google Cloud.
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.
Saiba mais em Autenticar para usar REST na documentação de autenticação do Google Cloud .
Como escrever comandos de personalização
O comando usado com a personalização do Imagen 3 pode afetar a qualidade das imagens geradas. Use os modelos de comando a seguir como ponto de partida para escrever comandos de personalização. Talvez seja necessário enviar várias solicitações para receber a saída desejada.
| Caso de uso | Imagens de referência | Modelo de comando | Exemplo |
|---|---|---|---|
| Personalização controlada | Mapa de rabisco (1) | Gere uma imagem que esteja alinhada com o scribble map [1] para corresponder à descrição: ${STYLE_PROMPT} ${PROMPT}. | Gere uma imagem que esteja alinhada com o scribble map [1] para corresponder à descrição: A imagem precisa estar no estilo de uma pintura a óleo impressionista com pinceladas suaves. Ela tem um ambiente naturalmente iluminado e pinceladas visíveis. Um carro visto de lado. O carro está estacionado em uma superfície de estrada molhada e reflexiva, com luzes da cidade refletindo nas poças. |
| Personalização controlada | Imagem de controle Canny (1) | Gere uma imagem alinhada ao edge map [1] para corresponder à descrição: ${STYLE_PROMPT} ${PROMPT} | Gere uma imagem alinhada ao edge map [1] para corresponder à descrição: A imagem precisa ser no estilo de uma pintura a óleo impressionista, com pinceladas suaves. Ela tem um ambiente naturalmente iluminado e pinceladas visíveis. Um carro visto de lado. O carro está estacionado em uma superfície de estrada molhada e reflexiva, com luzes da cidade refletindo nas poças. |
| Estilização de imagem de pessoa com entrada FaceMesh |
Imagem do assunto (1 a 3) Imagem de controle do FaceMesh (1) |
Crie uma imagem sobre SUBJECT_DESCRIPTION [1] na pose de CONTROL_IMAGE [2] para corresponder à descrição: um retrato de SUBJECT_DESCRIPTION [1] ${PROMPT} | Crie uma imagem sobre a woman with short hair [1] na pose de control image [2] para corresponder à descrição: um retrato de a woman with short hair [1] em estilo de desenho animado 3D com um plano de fundo desfocado. Um personagem fofo e adorável, com um rosto sorridente, de frente para a câmera, tom de cor pastel, alta qualidade, 4k, obra-prima, super detalhes, textura da pele, mapeamento de textura, sombras suaves, iluminação realista suave, cores vibrantes |
| Estilização de imagem de pessoa com entrada FaceMesh |
Imagem do assunto (1 a 3) Imagem de controle do FaceMesh (1) |
Crie uma imagem ${STYLE_PROMPT} sobre SUBJECT_DESCRIPTION [1] na pose de CONTROL_IMAGE [2] para corresponder à descrição: um retrato de SUBJECT_DESCRIPTION [1] ${PROMPT} | Crie uma imagem no estilo desenho animado 3D sobre a woman with short hair [1] na pose de control image [2] para corresponder à descrição: um retrato de a woman with short hair [1] no estilo desenho animado 3D com um plano de fundo desfocado. Um personagem fofo e adorável com um rosto sorridente, de frente para a câmera, tom de cor pastel, alta qualidade, 4k, obra-prima, super detalhes, textura da pele, mapeamento de textura, sombras suaves, iluminação suave e realista, cores vibrantes |
Enviar uma solicitação de personalização controlada da Imagen 3
Use os exemplos a seguir para enviar uma solicitação de personalização controlada do Imagen 3:
REST
Para mais informações sobre a API Imagen, consulte:
- Método:
endpoints.predict VisionGenerativeModelInstanceVisionGenerativeModelParamsVisionGenerativeModelResult
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto do Google Cloud .
- LOCATION: a região do seu projeto. Por exemplo,
us-central1,europe-west2ouasia-northeast3. Para uma lista de regiões disponíveis, consulte IA generativa em locais da Vertex AI. Quando um endpoint de API regional é usado, a região do URL do endpoint determina onde a solicitação é processada, e esseLOCATIONno caminho do recurso é ignorado se houver conflito. - TEXT_PROMPT: o prompt de texto fornece orientações sobre quais imagens o modelo gera. Para usar a personalização controlada do Imagen 3, inclua o
referenceIdda imagem de referência de controle que você fornece no formato [$referenceId]. Por exemplo:- Gere uma imagem alinhada ao mapa de rabiscos [1] para corresponder à descrição: [image description].
- BASE64_CONTROL_IMAGE: a imagem de controle de base (esboço). A imagem precisa ser especificada como uma string de bytes codificada em base64.
ParaCONTROL_TYPE_SCRIBBLE: a imagem de controle de rabisco esperada tem fundo preto e linha de rabisco branca.
ParaCONTROL_TYPE_CANNY: a imagem de controle de borda nítida esperada tem fundo preto e bordas nítidas brancas.
- CONTROL_TYPE: o tipo do sinal de controle. Use
CONTROL_TYPE_CANNYpara a borda de Canny. UseCONTROL_TYPE_SCRIBBLEpara rabiscar. enableControlImageComputation: defina comofalsese você fornecer sua própria imagem de controle. Nesse caso,B64_BASE_IMAGEprecisa ser a imagem do sinal de controle. Defina comotruese quiser que o Imagen calcule a imagem de controle com base na imagem de referência. Nesse caso,B64_BASE_IMAGEprecisa ser a imagem RGB bruta.- IMAGE_COUNT: o número de imagens geradas. Valores inteiros aceitos: 1 a 4. Valor padrão: 4.
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/imagen-3.0-capability-001:predict
Corpo JSON da solicitação:
{
"instances": [
{
"prompt": "TEXT_PROMPT",
"referenceImages": [
{
"referenceType": "REFERENCE_TYPE_CONTROL",
"referenceId": 1,
"referenceImage": {
"bytesBase64Encoded": "BASE64_CONTROL_IMAGE"
},
"controlImageConfig": {
"controlType": "CONTROL_TYPE",
"enableControlImageComputation": false
}
}
]
}
],
"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 abaixo:
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/imagen-3.0-capability-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/imagen-3.0-capability-001:predict" | Select-Object -Expand Content
"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"
}
]
}
Python
Rabisque
Borda Canny
Enviar uma solicitação de personalização controlada do Imagen 2
| Imagem de entrada | Outros parâmetros | Imagem de saída |
|---|---|---|
|
Comando: "versão de arte digital" Comando negativo: "preto e branco" Tipo de imagem de guia: RGB padrão Condição de controle: borda nítida Escala de controle do Imagen: 0,95 |
|
(detecção de borda nítida aplicada). |
Comando: "versão de arte digital" Comando negativo: "preto e branco" Tipo de imagem de guia: borda nítida Escala de controle do Imagen: 0,95 |
|
Use os exemplos a seguir para enviar uma solicitação de personalização controlada do Imagen 2:
REST
Para mais informações sobre a API Imagen, consulte:
- Método:
endpoints.predict VisionGenerativeModelInstanceVisionGenerativeModelParamsVisionGenerativeModelResult
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto do Google Cloud .
- TEXT_PROMPT: o comando de texto que orienta quais imagens o modelo gera. Este campo é obrigatório para geração e edição.
- 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.
- EDIT_IMAGE_COUNT: o número de imagens editadas. Valor padrão: 4.
- 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).
-
CONDITION:
string. É o tipo de sinal de imagem de controle fornecido. Valores:cannyEdgesouscribble. -
CONTROL_SCALE:
float. A intensidade do sinal da imagem de controle. Valores:0.0-1.0. Valor padrão:0.95. Faixa recomendada:0.9-1.0. -
SAMPLING_STEPS:
integer. O número de etapas de amostragem. Valores:1-30. Padrão:16. -
COMPUTE_CONDITION_MAP:
boolean. Define se um mapa de condição será computado de acordo com a imagem de entrada base. Quando definido comofalse, o serviço espera que a imagem de entrada seja um rabisco ou tenha bordas nítidas, e a imagem é fornecida diretamente ao modelo. Quando definido comotrue, o serviço espera que a imagem de entrada seja RGB e calcula informações de borda nítida ou rabiscos da imagem de entrada com base emconditionName. Em seguida, o serviço fornece o mapa de condição processado ao modelo para edição da imagem. Quando você fornece imagens de rabisco, elas precisam ter um fundo preto e linhas brancas que representem o objeto a ser gerado. Padrão:false.
Método HTTP e URL:
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/imagen-2.0-edit-preview-0627:predict
Corpo JSON da solicitação:
{
"instances": [
{
"prompt": "TEXT_PROMPT",
"image": {
"bytesBase64Encoded": "B64_BASE_IMAGE"
}
}
],
"parameters": {
"sampleCount": EDIT_IMAGE_COUNT,
"negativePrompt": "NEGATIVE_PROMPT",
"controlPluginConfig": {
"conditions": [
{
"conditionName": "CONDITION",
"controlScale": CONTROL_SCALE,
"samplingSteps": SAMPLING_STEPS,
"computeConditionMap": COMPUTE_CONDITION_MAP
}
]
}
}
}
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 abaixo:
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/imagen-2.0-edit-preview-0627: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/imagen-2.0-edit-preview-0627:predict" | Select-Object -Expand Content
"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"
}
]
}
Uso do produto
Para ver os padrões de uso e as restrições de conteúdo associados ao Imagen na Vertex AI, consulte as diretrizes de uso.
Versões do modelo
Há vários modelos de geração de imagens que podem ser usados. Para mais informações, consulte Modelos do Imagen.
A seguir
Confira artigos sobre o Imagen e outras IAs generativas nos produtos da Vertex AI:
- Guia para desenvolvedores sobre como começar a usar o Imagen 3 na Vertex AI
- Novos modelos e ferramentas de mídia generativa criados com criadores para criadores
- Novidades no Gemini: Gems personalizados e geração de imagens aprimorada com o Imagen 3
- Google DeepMind: Imagen 3 — Nosso modelo de qualidade mais alta para conversão de texto em imagem