Diffusers documentation

Generación controlada

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.42.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Generación controlada

Controlar las salidas generadas por los modelos de difusión ha sido un objetivo perseguido durante mucho tiempo por la comunidad y es ahora un tema de investigación activo. En muchos modelos de difusión populares, cambios sutiles en las entradas, tanto en las imágenes como en los prompts de texto, pueden alterar drásticamente las salidas. En un mundo ideal, querríamos poder controlar cómo se preservan y modifican las semánticas.

La mayoría de los ejemplos de preservación de semántica se reducen a la capacidad de mapear con precisión un cambio en la entrada a un cambio en la salida. Es decir, añadir un adjetivo a un sujeto en un prompt preserva la imagen completa, modificando únicamente el sujeto cambiado. O bien, la variación de imagen de un sujeto particular preserva la pose del sujeto.

Además, existen cualidades de las imágenes generadas que nos gustaría influir más allá de la preservación semántica. Es decir, en general, nos gustaría que nuestras salidas sean de buena calidad, sigan un estilo particular o sean realistas.

Documentaremos algunas de las técnicas que diffusers admite para controlar la generación de modelos de difusión. Gran parte de esto es investigación de vanguardia y puede ser bastante matizada. Si algo necesita aclaración o tienes una sugerencia, no dudes en abrir una discusión de GitHub o un issue de GitHub.

Proporcionamos una explicación de alto nivel sobre cómo se puede controlar la generación, así como un fragmento de los detalles técnicos. Para explicaciones más profundas sobre los aspectos técnicos, los artículos originales, a los que se enlaza desde las pipelines, son siempre la mejor referencia.

Dependiendo del caso de uso, se debe elegir una técnica en consecuencia. En muchos casos, estas técnicas se pueden combinar. Por ejemplo, se puede combinar Textual Inversion con SEGA para proporcionar una guía semántica más detallada a las salidas generadas mediante Textual Inversion.

A menos que se indique lo contrario, estas son técnicas que funcionan con modelos existentes y no requieren sus propios pesos.

  1. InstructPix2Pix
  2. Atender y Excitar
  3. Guía semántica
  4. Guía de autoatención
  5. Depth2Image
  6. Panorama MultiDiffusion
  7. DreamBooth
  8. Inversión textual
  9. ControlNet
  10. Ponderación de prompts
  11. Diffusión personalizada
  12. DiffEdit
  13. T2I-Adapter
  14. FABRIC

Para su comodidad, proporcionamos una tabla que indica qué métodos son solo de inferencia y cuáles requieren ajuste fino/entrenamiento.

MétodoSolo inferenciaRequiere entrenamiento /
ajuste fino
Comentarios
InstructPix2Pix✅❌Además, se puede
ajustar para mejorar el
rendimiento en instrucciones de
edición específicas.
Atender y Excitar✅❌
Guía semántica✅❌
Guía de autoatención✅❌
Depth2Image✅❌
Panorama MultiDiffusion✅❌
DreamBooth❌✅
Inversión textual❌✅
ControlNet✅❌Un ControlNet se puede
entrenar/ajustar finamente sobre
una condición personalizada.
Ponderación de prompts✅❌
Diffusión personalizada❌✅
DiffEdit✅❌
T2I-Adapter✅❌
Fabric✅❌

InstructPix2Pix

Artículo

InstructPix2Pix se ajusta a partir de Stable Diffusion para admitir la edición de imágenes de entrada. Toma como entradas una imagen y un prompt que describe una edición, y devuelve la imagen editada. InstructPix2Pix se ha entrenado explícitamente para funcionar bien con prompts similares a los de InstructGPT.

Atender y Excitar

Artículo

Attend and Excite permite que los sujetos en el prompt se representen fielmente en la imagen final.

Se proporcionan como entrada un conjunto de índices de tokens, que corresponden a los sujetos del prompt que deben estar presentes en la imagen. Durante el desruido, se garantiza que cada índice de token tenga un umbral mínimo de atención para al menos un parche de la imagen. Los latentes intermedios se optimizan de forma iterativa durante el proceso de desruido para reforzar la atención del token de sujeto más descuidado hasta que se supere el umbral de atención para todos los tokens de sujeto.

Al igual que Pix2Pix Zero, Attend and Excite también implica un mini bucle de optimización (dejando intactos los pesos preentrenados) en su pipeline y puede requerir más memoria que el StableDiffusionPipeline habitual.

