Guía de generación de imágenes

Tarea de generador de imágenes

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:

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:

  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 una instrucción de texto y una imagen de referencia. Image Generator usa imágenes de condición de formas 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 usando pesos de modelo personalizados.
Entradas de la tarea Salidas de la tarea
Image Generator acepta las siguientes entradas:
  • Instrucción de texto
  • Semilla
  • Cantidad de iteraciones generativas
  • Opcional: Imagen de condición
Image Generator genera los siguientes resultados:
  • Imagen generada basada en las entradas
  • Opcional: Instantáneas iterativas de la imagen generada

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

Ejemplo de salida de dos imágenes generadas que usan una imagen de condición proporcionada con un contorno definido de ladrillos y la instrucción

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

Ejemplo de salida de dos imágenes generadas que usan una imagen de condición proporcionada de un rostro bocetado y dos instrucciones diferentes para mostrar que la misma imagen de condición se puede usar para generar imágenes de aspecto muy diferente

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

Ejemplo de salida de dos imágenes generadas que usan una imagen de condición proporcionada que muestra una forma general de un automóvil para demostrar que el complemento Profundidad puede crear imágenes que agregan profundidad a una imagen plana

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":

Una imagen fotorrealista generada de una tetera sobre una mesa junto a un espejo montado en una pared

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.

LoRA con Vertex AI

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.