A tarefa MediaPipe Image Generator permite gerar 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, além de uma imagem de condição opcional que o modelo pode aumentar e usar como referência para geração. Para mais informações sobre a geração de texto para imagem condicionada, consulte Plug-ins de difusão no dispositivo para geração de texto para imagem condicionada.
O Gerador de imagens também pode criar imagens com base em conceitos específicos fornecidos ao modelo durante o treinamento ou o retreinamento. Para mais informações, consulte personalizar com LoRA.
Começar
Comece a usar essa tarefa seguindo um destes guias de implementação para sua plataforma de destino. Esses guias específicos da plataforma mostram 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 dessa tarefa.
Recursos
Você pode usar o Gerador de imagens para implementar o seguinte:
- Geração de imagens com base em texto: gere imagens com um comando de texto.
- Geração de imagens com imagens condicionais: 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 ponderações LoRA: gere imagens de pessoas, objetos e estilos específicos com um comando de texto usando ponderações de modelo personalizadas.
Entradas da tarefa | Saídas da tarefa |
---|---|
O Gerador de imagens aceita as seguintes entradas:
|
O Gerador de imagens retorna os seguintes resultados:
|
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 do modelo de gerador de imagens que armazena os pesos do modelo. | PATH |
loraWeightsFilePath |
Define o caminho para o arquivo de pesos LoRA. Opcional e aplicável apenas se o modelo foi personalizado com LoRA. | PATH |
errorListener |
Define um listener de erros opcional. | N/A |
A tarefa também é compatível com modelos de plug-in, o que permite 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 faciais, contornos de borda 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 fundação, também configure as opções do plug-in. O plug-in de pontos de referência faciais usa faceConditionOptions
, o plug-in de borda de 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 de Sobel. O intervalo típico é entre 3 e 7. | Integer |
3 |
l2Gradient |
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 de plug-in. |
Objeto BaseOptions |
N/A |
Para mais informações sobre como essas opções de configuração funcionam, consulte Detector de bordas de 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 mínima de confiança da presença de rosto na detecção de pontos de referência faciais. | 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 de plug-in. |
Objeto BaseOptions |
N/A |
Para mais informações sobre como essas opções de configuração funcionam, consulte a tarefa de identificador de pontos de referência faciais.
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 de 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 leves e otimizados para execução em smartphones de ponta.
Os modelos de plug-in são opcionais e complementam os modelos de base, permitindo que os usuários forneçam uma imagem de condição adicional junto com um comando de texto para uma geração de imagens mais específica. Personalizar os modelos de fundação usando pesos LoRA é uma opção que ensina o modelo sobre um conceito específico, como um objeto, uma pessoa ou um estilo, e os injeta nas imagens geradas.
Modelos de fundação
Os modelos de base são modelos de difusão de texto latente para imagem que geram imagens com base em um comando de texto. O Gerador de imagens exige que o modelo de fundação corresponda ao formato do modelo stable-diffusion-v1-5/stable-diffusion-v1-5 EMA-only
, com base no seguinte modelo:
Os seguintes modelos de fundação também são compatíveis com o Gerador de imagens:
Depois de baixar um modelo de fundação, use o image_generator_converter para converter o modelo no formato adequado para o dispositivo do 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 foram desenvolvidos pelo Google e precisam ser usados em combinação com um modelo de base. Os modelos de plug-in permitem que o Gerador de imagens aceite uma imagem de condição e 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 inovadora 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 arquivos de modelo adicionais. Cada plug-in tem requisitos exclusivos para a imagem de condição, que pode ser gerada 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 base usa as bordas implícitas da imagem de condição e gera uma nova imagem com base no comando de texto. O gerador de imagens tem recursos integrados para criar imagens condicionais e só exige o download do modelo de plug-in.
Fazer 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 para o procedimento de histerese. | Float |
100 |
threshold2 |
Segundo limite para o procedimento de histerese. | Float |
200 |
apertureSize |
Tamanho da abertura para o operador de Sobel. O intervalo típico é entre 3 e 7. | Integer |
3 |
l2Gradient |
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 de plug-in. |
Objeto BaseOptions |
N/A |
Para mais informações sobre como essas opções de configuração funcionam, consulte Detector de bordas de Canny.
Plug-in de pontos de referência faciais
O plug-in Face Landmark aceita a saída do Face Landmarker do MediaPipe como a imagem de condição. O Face Landmarker fornece uma malha facial detalhada de um único rosto, que mapeia a presença e a localização de traços faciais. O modelo de base usa o mapeamento facial implícito pela imagem de condição e gera um novo rosto sobre a malha.
Fazer o download do plug-in de pontos de referência faciais
O plug-in de pontos de referência faciais também exige o pacote de modelos 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 pontos de referência faciais
O plug-in Face Landmark 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 mínima de confiança da presença de rosto na detecção de pontos de referência faciais. | 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 de plug-in. |
Objeto BaseOptions |
N/A |
Para mais informações sobre como essas opções de configuração funcionam, consulte a tarefa de identificador de pontos de referência faciais.
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 cria uma nova imagem com base no comando 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.
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 de plug-in. |
Objeto BaseOptions |
N/A |
Personalização com LoRA
Ao personalizar um modelo com LoRA, o Gerador de imagens pode criar imagens com base em conceitos específicos, que são identificados por tokens exclusivos durante o treinamento. Com os novos pesos de LoRA após o treinamento, o modelo consegue gerar imagens do novo conceito quando o token é especificado no comando de texto.
Para criar pesos LoRA, é necessário treinar um modelo de base com imagens de um objeto, pessoa ou estilo específico. Assim, o modelo consegue reconhecer o novo conceito e aplicá-lo 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 nos rostos de pessoas que deram permissão para isso.
Confira abaixo a saída de um modelo personalizado treinado com imagens de bules de chá do conjunto de dados DreamBooth, usando o token "monadikos teapot":
Comando: um bule monadikos ao lado de um espelho
O modelo personalizado recebeu o token no comando e injetou um bule de chá que aprendeu a representar com base nos pesos LoRA, colocando-o na imagem 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 fundação.