Ángulo de Anderson
UniTune: La técnica de edición de imágenes neuronal de Google como alternativa

Google Research, al parecer, está atacando la edición de imágenes basada en texto desde varios frentes, y, presumiblemente, espera a ver qué “funciona”. Calentando los talones de la publicación de la semana pasada de su artículo de Imagic, el gigante de la búsqueda ha propuesto un método adicional basado en difusión latente para realizar ediciones de imágenes imposibles mediante comandos de texto, esta vez llamado UniTune.
Según los ejemplos dados en el nuevo artículo del proyecto, UniTune ha logrado un grado extraordinario de desentanglement de la pose semántica y la idea de la verdadera contenido de la imagen:

El control de la composición semántica de UniTune es excepcional. Note cómo en la fila superior de imágenes, las caras de las dos personas no se han distorsionado por la transformación extraordinaria en el resto de la imagen de origen (derecha). Fuente: https://arxiv.org/pdf/2210.09477.pdf
Como sabrán los fanáticos de Stable Diffusion, aplicar ediciones a secciones parciales de una imagen sin alterar adversamente el resto de la imagen puede ser una operación complicada, a veces imposible. Aunque las distribuciones populares como AUTOMATIC1111 pueden crear máscaras para ediciones locales y restringidas, el proceso es tortuoso y a menudo impredecible.
La respuesta obvia, al menos para un practicante de visión por computadora, es interponer una capa de segmentación semántica que pueda reconocer y aislar objetos en una imagen sin intervención del usuario, y, de hecho, han habido varias iniciativas recientes en esta línea de pensamiento.
Otra posibilidad para bloquear operaciones de edición de imágenes neuronales desordenadas y entrelazadas es aprovechar el influyente módulo de preentrenamiento de lenguaje-imagen contrastivo de OpenAI (CLIP) que se encuentra en el corazón de los modelos de difusión latente como DALL-E 2 y Stable Diffusion, para actuar como un filtro en el punto en que un modelo de texto a imagen está listo para enviar un render interpretado de regreso al usuario. En este contexto, CLIP debería actuar como un centinela y módulo de control de calidad, rechazando renders malformados o inadecuados. Esto está a punto de ser instituido (enlace de Discord) en el portal de API de DreamStudio de Stability.ai.
Sin embargo, como CLIP es básicamente el culpable y la solución en tal escenario (porque esencialmente también informó la forma en que se evolucionó la imagen), y como los requisitos de hardware pueden exceder lo que probablemente esté disponible localmente para un usuario final, este enfoque puede no ser ideal.
Lenguaje comprimido
El UniTune propuesto “afina” un modelo de difusión existente, en este caso, el propio Imagen de Google, aunque los investigadores afirman que el método es compatible con otras arquitecturas de difusión latente, para que un token único se inyecte en él, que se puede invocar incluyéndolo en una solicitud de texto.
En apariencia, esto suena como DreamBooth de Google, actualmente una obsesión entre los fanáticos y desarrolladores de Stable Diffusion, que puede inyectar personajes o objetos nuevos en un punto de referencia existente, a menudo en menos de una hora, en función de un puñado de imágenes de origen; o como Textual Inversion, que crea archivos “sidecar” para un punto de referencia, que se tratan como si se hubieran entrenado originalmente en el modelo, y pueden aprovechar los vastos recursos del modelo modificando su clasificador de texto, lo que da como resultado un archivo pequeño (en comparación con los puntos de referencia mínimos de 2 GB de DreamBooth).
De hecho, los investigadores afirman que UniTune rechazó ambos enfoques. Encontraron que Textual Inversion omitió demasiados detalles importantes, mientras que DreamBooth ‘funcionó peor y tardó más’ que la solución que finalmente adoptaron.
No obstante, UniTune utiliza el mismo enfoque de “metaprompt” semántico encapsulado que DreamBooth, con cambios entrenados invocados por palabras únicas elegidas por el entrenador, que no entrarán en conflicto con ningún término que actualmente exista en un modelo de lanzamiento público laboriosamente entrenado.
‘Para realizar la operación de edición, muestreamos los modelos afinados con la solicitud “[rare_tokens] edit_prompt” (por ejemplo, “beikkpic dos perros en un restaurante” o “beikkpic un minion”).’
El proceso
Aunque es desconcertante por qué dos artículos casi idénticos, en términos de su funcionalidad final, deberían llegar de Google en la misma semana, hay, a pesar de una gran cantidad de similitudes entre las dos iniciativas, al menos una diferencia clara entre UniTune e Imagic: el último utiliza solicitudes de lenguaje natural “no comprimidas” para guiar las operaciones de edición de imágenes, mientras que UniTune entrena en tokens únicos al estilo de DreamBooth.
Por lo tanto, si estuviera editando con Imagic y deseara efectuar una transformación de este tipo…

