Modelos de difusión condicionados

Rubén Rodríguez Abril

Los modelos de difusión, que son entrenados para generar imágenes desde ruido gaussiano, pueden integrar información proporcionada por el propio usuario, como descripciones textuales (“prompts) o imágenes previas. La integración puede realizarse dentro de la propia red o mediante una perturbación posterior. En el primer caso se habla de difusión condicionada. En el segundo, de difusión guiada. Ambas son muy utilizadas en la creación de arte por IA.

Un repaso a los modelos de difusión

Los modelos de difusión, introducidos en el año 2015, consisten en la generación de una imagen mediante la progresiva limpieza de ruido de un gráfico inicial, formado casi exclusivamente por ruido blanco, hasta la obtención de una imagen nítida y con significado. Esta generación se realiza iterativamente por un modelo de visión artificial (generalmente, una U-Net) que recibe como entrada su propia salida en el paso anterior. Las representaciones intermedias entre el ruido inicial y la imagen final reciben el nombre de datos latentes.

El primer paso en la configuración de uno de estos modelos es la creación de estos datos latentes, a través de la difusión progresiva y retirada de ruido en una imagen inicialmente nítida. Los eventos de inyección de ruido se denominan transiciones y el procedimiento en su conjunto se conoce como proceso de difusión. Posteriormente, la U-Net es entrenada para revertir dichas transiciones, en un procedimiento opuesto denominado proceso de reversión.

En los dos casos, el ruido gaussiano es extraído de distribuciones bien definidas: durante el proceso de difusión la media y la varianzason fijas, mientras que en el proceso de reversión estos parámetros songenerados dinámicamente por la U-Net. En el primero de los casos, el ruido es agregado paso a paso a la imagen. En el segundo caso, es sustraído/eliminado, también progresivamente, del mismo.

Difusión condicionada y guiada

En la IA generativa, particularmente en aquella utilizada para la creación de obras artísticas, el proceso de difusión incorpora patrones de información (texto, imágenes anteriores) proporcionados por el propio usuario. Esto se realiza a través de mecanismos de condicionamiento y guía del modelo:

-En la difusión condicionada la información en que consiste la condición es inyectada directamente en la red generadora durante el proceso de creación de imagen. La condición puede consistir en una clase de imagen (“tormenta”, “planta”, etc.), en una descripción textual (prompt) o incluso en una imagen anterior. En cada pixel, la media μθ(xt|y) y la varianza σθ(xt|y) de su distribución son funciones, no sólo de la representación xt sino también de la condición y.

-En la difusión guiada, la información de la condición no se integra directamente en la red generadora, en ninguna parte de su arquitectura. Un algoritmo perturba la media ya calculada por la red principal, ajustando el resultado de una manera externa.

A delicate flower

Figura 1. El artista LudovicCreator crea imágenes por medio de modelos de difusión condicionados, como Midjourney o Leonardo AI, usando para ello descripciones textuales. En este caso el «prompt» que sirve como condición es:  «A delicate flower set against a Negative-Positive Paradox, where shifting contrasts and inverted silhouettes cause forms to oscillate between presence and absence. Use contrasting mint green and rich gold to sharpen the illusion and blur the line between figure and ground».

Difusión condicionada: inyección de información en la imagen

En los modelos de difusión condicionada, la limpieza de ruido y construcción de la nueva imagense realizaen función de la información proporcionada por el propio usuario. Como ya señalábamos con anterioridad, lacondición puede adoptar diferentes formas como una clase de objetos (por ejemplo un tipo específico como “tormenta”, un estilo artístico como “acuarela” o incluso un concepto abstracto como “felicidad”), una cadena de texto que contenga la información de la imagen a construir (el prompt del usuario) o una imagen anterior (como sucede en aplicaciones como Stable Diffusion, que permiten construir una nueva imagen a partir de otra anterior).

La información en que consiste la condición se puede incorporar a la U-Net mediante diferentes vías, dependiendo de la implementación. Entre las más usadas se encuentran los mecanismos de atención, la concatenación de mapas de características de la imagen en formación con los de la imagen–condición, o la modulación de las activaciones en una determinada capa.

