Guía de generación de imágenes

La tarea MediaPipe Image Generator te permite generar imágenes basadas en instrucciones de texto. En esta tarea, se usa un modelo de texto a imagen para generar imágenes mediante 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 condicionado, consulta Complementos de difusión en el dispositivo para la generación de texto a imagen condicional.

El generador de imágenes también puede generar imágenes basadas en conceptos específicos proporcionados al modelo durante el entrenamiento o el reentrenamiento. Para obtener más información, consulta Personaliza con LoRA.

Comenzar

Comienza a utilizar esta tarea siguiendo una de estas guías de implementación para la plataforma de destino. En estas guías específicas de la plataforma, se explica la implementación básica de esta tarea, con ejemplos de código que usan un modelo predeterminado y las opciones de configuración recomendadas:

Detalles de la tarea

En esta sección, se describen las capacidades, entradas, salidas y opciones de configuración de esta tarea.

Funciones

Puedes usar el generador de imágenes para implementar lo siguiente:

  1. Generación de texto a imagen: Genera imágenes con una instrucción de texto.
  2. Generación de imágenes con imágenes de condición: Genera imágenes con un mensaje de texto y una imagen de referencia. El Generador de imágenes usa imágenes de condición de maneras similares a ControlNet.
  3. 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 mediante pesos de modelo personalizados.
Entradas de tareas Resultados de la tarea
El generador de imágenes acepta las siguientes entradas:
  • Instrucción de texto
  • Capital semilla
  • Cantidad de iteraciones generativas
  • Imagen de condición (opcional)
El generador de imágenes genera los siguientes resultados:
  • Imagen generada basada en las entradas.
  • Instantáneas iterativas de la imagen generada (opcional).

Opciones de configuración

Esta tarea incluye las siguientes opciones de configuración:

Nombre de la opción Descripción Rango de valores
imageGeneratorModelDirectory El directorio del modelo generador de imágenes en el que se almacenan los pesos del modelo. PATH
loraWeightsFilePath Establece la ruta de acceso al archivo de ponderaciones de LoRA. Opcional y solo aplicable 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, que permiten 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 de rostros, contornos de bordes y estimaciones de profundidad, que el modelo usa como información y contexto 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 punto de referencia de Face usa faceConditionOptions, el de Canny Edge usa edgeConditionOptions y el complemento de Depth usa depthConditionOptions.

Opciones de Canny Edge

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 apertura para el operador Sobel. El rango habitual 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 del complemento Objeto BaseOptions N/A

Para obtener más información sobre cómo funcionan estas opciones de configuración, consulta el detector de perímetro Canny.

Opciones de puntos de referencia facial

Configura las siguientes opciones en faceConditionOptions.

Nombre de la opción Descripción Rango de valores Valor predeterminado
minFaceDetectionConfidence Puntuación de confianza mínima para que se considere correcta la detección de rostro. Float [0.0,1.0] 0.5
minFacePresenceConfidence Puntuación de confianza mínima de la puntuación de presencia facial en la detección de puntos de referencia facial. 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 del complemento Objeto BaseOptions N/A

Para obtener más información sobre cómo funcionan estas opciones de configuración, consulta la tarea de marcador de rostro.

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 del complemento Objeto BaseOptions N/A

ajustables

El generador de imágenes 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. Personalizar los modelos de base con ponderaciones 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. El generador de imágenes requiere que el modelo de base coincida con el formato del modelo runwayml/stable-diffusion-v1-5 EMA-only, según el siguiente modelo:

Los siguientes modelos de base también son compatibles con el generador de imágenes:

Después de descargar un modelo de base, usa el image_generator_converter a fin de convertirlo al formato adecuado en el dispositivo para el generador de imágenes.

Instala las dependencias necesarias:

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

Ejecuta la secuencia de comandos convert.py:

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

Modelos de complementos

Google desarrolla 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 el generador de imágenes 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ífica para la difusión en el dispositivo.

Los modelos de complementos deben especificarse en las opciones de base y es posible que debas descargar archivos de modelo adicionales. Cada complemento tiene requisitos únicos para la imagen de condición, que el generador de imágenes puede generar.

Complemento Canny Edge

El complemento Canny Edge acepta una imagen de condición que describe los bordes deseados de la imagen generada. El modelo de base usa los bordes implícitos por la imagen de condición y genera una imagen nueva basada en la instrucción de texto. El generador de imágenes contiene capacidades integradas para crear imágenes de condición y solo requiere la descarga del modelo del complemento.

Descargar el complemento Canny Edge

El complemento Canny Edge 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 apertura para el operador Sobel. El rango habitual 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 del complemento Objeto BaseOptions N/A

Para obtener más información sobre cómo funcionan estas opciones de configuración, consulta el detector de perímetro Canny.

Complemento Face Landmark

El complemento Face Landmark acepta la salida del Face Landmarker de MediaPipe como la imagen de condición. Facemarker proporciona una malla de rostros detallada de un solo rostro, que asigna la presencia y ubicación de rasgos faciales. El modelo de base usa el mapeo facial que implica la imagen de la condición y genera un rostro nuevo en la malla.

Descargar el complemento de puntos de referencia facial

El complemento del punto de referencia Face también requiere el paquete de modelos de Face Landmarker para crear la imagen de condición. Este paquete de modelos es el mismo que se usa en la tarea Face Landmarker.

Descargar el paquete de modelos de puntos de referencia de rostros

El complemento Face Landmark contiene las siguientes opciones de configuración:

Nombre de la opción Descripción Rango de valores Valor predeterminado
minFaceDetectionConfidence Puntuación de confianza mínima para que se considere correcta la detección de rostro. Float [0.0,1.0] 0.5
minFacePresenceConfidence Puntuación de confianza mínima de la puntuación de presencia facial en la detección de puntos de referencia facial. 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 del complemento Objeto BaseOptions N/A

Para obtener más información sobre cómo funcionan estas opciones de configuración, consulta la tarea de marcador de rostro.

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.

Descargar el complemento de Depth

El complemento de Depth también requiere un modelo de estimación de Depth para crear la imagen de la condición.

Descargar el modelo de estimación de profundidad

El complemento Depth 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 del complemento Objeto BaseOptions N/A

Personalización con LoRA

Personalizar un modelo con LoRA puede permitir que el generador de imágenes genere imágenes basadas en conceptos específicos, que se identifican por tokens únicos durante el entrenamiento. Con las nuevas ponderaciones de LoRA después del entrenamiento, el modelo puede generar imágenes del concepto nuevo cuando se especifica el token en la instrucción de texto.

Para crear las ponderaciones de LoRA, es necesario entrenar un modelo de base con imágenes de un objeto, una persona o un estilo específicos, lo que permite que el modelo reconozca el concepto nuevo y lo aplique cuando genere imágenes. Si creas ponderaciones de LoRa para generar imágenes de personas y rostros específicos, usa esta solución solo en tu rostro o en rostros de personas que te hayan dado permiso para hacerlo.

A continuación, se muestra el resultado de un modelo personalizado entrenado con imágenes de teteras del conjunto de datos de DreamBooth, con el token “tetera de Monadikos”:

Instrucción: una tetera monadikos junto a un espejo

El modelo personalizado recibió el token en la instrucción, inyectó una tetera que aprendió a representar a partir de las ponderaciones de la LoRA y la coloca junto a una espejo como se solicita en la instrucción.

LoRA con Vertex AI

Si deseas obtener más información, consulta la guía de personalización, en la que se usa Model Garden en Vertex AI para personalizar un modelo aplicando ponderaciones de LoRA a un modelo de base.