Guia de geração de imagens

Com a tarefa "Gerador de imagens do MediaPipe", você gera imagens com base em um comando de texto. Essa tarefa usa um modelo de texto para imagem para gerar imagens usando técnicas de difusão.

A tarefa aceita um comando de texto como entrada, junto com uma imagem de condição opcional que o modelo pode ampliar e usar como referência para geração. Para saber mais sobre a geração condicionada de texto para imagem, consulte Plug-ins de difusão no dispositivo para geração de texto para imagem condicionada.

O Image Generator também pode gerar imagens com base em conceitos específicos fornecidos ao modelo durante o treinamento ou retreinamento. Para mais informações, consulte Personalizar com LoRA.

Comece já

Comece a usar essa tarefa seguindo um destes guias de implementação para sua plataforma de destino. Estes guias específicos da plataforma orientam você em uma implementação básica dessa tarefa, com exemplos de código que usam um modelo padrão e as opções de configuração recomendadas:

Detalhes da tarefa

Nesta seção, descrevemos os recursos, as entradas, as saídas e as opções de configuração desta tarefa.

Recursos

Use o Gerador de imagens para implementar o seguinte:

  1. Geração de texto para imagem: gere imagens usando um comando de texto.
  2. Geração de imagens com imagens de condição: gere imagens com um prompt de texto e uma imagem de referência. O Image Generator usa imagens de condição de maneira semelhante a ControlNet.
  3. Geração de imagens com pesos da LoRA: gere imagens de pessoas, objetos e estilos específicos com um prompt de texto usando pesos de modelo personalizados.
Entradas de tarefas Saídas de tarefas
O gerador de imagens aceita as seguintes entradas:
  • Comando de texto
  • Financiamento por capital semente
  • Número de iterações generativas
  • Opcional: imagem de condição
O gerador de imagens gera os seguintes resultados:
  • Imagem gerada com base nas entradas.
  • Opcional: snapshots iterativos da imagem gerada.

Opções de configuração

Essa tarefa tem as seguintes opções de configuração:

Nome da opção Descrição Intervalo de valor
imageGeneratorModelDirectory O diretório de modelo do gerador de imagens que armazena os pesos do modelo. PATH
loraWeightsFilePath Define o caminho para o arquivo de pesos do LoRA. Opcional e aplicável somente se o modelo tiver sido personalizado com a LoRA. PATH
errorListener Define um listener de erro opcional. N/A

A tarefa também oferece suporte a modelos de plug-in, o que permite que os usuários incluam imagens de condição na entrada da tarefa, que o modelo de fundação pode ampliar e usar como referência para geração. Essas imagens de condição podem ser pontos de referência de rostos, contornos de bordas e estimativas de profundidade, que o modelo usa como contexto e informações adicionais para gerar imagens.

Ao adicionar um modelo de plug-in ao modelo de base, configure também as opções do plug-in. O plug-in do ponto de referência do rosto usa faceConditionOptions, o plug-in Canny Edge usa edgeConditionOptions e o plug-in Depth usa depthConditionOptions.

Opções do Canny Edge

Configure as seguintes opções em edgeConditionOptions.

Nome da opção Descrição Intervalo de valor Valor padrão
threshold1 Primeiro limite do procedimento de história. Float 100
threshold2 Segundo limite do procedimento de história. Float 200
apertureSize Tamanho da abertura do operador Sobel. O intervalo típico é de 3 a 7. Integer 3
l2Gradient Define se a norma L2 é usada para calcular a magnitude do gradiente da imagem em vez da norma L1 padrão. BOOLEAN False
EdgePluginModelBaseOptions O objeto BaseOptions que define o caminho para o modelo do plug-in. Objeto BaseOptions N/A

Para mais informações sobre como essas opções de configuração funcionam, consulte Detector de borda Canny.

Opções de ponto de referência do rosto

Configure as seguintes opções em faceConditionOptions.