Del artículo de UniTune – UniTune se establece contra el marco de edición neuronal rival favorito de Google, SDEdit. Los resultados de UniTune están en la parte derecha, mientras que la máscara estimada se ve en la segunda imagen desde la izquierda.
… en Imagic, ingresarías ‘la tercera persona, sentada en el fondo, como un monstruo peludo adorable’.
El comando equivalente de UniTune sería ‘El tipo de atrás como [x]’, donde x es la palabra única y extraña que se vincula al concepto bien entrenado asociado con el personaje del monstruo peludo.
Mientras que varias imágenes se alimentan en DreamBooth o Textual Inversion con la intención de crear una abstracción de estilo deepfake que se puede comandar en muchas poses, tanto UniTune como Imagic alimentan una sola imagen al sistema, la imagen original e impecable.
Esto es similar a la forma en que muchos de las herramientas de edición basadas en GAN de los últimos años han operado, convirtiendo una imagen de entrada en códigos latentes en el espacio latente de GAN y luego dirigiendo esos códigos a otras partes del espacio latente para la modificación (es decir, introduciendo una imagen de una persona joven de cabello oscuro y proyectándola a través de códigos latentes asociados con “viejo” o “rubio”, etc.).
Sin embargo, los resultados, en un modelo de difusión y mediante este método, son bastante sorprendentemente precisos en comparación, y mucho menos ambiguos:
El proceso de afinación
El método UniTune envía esencialmente la imagen original a través de un modelo de difusión con un conjunto de instrucciones sobre cómo debe ser modificada, utilizando los vastos repositorios de datos disponibles entrenados en el modelo. En efecto, puede hacer esto ahora con la funcionalidad img2img de Stable Diffusion, pero no sin deformar o cambiar de alguna manera las partes de la imagen que preferiría conservar.
During el proceso de UniTune, el sistema se afina, lo que significa que UniTune fuerza al modelo a reanudar el entrenamiento, con la mayoría de sus capas desbloqueadas (ver a continuación). En la mayoría de los casos, la afinación reducirá los valores generales de pérdida de un modelo de alto rendimiento en favor de inyectar o refinar algún otro aspecto que se desea crear o mejorar.
Sin embargo, con UniTune parece que la copia del modelo que se actúa, aunque puede pesar varios gigabytes o más, se tratará como un “caparazón” desechable y descartado al final del proceso, habiendo servido un solo propósito. Este tipo de tonelaje de datos casuales se está convirtiendo en una crisis de almacenamiento diaria para los fanáticos de DreamBooth, cuyos propios modelos, incluso cuando se podan, no son menos de 2 GB por sujeto.
Al igual que con Imagic, la afinación principal en UniTune ocurre en las dos capas inferiores de las tres capas en Imagen (base 64px, 64px>256px y 256px>1024px). A diferencia de Imagic, los investigadores ven algún valor potencial en optimizar la afinación también para esta última y más grande capa de superresolución (aunque no lo han intentado aún).
Para la capa de 64px más baja, el modelo se sesga hacia la imagen base durante el entrenamiento, con múltiples pares duplicados de imagen/texto alimentados al sistema durante 128 iteraciones con un tamaño de lote de 4, y con Adafactor como la función de pérdida, que opera a una tasa de aprendizaje de 0,0001. Aunque el codificador T5 solo se congela durante esta afinación, también se congela durante el entrenamiento principal de Imagen.
La operación anterior se repite luego para la capa de 64>256px, utilizando el mismo procedimiento de aumento de ruido empleado en el entrenamiento original de Imagen.
Muestreo
Hay muchos métodos de muestreo posibles por los cuales los cambios realizados pueden ser extraídos del modelo afinado, incluyendo la Guía de clasificador libre (CFG), una característica también de Stable Diffusion. CFG define básicamente la medida en que el modelo está libre de “seguir su imaginación” y explorar las posibilidades de renderizado, o en su lugar, la medida en que debe adherirse a los datos de entrada de origen y hacer menos cambios drásticos o espectaculares.