Guía semántica (SEGA)

Artículo

SEGA permite aplicar o eliminar uno o más conceptos de una imagen. También se puede controlar la intensidad del concepto. Es decir, el concepto de sonrisa se puede usar para aumentar o disminuir gradualmente la sonrisa de un retrato.

De manera similar a como la guía sin clasificador proporciona orientación mediante entradas de prompt vacías, SEGA proporciona orientación sobre prompts conceptuales. Se pueden aplicar varios de estos prompts conceptuales simultáneamente. Cada prompt conceptual puede añadir o eliminar su concepto dependiendo de si la guía se aplica de forma positiva o negativa.

A diferencia de Pix2Pix Zero o Attend and Excite, SEGA interactúa directamente con el proceso de difusión en lugar de realizar una optimización explícita basada en gradientes.

Guía de autoatención (SAG)

Artículo

La guía de autoatención mejora la calidad general de las imágenes.

SAG proporciona orientación desde predicciones no condicionadas en detalles de alta frecuencia hasta imágenes totalmente condicionadas. Los detalles de alta frecuencia se extraen de los mapas de autoatención del UNet.

Depth2Image

Proyecto

Depth2Image se ajusta a partir de Stable Diffusion para preservar mejor la semántica en la variación de imágenes guiada por texto.

Se condiciona en una estimación de profundidad monocular de la imagen original.

MultiDiffusion Panorama

Artículo

MultiDiffusion Panorama define un nuevo proceso de generación sobre un modelo de difusión preentrenado. Este proceso combina varios métodos de generación por difusión que pueden aplicarse fácilmente para generar imágenes de alta calidad y diversas. Los resultados se ajustan a los controles proporcionados por el usuario, como la relación de aspecto deseada (p. ej., panorámica) y señales de guía espacial, que van desde máscaras de segmentación estrictas hasta cajas delimitadoras. MultiDiffusion Panorama le permite generar imágenes de alta calidad en relaciones de aspecto arbitrarias (p. ej., panorámicas).

Ajuste fino de tus propios modelos

Además de los modelos preentrenados, Diffusers incluye scripts de entrenamiento para ajustar modelos con datos proporcionados por el usuario.

DreamBooth

Proyecto

DreamBooth ajusta el afinamiento de un modelo para enseñarle sobre un nuevo sujeto. Es decir, unas pocas fotos de una persona pueden usarse para generar imágenes de esa persona en diferentes estilos.

Inversión textual

Artículo

Textual Inversion ajusta un modelo para enseñarle un concepto nuevo. Es decir, unas pocas imágenes de un estilo de arte pueden usarse para generar imágenes en ese estilo.

ControlNet

Artículo

ControlNet es una red auxiliar que añade una condición adicional. Existen 8 ControlNets preentrenados canónicos entrenados con diferentes condicionamientos, como la detección de bordes, garabatos, mapas de profundidad y segmentaciones semánticas.

Pesos de los prompts

Peso del prompt es una técnica sencilla que otorga más peso de atención a ciertas partes de la entrada de texto.

Custom Diffusion

Artículo

Custom Diffusion solo ajusta los mapas de atención cruzada de un modelo de difusión de texto a imagen preentrenado. También permite realizar adicionalmente Textual Inversion. Está diseñado para admitir el entrenamiento de múltiples conceptos. Al igual que DreamBooth y Textual Inversion, Custom Diffusion se utiliza para enseñar a un modelo de difusión de texto a imagen preentrenado sobre nuevos conceptos para generar salidas que involucren el o los conceptos de interés.

DiffEdit

Artículo

DiffEdit permite la edición semántica de las imágenes de entrada junto con los prompts de entrada, preservando las imágenes de entrada originales en la mayor medida posible.

T2I-Adapter

Artículo

T2I-Adapter es una red auxiliar que añade una condición adicional. Existen 8 adaptadores preentrenados canónicos entrenados con diferentes condicionamientos, como detección de bordes, bocetos, mapas de profundidad y segmentaciones semánticas.

Fabric

Artículo

Fabric es un enfoque sin entrenamiento aplicable a una amplia gama de modelos de difusión populares, que explota la capa de autoatención presente en las arquitecturas más utilizadas para condicionar el proceso de difusión en un conjunto de imágenes de retroalimentación.

Update on GitHub