Capas de atención

Las capas de atención ponen en conexión cada pixel de la imagen con el resto de pixeles así como con la información externa en que consiste la condición. Estas capas muy parecidas a las densamente conectadas si bien en estas últimas los pesos son estáticos y quedan fijados en el entrenamiento, mientras que en la atención los pesos son dinámicos y determinados parcialmente en el proceso de inferencia a partir de los propios datos de entrada.

Por lo general, se usa una suerte de “autoatención ampliada” en la que la matriz de atención no es simétrica, sino que el número de claves es mayor que el de consultas. Estas últimas se crean a partir de los datos gráficos procedentes de las activaciones de la capa anterior (entrada). En la matriz de entrada cada vector representa un pixel. Sus componentes son los valores de salida de dicho pixel en cada uno de los mapas de características de la capa anterior.

El contexto de la atención (es decir, la matriz a partir del cual se crean las claves y los valores) viene formado por los vectores gráficos concatenados con aquellos que representan la información externa que se va a inyectar en la red. Si la condición es una descripción textual, los nuevos vectores son tokens producidos por un transformer a partir del prompt generado por el usuario. Una matriz de proyección asegura que estos últimos tengan la misma dimensión que los vectores gráficos.

Matemáticamente todo ello se expresa a través de las siguientes fórmulas:

Q = WQ · entrada

K = WK · contexto

V = WV · contexto

contexto = entrada + condición

donde + representa la operación de concatenación.

En el caso planteado (condición consistente en descripción textual) la nueva matriz de atención (que se obtiene de multiplicar Q por KT) tendría unas dimensiones de Nx(N+K), donde N es el número de pixeles y K el número de tokens. De este modo, si la resolución de los mapas de características es 16×16 y la cadena de tokens (descripción textual) tiene un tamaño de 20, la matriz de atención tendrá unas dimensiones de 256×276. Cada nuevo vector gráfico de salida se verá influido no sólo por los vector gráficos de la capa anterior, sino también por los tokens portadores de información lingüística procedentes del transformer.

A Prismatic Glacial Vista

Figura 2. La descripción textual de una imagen es convertido por un transformer en una cadena de tokens/vectores. Estos tokens son concatenados con los vectores de la entrada de un mecanismo de atención para crear el contexto de la atención. El prompt de esta ilustración es: «A Prismatic Glacial Vista of towering icebergs, where the light refracts through ancient ice, creating a kaleidoscope of color. Employ a palette of iridescent azure and lavender hues, emphasizing the ethereal and otherworldly nature of the scene». Fuente: LudovicCreator.

Concatenación de mapas de características

Si la condición es una imagen anterior (por ejemplo, cuando se quiere modificar una imagen en los sistemas de arte por IA), ésta suele procesarse través de diferentes capas convolucionales intercaladas por otras de activación.

Los mapas de características resultantes se concatenan posteriormente con los de la U-Net a diferentes alturas de esta última.

Modulación de activaciones

La información relativa a la clase c de la imagen así como a la fase concreta t en que se encuentra el proceso de difusión es codificada (embedding) en vectores de clase y de tiempo. Estos vectores pueden incorporarse al contexto de atención o integrarse en un mapa de características.

En los modelos más recientes, es común que estos vectores se utilicen para modular las activaciones de una capa. Uno de los métodos de modulación más utilizados en la actualidad es FiLM (Feature-wise Linear Modulation), en el cual en cada canal el valor de activación de un pixel se escala por un factor 𝛾 y se desplaza por un valor 𝛽. Los parámetros de 𝛾 y 𝛽 son los mismos para mapa de características y son calculados por un perceptrón multicapas a partir del vector de clase.

Matemáticamente, ello se expresa mediante la siguiente ecuación:

\text{FiLM}(x)_{b,c,h,w} = \gamma_c \cdot x_{b,c,h,w} + \beta_c

donde b representa el lote, c el canal (o mapa de características) y h y w la posición del pixel en la dimensión espacial. Los valores de valores de 𝛾 y 𝛽 son únicos para cada canal.