La tarea MediaPipe Image Generator te permite generar imágenes basadas en una instrucción de texto. Esta tarea usa un modelo de texto a imagen para generar imágenes con técnicas de difusión.
La tarea acepta una instrucción de texto como entrada, junto con una imagen de condición opcional que el modelo puede aumentar y usar como referencia para la generación. Para obtener más información sobre la generación de texto a imagen condicionada, consulta Complementos de difusión en el dispositivo para la generación de texto a imagen condicionada.
Image Generator también puede generar imágenes basadas en conceptos específicos que se proporcionan al modelo durante el entrenamiento o el reentrenamiento. Para obtener más información, consulta Personaliza con LoRA.
Comenzar
Para comenzar a usar esta tarea, sigue una de estas guías de implementación para tu plataforma de destino. Estas guías específicas de la plataforma te guían a través de una implementación básica de esta tarea, con ejemplos de código que usan un modelo predeterminado y las opciones de configuración recomendadas:
- Android : Ejemplo de código : Guía
- Personaliza con LoRA : Ejemplo de código : Colab
Detalles de la tarea
En esta sección, se describen las capacidades, las entradas, las salidas y las opciones de configuración de esta tarea.
Funciones
Puedes usar Image Generator para implementar lo siguiente:
- Generación de texto a imagen : Genera imágenes con una instrucción de texto.
- Generación de imágenes con imágenes de condición : Genera imágenes con una instrucción de texto y una imagen de referencia. Image Generator usa imágenes de condición de formas similares a ControlNet.
- Generación de imágenes con pesos de LoRA : Genera imágenes de personas, objetos y estilos específicos con una instrucción de texto usando pesos de modelo personalizados.
| Entradas de la tarea | Salidas de la tarea |
|---|---|
Image Generator acepta las siguientes entradas:
|
Image Generator genera los siguientes resultados:
|
Opciones de configuración
Esta tarea tiene las siguientes opciones de configuración:
| Nombre de la opción | Descripción | Rango de valores |
|---|---|---|
imageGeneratorModelDirectory |
El directorio del modelo de generador de imágenes que almacena los pesos del modelo | PATH |
loraWeightsFilePath |
Establece la ruta de acceso al archivo de pesos de LoRA. Es opcional y solo se aplica si el modelo se personalizó con LoRA. | PATH |
errorListener |
Establece un objeto de escucha de errores opcional. | N/A |
La tarea también admite modelos de complementos, lo que permite a los usuarios incluir imágenes de condición en la entrada de la tarea, que el modelo de base puede aumentar y usar como referencia para la generación. Estas imágenes de condición pueden ser puntos de referencia faciales, contornos de bordes y estimaciones de profundidad, que el modelo usa como contexto e información adicionales para generar imágenes.
Cuando agregues un modelo de complemento al modelo de base, también configura las opciones del complemento. El complemento de puntos de referencia faciales usa faceConditionOptions, el complemento de bordes de Canny usa edgeConditionOptions y el complemento de profundidad usa depthConditionOptions.
Opciones de bordes de Canny
Configura las siguientes opciones en edgeConditionOptions.
| Nombre de la opción | Descripción | Rango de valores | Valor predeterminado |
|---|---|---|---|
threshold1 |
Primer umbral para el procedimiento de histéresis | Float |
100 |
threshold2 |
Segundo umbral para el procedimiento de histéresis | Float |
200 |
apertureSize |
Tamaño de la apertura para el operador de Sobel (el rango típico es de 3 a 7) | Integer |
3 |
l2Gradient |
Indica si se usa la norma L2 para calcular la magnitud del gradiente de la imagen, en lugar de la norma L1 predeterminada. | BOOLEAN |
False |
EdgePluginModelBaseOptions |
El objeto BaseOptions que establece la ruta de acceso
para el modelo de complemento |
Objeto BaseOptions |
N/A |
Para obtener más información sobre cómo funcionan estas opciones de configuración, consulta Detector de bordes de Canny.
Opciones de puntos de referencia faciales
Configura las siguientes opciones en faceConditionOptions.
| Nombre de la opción | Descripción | Rango de valores | Valor predeterminado |
|---|---|---|---|
minFaceDetectionConfidence |
La puntuación de confianza mínima para que la detección de rostros se considere exitosa. | Float [0.0,1.0] |
0.5 |
minFacePresenceConfidence |
La puntuación de confianza mínima de la puntuación de presencia facial en la detección de puntos de referencia faciales. | Float [0.0,1.0] |
0.5 |
faceModelBaseOptions |
El objeto BaseOptions que establece la ruta de acceso
para el modelo que crea la imagen de condición |
Objeto BaseOptions |
N/A |
FacePluginModelBaseOptions |
El objeto BaseOptions que establece la ruta de acceso
para el modelo de complemento |
Objeto BaseOptions |
N/A |
Para obtener más información sobre cómo funcionan estas opciones de configuración, consulta la tarea Face Landmarker.
Opciones de profundidad
Configura las siguientes opciones en depthConditionOptions.
| Nombre de la opción | Descripción | Rango de valores | Valor predeterminado |
|---|---|---|---|
depthModelBaseOptions |
El objeto BaseOptions que establece la ruta de acceso
para el modelo que crea la imagen de condición |
Objeto BaseOptions |
N/A |
depthPluginModelBaseOptions |
El objeto BaseOptions que establece la ruta de acceso
para el modelo de complemento |
Objeto BaseOptions |
N/A |
Modelos
Image Generator requiere un modelo de base, que es un modelo de IA de texto a imagen que usa técnicas de difusión para generar imágenes nuevas. Los modelos de base que se enumeran en esta sección son modelos ligeros optimizados para ejecutarse en smartphones de alta gama.
Los modelos de complementos son opcionales y complementan los modelos de base, lo que permite a los usuarios proporcionar una imagen de condición adicional junto con una instrucción de texto para una generación de imágenes más específica. La personalización de los modelos de base con pesos de LoRA es una opción que le enseña al modelo de base sobre un concepto específico, como un objeto, una persona o un estilo, y los inserta en las imágenes generadas.
Modelos de base
Los modelos de base son modelos de difusión de texto a imagen latentes que generan imágenes a partir de una instrucción de texto. Image Generator requiere que el modelo de base coincida con el formato del modelo stable-diffusion-v1-5/stable-diffusion-v1-5 EMA-only, según el siguiente modelo:
Los siguientes modelos de base también son compatibles con Image Generator:
Después de descargar un modelo de base, usa el image_generator_converter para convertir el modelo al formato adecuado en el dispositivo para el Image Generator.
Instala las dependencias necesarias:
$ pip install torch typing_extensions numpy Pillow requests pytorch_lightning absl-py
Ejecuta la
convert.py
secuencia de comandos:
$ python3 convert.py --ckpt_path <ckpt_path> --output_path <output_path>
Modelos de complementos
Google desarrolló los modelos de complementos de esta sección, y deben usarse en combinación con un modelo de base. Los modelos de complementos permiten que Image Generator acepte una imagen de condición junto con una instrucción de texto como entrada, lo que te permite controlar la estructura de las imágenes generadas. Los modelos de complementos proporcionan capacidades similares a ControlNet, con una arquitectura novedosa específicamente para la difusión en el dispositivo.
Los modelos de complementos deben especificarse en las opciones base y pueden requerir que descargues archivos de modelo adicionales. Cada complemento tiene requisitos únicos para la imagen de condición, que Image Generator puede generar.
Complemento de bordes de Canny
El complemento de bordes de Canny acepta una imagen de condición que describe los bordes deseados de la imagen generada. El modelo de base usa los bordes implícitos en la imagen de condición y genera una imagen nueva basada en la instrucción de texto. Image Generator contiene capacidades integradas para crear imágenes de condición y solo requiere descargar el modelo de complemento.
Descarga el complemento de bordes de Canny
El complemento de bordes de Canny contiene las siguientes opciones de configuración:
| Nombre de la opción | Descripción | Rango de valores | Valor predeterminado |
|---|---|---|---|
threshold1 |
Primer umbral para el procedimiento de histéresis | Float |
100 |
threshold2 |
Segundo umbral para el procedimiento de histéresis | Float |
200 |
apertureSize |
Tamaño de la apertura para el operador de Sobel (el rango típico es de 3 a 7) | Integer |
3 |
l2Gradient |
Indica si se usa la norma L2 para calcular la magnitud del gradiente de la imagen, en lugar de la norma L1 predeterminada. | BOOLEAN |
False |
EdgePluginModelBaseOptions |
El objeto BaseOptions que establece la ruta de acceso
para el modelo de complemento |
Objeto BaseOptions |
N/A |
Para obtener más información sobre cómo funcionan estas opciones de configuración, consulta Detector de bordes de Canny.
Complemento de puntos de referencia faciales
El complemento de puntos de referencia faciales acepta el resultado de MediaPipe Face Landmarker como la imagen de condición. Face Landmarker proporciona una malla facial detallada de un solo rostro, que asigna la presencia y la ubicación de los rasgos faciales. El modelo de base usa la asignación facial implícita en la imagen de condición y genera un rostro nuevo sobre la malla.
Descarga el complemento de puntos de referencia faciales
El complemento de puntos de referencia faciales también requiere el paquete de modelos de Face Landmarker model bundle para crear la imagen de condición. Este paquete de modelos es el mismo que usa la tarea Face Landmarker.
Descarga el paquete de modelos de puntos de referencia faciales
El complemento de puntos de referencia faciales contiene las siguientes opciones de configuración:
| Nombre de la opción | Descripción | Rango de valores | Valor predeterminado |
|---|---|---|---|
minFaceDetectionConfidence |
La puntuación de confianza mínima para que la detección de rostros se considere exitosa. | Float [0.0,1.0] |
0.5 |
minFacePresenceConfidence |
La puntuación de confianza mínima de la puntuación de presencia facial en la detección de puntos de referencia faciales. | Float [0.0,1.0] |
0.5 |
faceModelBaseOptions |
El objeto BaseOptions que establece la ruta de acceso
para el modelo que crea la imagen de condición |
Objeto BaseOptions |
N/A |
FacePluginModelBaseOptions |
El objeto BaseOptions que establece la ruta de acceso
para el modelo de complemento |
Objeto BaseOptions |
N/A |
Para obtener más información sobre cómo funcionan estas opciones de configuración, consulta la tarea Face Landmarker.
Complemento de profundidad
El complemento de profundidad acepta una imagen de condición que especifica la profundidad monocular de un objeto. El modelo de base usa la imagen de condición para inferir el tamaño y la profundidad del objeto que se generará, y genera una imagen nueva basada en la instrucción de texto.
Descarga el complemento de profundidad
El complemento de profundidad también requiere un modelo de estimación de profundidad para crear la imagen de condición.
Descarga el modelo de estimación de profundidad
El complemento de profundidad contiene las siguientes opciones de configuración:
| Nombre de la opción | Descripción | Rango de valores | Valor predeterminado |
|---|---|---|---|
depthModelBaseOptions |
El objeto BaseOptions que establece la ruta de acceso
para el modelo que crea la imagen de condición |
Objeto BaseOptions |
N/A |
depthPluginModelBaseOptions |
El objeto BaseOptions que establece la ruta de acceso
para el modelo de complemento |
Objeto BaseOptions |
N/A |
Personalización con LoRA
La personalización de un modelo con LoRA puede permitir que Image Generator genere imágenes basadas en conceptos específicos, que se identifican con tokens únicos durante el entrenamiento. Con los nuevos pesos de LoRA después del entrenamiento, el modelo puede generar imágenes del nuevo concepto cuando se especifica el token en la instrucción de texto.
Para crear pesos de LoRA, se requiere entrenar un modelo de base en imágenes de un objeto, una persona o un estilo específicos, lo que permite que el modelo reconozca el nuevo concepto y lo aplique cuando genera imágenes. Si creas pesos de LoRA para generar imágenes de personas y rostros específicos, usa esta solución solo en tu rostro o en los rostros de personas que te hayan dado permiso para hacerlo.
A continuación, se muestra el resultado de un modelo personalizado entrenado en imágenes de teteras del conjunto de datos DreamBooth, con el token "monadikos teapot":
Instrucción: una tetera monadikos junto a un espejo
El modelo personalizado recibió el token en la instrucción e insertó una tetera que aprendió a representar a partir de los pesos de LoRA, y la coloca en la imagen junto a un espejo como se solicitó en la instrucción.
Para obtener más información, consulta la guía de personalización, que usa Model Garden en Vertex AI para personalizar un modelo aplicando pesos de LoRA a un modelo de base.