Nome da opção Descrição Intervalo de valor Valor padrão
minFaceDetectionConfidence A pontuação de confiança mínima para que a detecção facial seja considerada bem-sucedida. Float [0.0,1.0] 0.5
minFacePresenceConfidence A pontuação de confiança mínima da pontuação de presença facial na detecção de pontos de referência de rostos. Float [0.0,1.0] 0.5
faceModelBaseOptions O objeto BaseOptions que define o caminho para o modelo que cria a imagem de condição. Objeto BaseOptions N/A
FacePluginModelBaseOptions O objeto BaseOptions que define o caminho para o modelo do plug-in. Objeto BaseOptions N/A

Para mais informações sobre como essas opções de configuração funcionam, consulte a tarefa do Face Markdown.

Opções de profundidade

Configure as seguintes opções em depthConditionOptions.

Nome da opção Descrição Intervalo de valor Valor padrão
depthModelBaseOptions O objeto BaseOptions que define o caminho para o modelo que cria a imagem de condição. Objeto BaseOptions N/A
depthPluginModelBaseOptions O objeto BaseOptions que define o caminho para o modelo do plug-in. Objeto BaseOptions N/A

Modelos

O gerador de imagens exige um modelo de fundação, que é um modelo de IA de texto para imagem que usa técnicas de difusão para gerar novas imagens. Os modelos de fundação listados nesta seção são modelos leves otimizados para execução em smartphones de última geração.

Os modelos de plug-in são opcionais e complementam os modelos básicos, permitindo que os usuários forneçam uma imagem de condição adicional com um comando de texto para gerar imagens mais específicas. Personalizar os modelos de fundação usando pesos LoRA é uma opção que ensina o modelo de fundação sobre um conceito específico, como objeto, pessoa ou estilo, e os injeta em imagens geradas.

Modelos de fundação

Os modelos de fundação são modelos latentes de difusão de texto para imagem que geram imagens a partir de um prompt de texto. O gerador de imagens exige que o modelo de fundação corresponda ao formato runwayml/stable-diffusion-v1-5 EMA-only, com base no modelo a seguir:

Os seguintes modelos de fundação também são compatíveis com o Gerador de imagens:

Depois de fazer o download de um modelo de fundação, use o image_generator_converter para converter o modelo no formato adequado no dispositivo para o Gerador de imagens.

Instale as dependências necessárias:

$ pip install torch typing_extensions numpy Pillow requests pytorch_lightning absl-py

Execute o script convert.py:

$ python3 convert.py --ckpt_path <ckpt_path> --output_path <output_path>

Modelos de plug-in

Os modelos de plug-in desta seção são desenvolvidos pelo Google e precisam ser usados em combinação com um modelo de fundação. Os modelos de plug-in permitem que o Image Generator aceite uma imagem de condição com um comando de texto como entrada, o que permite controlar a estrutura das imagens geradas. Os modelos de plug-in fornecem recursos semelhantes ao ControlNet, com uma nova arquitetura especificamente para difusão no dispositivo.

Os modelos de plug-in precisam ser especificados nas opções básicas e podem exigir o download de outros arquivos de modelo. Cada plug-in tem requisitos exclusivos para a imagem de condição, que podem ser geradas pelo gerador de imagens.

Plug-in Canny Edge

O plug-in Canny Edge aceita uma imagem de condição que descreve as bordas pretendidas da imagem gerada. O modelo de fundação usa as bordas implícitas na imagem de condição e gera uma nova imagem com base no comando de texto. O gerador de imagens contém recursos integrados para criar imagens de condição e exige apenas o download do modelo de plug-in.

Faça o download do plug-in Canny Edge

O plug-in Canny Edge contém as seguintes opções de configuração:

Nome da opção Descrição Intervalo de valor Valor padrão
threshold1 Primeiro limite do procedimento de história. Float 100
threshold2 Segundo limite do procedimento de história. Float 200
apertureSize Tamanho da abertura do operador Sobel. O intervalo típico é de 3 a 7. Integer 3
l2Gradient Define se a norma L2 é usada para calcular a magnitude do gradiente da imagem em vez da norma L1 padrão. BOOLEAN False
EdgePluginModelBaseOptions O objeto BaseOptions que define o caminho para o modelo do plug-in. Objeto BaseOptions N/A

