Descripción del principio de difusión estable

Referencia en este artículo: Explique el principio de Difusión Estable en términos simples, y los novatos pueden entenderlo-Conocimiento

Tabla de contenido

1. ¿Qué puede hacer la difusión estable?

2. Modelo de difusión

(1) Difusión hacia adelante

(2) Difusión inversa

(3) Cómo entrenar

 3, modelo de difusión estable

(1) modelo de difusión latente

(2) Codificador automático variacional (Codificador automático variacional)

(3) ¿Por qué son posibles los espacios latentes?

(4) Retrodifusión del espacio latente

(5) ¿Qué es un archivo VAE?

(6) Acondicionamiento

(6.1) Condiciones de texto

 (6.2) tokenizador tokenizador

(6.3) Enviar incrustaciones al predictor de ruido

(6.4) Mecanismo de Atención Cruzada

4. Pasos de generación de difusión estable

(1) Texto a imagen

 (2) imagen a imagen

5. Valor CFG

(1) Guía del Clasificador (Guía del Clasificador)

(2) Guía sin clasificador

6. Resumen de difusión estable


1. ¿Qué puede hacer la difusión estable?

En su forma más simple, Stable Diffusion es un modo de texto a imagen, dale un mensaje de texto y devolverá imágenes que coincidan con el texto.

2. Modelo de difusión

Stable Diffusion es un modelo bajo el modelo Diffusion.

Son modelos generativos, lo que significa que su propósito es generar nuevos datos similares a los datos con los que fueron entrenados. Para Stable Diffusion, los datos son la imagen.

 ¿Por qué se llama modelo de difusión?

 Se divide en dos partes , difusión directa y difusión inversa , correspondientes a la adición y reducción de ruido de la figura anterior.

(1) Difusión hacia adelante

El proceso consiste en agregar ruido a la imagen de entrenamiento, transformándola gradualmente en una imagen ruidosa sin características. El pase hacia adelante convertirá cualquier imagen de perro o gato en una imagen ruidosa. Eventualmente, será imposible saber si originalmente eran perros o gatos.

Como una gota de tinta que cae en un vaso de agua, la gota se esparce por el agua y, después de unos minutos, se distribuye aleatoriamente por el agua y ya no se puede saber si originalmente cayó en el centro o cerca de los bordes.

A continuación se muestra un ejemplo de una imagen con difusión directa, donde la imagen de un gato se convierte en un ruido aleatorio.

(2) Difusión inversa

El proceso inverso es como reproducir un video hacia atrás, retroceder en el tiempo y veremos dónde se agregó originalmente la gota de tinta. El proceso inverso es restaurar la imagen.

 A partir de imágenes ruidosas y sin sentido, la retrodifusión recupera imágenes de gatos o perros.

Cada proceso de retrodifusión tiene dos partes: una es la deriva o movimiento dirigido, la retrodifusión se desplaza hacia la imagen de un gato o un perro; la otra es un movimiento aleatorio.

(3) Cómo entrenar

Para la retrodifusión, necesitamos saber cuánto ruido se agrega a la imagen, y la respuesta es enseñarle al modelo de red neuronal a predecir el ruido agregado . Se llama predictor de ruido en Stable Diffusion, que es un modelo U-Net. El entrenamiento es el siguiente:

  1. Elija una imagen de entrenamiento, por ejemplo, una foto de un gato
  2. generar imagen de ruido aleatorio
  3. Corrompe la imagen de entrenamiento agregando esta imagen ruidosa a una cierta cantidad de pasos
  4. Entrenar el predictor de ruido nos dice cuánto ruido agregamos, esto se hace ajustando sus pesos y mostrándole la respuesta correcta.

El ruido se agrega secuencialmente en cada paso, y después del entrenamiento tenemos un predictor de ruido capaz de estimar el ruido agregado a una imagen.

Ahora que tenemos un predictor de ruido, ¿cómo lo usamos?

Primero generamos una imagen completamente aleatoria y le pedimos al predictor de ruido que nos informe sobre el ruido. Luego restamos todo el ruido estimado de la imagen original. Repite este proceso unas cuantas veces y terminarás con la imagen de un gato o un perro.

 En este punto, no tenemos control sobre la generación de imágenes de gatos o perros. Esto se abordará cuando hablemos sobre el condicionamiento más adelante. La generación de imágenes es actualmente incondicional.

 3, modelo de difusión estable

 La Parte 2 habla sobre el principio de generación de imágenes por el modelo de difusión, pero no sobre el principio del modelo de difusión estable. La razón es que el proceso de difusión anterior se encuentra en el espacio de la imagen, que requiere un uso intensivo de computación y no se puede ejecutar en una sola GPU.