Al igual que Textual Inversion (un poco menos con DreamBooth), UniTune es susceptible a aplicar estilos gráficos distintos a las imágenes originales, así como ediciones más fotorealistas.
Los investigadores también experimentaron con la técnica de “inicio tardío” de SDEdit, donde el sistema se alienta a preservar los detalles originales al ser solo parcialmente “ruido” desde el principio, pero en lugar de mantener sus características esenciales. Aunque los investigadores solo lo usaron en la capa más baja (64px), creen que podría ser una técnica de muestreo útil en el futuro.
Los investigadores también explotaron prompt-to-prompt como una técnica de texto adicional para condicionar el modelo:
‘En la configuración “prompt to prompt”, encontramos que una técnica que llamamos Guía de prompt es particularmente útil para afinar la fidelidad y la expresividad.
‘La Guía de prompt es similar a la Guía de clasificador libre, excepto que la línea de base es un prompt diferente en lugar del modelo no condicionado. Esto guía al modelo hacia la delta entre los dos prompts.’
Sin embargo, la guía de prompt, según los autores, solo se necesitó ocasionalmente en casos donde CFG no logró obtener el resultado deseado.
Otra nueva técnica de muestreo encontrada durante el desarrollo de UniTune fue interpolación, donde las áreas de la imagen son lo suficientemente distintas que tanto la imagen original como la alterada son muy similares en composición, lo que permite una interpolación más “naïve” para ser utilizada.

La interpolación puede hacer que los procesos de mayor esfuerzo de UniTune sean redundantes en casos donde las áreas para transformar son discretas y bien marginadas.
Los autores sugieren que la interpolación podría funcionar tan bien que podría usarse como configuración predeterminada y observan también que tiene el poder de efectuar transformaciones extraordinarias en casos donde no se necesitan negociar occlusiones complejas mediante métodos más intensivos.
UniTune puede realizar ediciones locales con o sin máscaras de edición, pero también puede decidir unilateralmente dónde colocar ediciones, con una combinación inusual de poder interpretativo y esencialización robusta de los datos de entrada de origen:

En la imagen superior de la segunda columna, UniTune, encargado de insertar un ‘tren rojo en el fondo’, lo ha colocado en una posición apropiada y auténtica. Note en los otros ejemplos cómo se mantiene la integridad semántica de la imagen de origen incluso en medio de cambios extraordinarios en el contenido de píxeles y estilos centrales de las imágenes.
Latencia
Aunque la primera iteración de cualquier sistema nuevo va a ser lenta, y aunque es posible que la participación de la comunidad o el compromiso corporativo (no suele ser ambos) eventualmente aceleren y optimicen una rutina intensiva en recursos, tanto UniTune como Imagic están realizando algunas maniobras de aprendizaje automático bastante importantes para crear estas ediciones increíbles, y es cuestionable hasta qué punto un proceso tan voraz de recursos podría reducirse a un uso doméstico, en lugar de acceso a través de API (aunque este último puede ser más deseable para Google).
En este momento, el viaje de ida y vuelta desde la entrada hasta el resultado es de unos 3 minutos en una GPU T4, con unos 30 segundos adicionales para la inferencia (al igual que cualquier rutina de inferencia). Los autores admiten que esta es una latencia alta y que apenas califica como “interactiva”, pero también señalan que el modelo permanece disponible para ediciones adicionales una vez afinado inicialmente, hasta que el usuario termine con el proceso, lo que reduce el tiempo por edición.
Publicado por primera vez el 21 de octubre de 2022.