Para mais informações sobre como essas opções de configuração funcionam, consulte Detector de borda Canny.

Plug-in de ponto de referência do rosto

O plug-in do ponto de referência do rosto aceita a saída do marcador de lugar do MediaPipe como a imagem de condição. Ele oferece uma malha detalhada de rostos para um único rosto, que mapeia a presença e a localização de características faciais. O modelo de base usa o mapeamento facial implícito pela imagem da condição e gera um novo rosto sobre a malha.

Faça o download do plug-in de ponto de referência do rosto

O plug-in de ponto de referência de rosto também exige o pacote de modelos do Ponto de referência do rosto para criar a imagem de condição. Esse pacote de modelo é o mesmo usado pela tarefa Face Markdowner.

Faça o download do pacote de modelos de ponto de referência do rosto

O plug-in do ponto de referência do rosto contém as seguintes opções de configuração:

Nome da opção Descrição Intervalo de valor Valor padrão
minFaceDetectionConfidence A pontuação de confiança mínima para que a detecção facial seja considerada bem-sucedida. Float [0.0,1.0] 0.5
minFacePresenceConfidence A pontuação de confiança mínima da pontuação de presença facial na detecção de pontos de referência de rostos. Float [0.0,1.0] 0.5
faceModelBaseOptions O objeto BaseOptions que define o caminho para o modelo que cria a imagem de condição. Objeto BaseOptions N/A
FacePluginModelBaseOptions O objeto BaseOptions que define o caminho para o modelo do plug-in. Objeto BaseOptions N/A

Para mais informações sobre como essas opções de configuração funcionam, consulte a tarefa do Face Markdown.

Plug-in Depth

O plug-in Depth aceita uma imagem de condição que especifica a profundidade monocular de um objeto. O modelo de fundação usa a imagem de condição para inferir o tamanho e a profundidade do objeto a ser gerado e gera uma nova imagem com base no prompt de texto.

Fazer o download do plug-in Depth

O plug-in Depth também exige um modelo de estimativa de profundidade para criar a imagem de condição.

Faça o download do modelo de estimativa de profundidade

O plug-in Depth contém as seguintes opções de configuração:

Nome da opção Descrição Intervalo de valor Valor padrão
depthModelBaseOptions O objeto BaseOptions que define o caminho para o modelo que cria a imagem de condição. Objeto BaseOptions N/A
depthPluginModelBaseOptions O objeto BaseOptions que define o caminho para o modelo do plug-in. Objeto BaseOptions N/A

Personalização com a LoRA

A personalização de um modelo com o LoRA pode permitir que o gerador de imagens gere imagens com base em conceitos específicos, que são identificados por tokens exclusivos durante o treinamento. Com os novos pesos da LoRA após o treinamento, o modelo pode gerar imagens do novo conceito quando o token é especificado no comando de texto.

A criação de pesos da LoRA requer o treinamento de um modelo de fundação usando imagens de um objeto, pessoa ou estilo específico, o que permite que o modelo reconheça o novo conceito e o aplique ao gerar imagens. Se você estiver criando pesos LoRa para gerar imagens de pessoas e rostos específicos, use essa solução apenas no seu rosto ou em rostos de pessoas que lhe deram permissão para fazer isso.

Veja abaixo a saída de um modelo personalizado treinado em imagens de chaleiras do conjunto de dados do Dream Booth, usando o token "monadikos teapot":

Prompt: um bule monadikos ao lado de um espelho

O modelo personalizado recebeu o token no comando e injetou um bule que aprendeu a retratar com base nos pesos da LoRA e colocou a imagem ao lado de um espelho, conforme solicitado no comando.

LoRA com Vertex AI

Para mais informações, consulte o guia de personalização, que usa o Model Garden na Vertex AI para personalizar um modelo aplicando pesos LoRA a um modelo de fundação.