Los espacios de imagen son enormes, una imagen de 3*512*512 con tres canales de color (RGB) es un espacio de 786.432 dimensiones.

Los modelos de difusión como Imagen de Google y DALL-E de OpenAI están en el espacio de píxeles, usan algunos trucos para hacer que el modelo sea más rápido, pero aún no lo suficiente.

Por supuesto, también hay ventajas en el uso del espacio de píxeles, es decir, puede controlar con mayor precisión el contenido generado, como la visualización de texto.

Stable Diffusion tiene como objetivo resolver el problema de la velocidad.

(1) modelo de difusión latente

Stable Diffusion es un modelo de difusión espacial latente . No opera en un espacio de imagen de alta dimensión, sino que primero comprime la imagen en un espacio latente ( ps: similar al algoritmo centerNet en la imagen, también se realiza en la capa oculta 512*512->128*128 espacio entrenamiento e inferencia ). En comparación con el espacio de píxeles original, el espacio latente es 48 veces más pequeño, por lo que la velocidad se vuelve más rápida.

(2) Codificador automático variacional (Codificador automático variacional)

Stable Diffusion utiliza codificadores automáticos variacionales para lograr la compresión del espacio latente de la imagen. La red neuronal de autocodificador variacional consta de dos partes: el codificador y el decodificador, el codificador comprime la imagen en una representación de baja dimensión en el espacio latente y el decodificador recupera la imagen del espacio latente.

 El espacio latente del modelo Stable Diffusion es 4*64*64, que es 48 veces más pequeño que el espacio de píxeles de la imagen original de 3*512*512. Toda la difusión hacia adelante y hacia atrás de la que hemos hablado se realiza en realidad en el espacio latente .

Entonces, durante el entrenamiento, en lugar de generar imágenes ruidosas, genera tensores aleatorios (ruido latente) en el espacio latente. En lugar de corromper la imagen con ruido, corrompe la representación de la imagen en el espacio latente con ruido latente. La razón de esto es que es mucho más rápido.

(3) ¿Por qué son posibles los espacios latentes?

Por qué VAE puede comprimir imágenes en un espacio latente más pequeño sin perder información. La razón es: las imágenes naturales no son aleatorias, tienen una alta regularidad: las caras siguen una relación espacial específica entre los ojos, la nariz, las mejillas y la boca; los perros tienen 4 patas y tienen una forma especial.

Esto puede estar relacionado con la hipótesis múltiple en el aprendizaje automático. Si cree que los datos naturales están representados por una variedad de dimensiones bajas en el espacio, es una ilusión en sí misma y puede calcularlos directamente en un espacio de dimensiones bajas para obtener resultados similares a los de dimensiones altas. Este tipo de compresión de imágenes de alta dimensión a la comprensión de baja dimensión parece ser un principio operativo de los nervios visuales humanos. En otras palabras, es más útil que la IA se centre en la forma general de baja frecuencia, lo que equivale a permitir que la IA se centre más en juzgar la estructura general de una imagen .

Sin embargo, a juzgar por los resultados de salida, la suposición múltiple no es completamente correcta. Porque la difusión latente no es tan buena como la difusión a nivel de píxeles como Dall-E en lugares donde la cara y las manos representan una pequeña proporción de la imagen general, pero los detalles no se pueden ignorar. Por lo tanto, este tipo de cálculo de baja dimensión todavía tiene pérdidas, por lo que la decodificación de Stable Diffusion VAE ha agregado módulos mejorados como la corrección de rostros. Reemplazar un mejor VAE parece ser una forma de mejorar el rendimiento de Stable Diffusion.

(4) Retrodifusión del espacio latente

  1. Generar matriz espacial latente aleatoria
  2. El predictor de ruido estima el ruido de la matriz latente
  3. Luego, el ruido estimado se resta de la matriz de espacio latente original.
  4. Repita los pasos 2 y 3 hasta un paso de muestreo específico
  5. El decodificador del VAE convierte la matriz del espacio latente en la imagen final.

(5) ¿Qué es un archivo VAE?

Los archivos VAE se utilizan en Stable Diffusion V1 para mejorar la pintura de los ojos y la cara. Son los decodificadores de los autocodificadores de los que acabamos de hablar. Al ajustar aún más el decodificador, el modelo puede dibujar detalles más finos.

(6) Acondicionamiento

¿Dónde se inyecta el mensaje de texto en la imagen? Se requieren condiciones.

El propósito de la condición es guiar al predictor de ruido para que el ruido predicho proporcione lo que queremos cuando se resta de la imagen.

