A tarefa do MediaPipe Image Generator permite gerar imagens com base em um comando de texto. Esta 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 aumentar e usar como referência para geração. Para saber mais sobre a geração de texto para imagem condicionada, consulte Plugins de difusão no dispositivo para geração de texto para imagem condicionada.
O Gerador de imagens também pode gerar imagens com base em conceitos específicos fornecidos ao modelo durante o treinamento ou o reenvio. Para mais informações, consulte Personalizar com LoRa.
Começar
Para começar a usar essa tarefa, siga um destes guias de implementação para sua plataforma de destino. Estes guias específicos para plataformas 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:
- Android: exemplo de código - guia
- Personalizar com LoRA: exemplo de código - Colab
Detalhes da tarefa
Esta seção descreve os recursos, entradas, saídas e opções de configuração desta tarefa.
Recursos
Você pode usar o Gerador de imagens para implementar o seguinte:
- Conversão de texto em imagem: gere imagens com um comando de texto.
- Geração de imagens com imagens de condição: gere imagens com um comando de texto e uma imagem de referência. O Gerador de imagens usa imagens de condição de maneira semelhante ao ControlNet.
- Geração de imagens com pesos de LoRA: gere imagens de pessoas, objetos e estilos específicos com uma solicitação de texto usando pesos de modelo personalizados.
Entradas da tarefa | Saídas de tarefas |
---|---|
O Gerador de imagens aceita as seguintes entradas:
|
O Gerador de imagens gera os seguintes resultados:
|
Opções de configuração
Esta tarefa tem as seguintes opções de configuração:
Nome da opção | Descrição | Intervalo de valor |
---|---|---|
imageGeneratorModelDirectory |
O diretório do modelo do gerador de imagens que armazena os pesos do modelo. | PATH |
loraWeightsFilePath |
Define o caminho para o arquivo de pesos da LoRA. Opcional e aplicável apenas se o modelo foi personalizado com LoRA. | PATH |
errorListener |
Define um listener de erro opcional. | N/A |
A tarefa também oferece suporte a modelos de plug-in, que permitem que os usuários incluam imagens de condição na entrada da tarefa, que o modelo de base pode aumentar e usar como referência para geração. Essas imagens de condição podem ser pontos de referência do rosto, 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 de marco de rosto usa faceConditionOptions
, o plug-in de borda
Canny usa edgeConditionOptions
e o plug-in de profundidade usa
depthConditionOptions
.
Opções de borda do Canny
Configure as seguintes opções em edgeConditionOptions
.
Nome da opção | Descrição | Intervalo de valor | Valor padrão |
---|---|---|---|
threshold1 |
Primeiro limite para o procedimento de histerese. | Float |
100 |
threshold2 |
Segundo limite para o procedimento de histerese. | Float |
200 |
apertureSize |
Tamanho da abertura para o operador Sobel. O intervalo típico é de 3 a 7. | Integer |
3 |
l2Gradient |
Indica se a norma L2 é usada para calcular a magnitude do gradiente de 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 bordas Canny.
Opções de pontos 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 de rosto 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 de rosto na detecção de pontos de referência do rosto. | 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 Face Landmarker.
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 base, que é um modelo de IA de texto para imagem que usa técnicas de difusão para gerar novas imagens. Os modelos de base 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. A personalização dos modelos de base usando pesos LoRA é uma opção que ensina o modelo de base sobre um conceito específico, como um objeto, pessoa ou estilo, e os injeta nas imagens geradas.
Modelos de fundação
Os modelos de base são modelos de difusão latente de texto para imagem que geram
imagens a partir de um comando de texto. O Gerador de imagens exige que o modelo de base
corresponda ao formato do modelo runwayml/stable-diffusion-v1-5 EMA-only
, com base no
seguinte modelo:
Os seguintes modelos de base também são compatíveis com o Gerador de imagens:
Depois de fazer o download de um modelo de base, 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 nesta seção são desenvolvidos pelo Google e precisam ser usados em combinação com um modelo de base. 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 oferecem recursos semelhantes ao ControlNet, com uma arquitetura nova especificamente para difusão no dispositivo.
Os modelos do 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 pode ser gerada pelo Gerador de imagens.
Plug-in do Canny Edge
O plug-in Canny Edge aceita uma imagem de condição que descreve as bordas pretendidas da imagem gerada. O modelo de base usa as bordas implícitas pela 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 do plug-in.
Fazer o download do plug-in do Canny Edge
O plug-in do 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 para o procedimento de histerese. | Float |
100 |
threshold2 |
Segundo limite para o procedimento de histerese. | Float |
200 |
apertureSize |
Tamanho da abertura para o operador Sobel. O intervalo típico é de 3 a 7. | Integer |
3 |
l2Gradient |
Indica se a norma L2 é usada para calcular a magnitude do gradiente de 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 bordas Canny.
Plug-in de ponto de referência do rosto
O plug-in de ponto de referência do rosto aceita a saída do Face Landmarker do MediaPipe como a imagem de condição. O ponto de referência do rosto fornece uma malha detalhada de um único rosto, que mapeia a presença e a localização dos traços faciais. O modelo de base usa o mapeamento facial sugerido pela imagem da condição e gera um novo rosto sobre a malha.
Fazer o download do plug-in de ponto de referência facial
O plug-in de ponto de referência do rosto também exige o pacote de modelo do Face Landmarker para criar a imagem de condição. Esse pacote de modelo é o mesmo usado pela tarefa Face Landmarker.
Fazer o download do pacote de modelos de elementos faciais
O plug-in de marco facial 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 de rosto 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 de rosto na detecção de pontos de referência do rosto. | 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 Face Landmarker.
Plug-in de profundidade
O plug-in de profundidade aceita uma imagem de condição que especifica a profundidade monocular de um objeto. O modelo de base 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 comando de texto.
Plug-in de profundidade de download
O plug-in de profundidade também requer um modelo de estimativa de profundidade para criar a imagem de condição.
Fazer 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 LoRA
A personalização de um modelo com 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 de LoRA exige o treinamento de um modelo de base em 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 de LoRa para gerar imagens de pessoas e rostos específicos, use essa solução apenas no seu rosto ou no rosto de pessoas que deram permissão para isso.
Confira abaixo a saída de um modelo personalizado treinado com imagens de chaleiras do conjunto de dados do DreamBooth, usando o token "monadikos teapot":
Instrução: uma chaleira monadikos ao lado de um espelho
O modelo personalizado recebeu o token no comando e injetou uma chaleira que ele aprendeu a representar com base nos pesos da LoRA e a colocou ao lado de um espelho, conforme solicitado no comando.
Para mais informações, consulte o guia de personalização, que usa o Model Garden na Vertex AI para personalizar um modelo aplicando pesos de LoRA a um modelo de base.