(6.1) Condiciones de texto

El tokenizador (Tokenizer) primero convierte cada palabra de la sugerencia en una cantidad de tokens (token), luego convierte cada token en un vector de 768 valores llamado Embedding, y luego Embedding es procesado por el convertidor de texto y está listo para el ruido El predictor se usa

 (6.2) tokenizador tokenizador

Las indicaciones de texto primero se tokenizan mediante el tokenizador CLIP . CLIP es un modelo de aprendizaje profundo desarrollado por Open AI para generar una descripción textual de cualquier imagen. Stable Diffusion v1 utiliza el tokenizador de CLIP.

Un tokenizador solo puede tokenizar las palabras que ha visto durante el entrenamiento. Por ejemplo, hay "sueño" y "playa" en el modelo CLIP, pero no "playa de ensueño". El Tokenizer descompone la palabra "dreambeach" en dos tokens "dream" y "beach". Entonces, una palabra no siempre significa una ficha .

El modelo Stable Diffusion está limitado a 75 tokens en sugerencias.

(6.3) Enviar incrustaciones al predictor de ruido

El convertidor de texto necesita seguir procesando la incrustación antes de enviarla al predictor de ruido. Su entrada es un vector de incrustación de texto, pero también puede ser otras cosas como etiquetas de clase, imágenes y mapas de profundidad. Los convertidores no solo procesan aún más los datos, sino que también proporcionan un mecanismo para incluir diferentes modos de acondicionamiento.

(6.4) Mecanismo de Atención Cruzada

La salida del transformador de texto es utilizada varias veces por los predictores de ruido en U-Net, que la consume a través del mecanismo de atención cruzada , que es donde la señal se encuentra con la imagen.

Tome la señal "hombre con ojos azules", por ejemplo. Stable Diffusion empareja las palabras "azul" y "ojos" a través de la autoatención en el aviso , de modo que genera un hombre con ojos azules en lugar de un hombre con una camisa azul. Luego usa esta información para guiar la retrodifusión a imágenes que contienen ojos azules a través de un mecanismo de atención cruzada entre el aviso y el aviso de la imagen .

El modelo Lora modifica los pesos del módulo de atención cruzada para cambiar el estilo. El hecho de que el modelo de difusión estable se pueda ajustar modificando solo este módulo ilustra la importancia de este módulo.

4. Pasos de generación de difusión estable

(1) Texto a imagen

En el paso 1, Stable Diffusion genera tensores aleatorios en el espacio latente. Este tensor se puede controlar en este punto configurando la semilla del generador de números aleatorios. Lo que se generó fue una imagen en el espacio latente, pero ahora es todo ruido.

En el paso 2, el predictor de ruido U-Net toma la imagen con ruido latente y las señales de texto como entrada y predice el ruido, también en un tensor de espacio latente 4*64*64.

Paso 3, el ruido latente se resta de la imagen latente, que se convertirá en la nueva imagen latente.

 Los pasos 2 y 3 se repiten para un cierto número de pasos de muestreo, digamos 20 veces.

En el paso 4, el decodificador del VAE vuelve a convertir la imagen latente en espacio de píxeles. Aquí está la imagen obtenida después de ejecutar Stable Diffusion.

 (2) imagen a imagen

Image-to-image es un método propuesto por primera vez en el método SDEdit SDEdit se puede aplicar a cualquier modelo de expansión, por lo que tiene la función de imagen a imagen de Stable Diffusion.

La imagen de entrada y el mensaje de texto se proporcionan como entrada de imagen a imagen, y la imagen resultante estará condicionada por la imagen de entrada y el mensaje de texto. Por ejemplo, si usa este dibujo de aficionado y el mensaje "foto de manzana verde perfecta con tallo, gotas de agua, iluminación espectacular" como entrada, imagen a imagen puede convertirlo en un dibujo profesional.

En el paso 1, la imagen de entrada se codifica como un espacio latente

En el paso 2, se agrega ruido a la imagen latente. La fuerza de reducción de ruido controla la cantidad de ruido añadido. Si es 0, no se agrega ruido; si es 1, se agrega la cantidad máxima de ruido para que la imagen latente se convierta en un tensor completamente aleatorio.

 En el paso 3, el predictor de ruido U-Net toma señales de texto e imágenes potencialmente ruidosas como entrada y predice el ruido en el espacio latente (tensor 4*64*64).

Paso 4, el ruido latente se resta de la imagen latente, que se convertirá en la nueva imagen latente.

Los pasos 3 y 4 se repiten para un cierto número de pasos de muestreo, digamos 20 veces.

En el paso 5, el decodificador VAE vuelve a convertir la imagen latente en espacio de píxeles, que es la imagen obtenida después de ejecutar imagen a imagen.

 En resumen, todo lo que hace imagen a imagen es configurar una imagen latente inicial con un poco de ruido y un poco de la imagen de entrada. Establecer la fuerza de eliminación de ruido en 1 es equivalente a texto a imagen, ya que la imagen latente inicial es un ruido completamente aleatorio.

5. Valor CFG

 CFG: guía sin clasificador Sin guía de clasificador, este es el valor que los artistas de IA ajustan todos los días.

(1) Guía del Clasificador (Guía del Clasificador)

El bootstrapping de clasificadores es un método para incorporar etiquetas de imágenes en modelos de difusión que pueden usar las etiquetas para guiar el proceso de difusión. Por ejemplo, la etiqueta "gato" lidera el proceso de retrodifusión para generar imágenes de gatos.

La escala de guía del clasificador es un parámetro que se utiliza para controlar qué tan cerca debe permanecer el proceso de difusión de las etiquetas.

Supongamos que hay 3 conjuntos de imágenes con las etiquetas "gato", "perro" y "humano". Si la difusión no se supervisa, el modelo extraerá muestras de los datos totales de cada grupo (algo "de manera uniforme"), pero a veces puede extraer imágenes que se ajusten a ambas etiquetas, como un niño acariciando a un perro.

Guiadas por un clasificador alto, las imágenes generadas por el modelo de difusión estarán sesgadas hacia ejemplos extremos o explícitos. Si le pides al modelo un gato, te devolverá una imagen de un gato explícito y nada más.

(2) Guía sin clasificador

 Aunque la guía del clasificador logra un rendimiento récord, requiere un modelo adicional para proporcionar esa guía, lo que plantea algunas dificultades para el entrenamiento.

La guía sin clasificador es una forma de lograr una "guía sin clasificador", y las indicaciones de texto brindan esta guía en forma de texto a imagen.

Condicionan la parte del clasificador como un predictor de ruido, U-Nett, para lograr la llamada guía "sin clasificador" (es decir, sin clasificador de imagen separado) en la generación de imágenes.

Ahora que tenemos un proceso de difusión sin clasificador a través del condicionamiento, ¿cómo controlamos cuánta orientación se debe seguir? La escala guiada por clasificador libre (CFG) es un valor que controla cuánto el proceso de difusión está regulado por señales de texto . Cuando la generación de imágenes se establece en 0, la generación de imágenes es incondicional (es decir, se ignoran las señales), los valores más altos dirigen la difusión hacia las señales.

6. Resumen de difusión estable


1. Utiliza un modelo de difusión, que se divide en dos partes: difusión directa y difusión inversa, correspondientes al proceso de adición y reducción de ruido 2.
Difusión directa: similar a la difusión de gotas de tinta en el agua, se convierte en ruido aleatorio ; difusión inversa: imagen de recuperación.
3. Entrenamiento: enseñar a la red neuronal U-Net a predecir el ruido
4. Retrodifusión del espacio latente:
(1) Generar matriz de espacio latente aleatoria
(2) El predictor de ruido estima el ruido de la matriz latente
(3) Restar del espacio latente original matriz Ruido estimado
(4) Repita los pasos (2) y (3) hasta el paso de muestreo específico
(5) El decodificador de VAE convierte la matriz de espacio
latente
en la imagen final Cantidad
(2) El predictor de ruido toma como entrada una imagen con ruido latente y un texto y predice el ruido
(3) Reste el ruido latente de la imagen latente para obtener una nueva imagen latente
(4) Repita los pasos (2) y (3) hasta el paso de muestreo especificado 
(5) El decodificador del VAE convierte el matriz de espacio latente en la imagen final
6. El paso de la generación de gráficos
(1) La imagen de entrada se codifica en un espacio latente y se agrega ruido a la imagen latente.
(2) El predictor de ruido toma como entrada una imagen con ruido latente y una sugerencia de texto, y predice el ruido
(3) Reste el ruido latente de la imagen latente para obtener una nueva imagen latente
(4) Repita los pasos (2) y (3) hasta el paso de muestreo específico 
(5) ) El decodificador de VAE convierte la matriz de espacio latente en la imagen final
7. CFG: guía sin clasificador sin guía del clasificador, lo que significa que no se requiere un modelo de clasificación separado y se usan indicaciones de texto como guía. Este valor se usa para controlar El grado en que las señales textuales modulan el proceso de difusión.

Supongo que te gusta

Origin blog.csdn.net/benben044/article/details/130974891
Recomendado
Clasificación