Perfusion de NVIDIA: personalización texto-imagen en 100 KB

Perfusion es un método de personalización de texto a imagen desarrollado por investigadores de NVIDIA que ocupa apenas 100 KB de almacenamiento y se entrena en unos 4 minutos. Para situar la cifra: una fotografía de teléfono moderno ocupa entre 3 y 10 MB, entre cien y mil veces más. El trabajo se presentó en agosto de 2023 y está disponible en Research NVIDIA.

El punto de partida del trabajo es un problema conocido en los modelos de generación de imagen: personalizar un modelo para que genere imágenes de un objeto específico requiere ajuste fino extenso, con modelos de varios GB y horas de entrenamiento. Perfusion lo resuelve con actualizaciones dinámicas de rango 1 en el modelo subyacente.

Cómo funciona el mecanismo Key-Locking

El núcleo técnico de Perfusion es el Key-Locking (bloqueo de clave). En los modelos de difusión, la atención cruzada (cross-attention) relaciona los tokens del texto con las características de la imagen durante la generación. Perfusion modifica solo las claves (keys) de esa atención cruzada, no todo el modelo.

Esquema de arquitectura de Perfusion

Cuando el modelo recibe un concepto nuevo (por ejemplo, un peluche específico), bloquea la clave de ese concepto a la clave de su categoría superior (en este caso, «peluche» en general). Esto evita el sobreajuste: el modelo aprende las características específicas del objeto sin perder la capacidad de generarlo en contextos distintos. El camino del Valor (Value) se aprende libremente, lo que captura la apariencia concreta del objeto.

Un componente adicional es la compuerta, que controla con qué intensidad se aplica el concepto aprendido durante la inferencia. Permite ajustar el equilibrio entre fidelidad visual y seguimiento del prompt sin reentrenar el modelo.

Comparación con los métodos actuales

Comparación de Perfusion con Custom-Diffusion, Dreambooth y Textual-Inversion

Perfusion supera a Custom-Diffusion, Dreambooth y Textual-Inversion en los benchmarks evaluados, con mejor alineación con el texto y menos tendencia a reproducir los fondos de las imágenes de entrenamiento. La diferencia principal es el tamaño: 100 KB frente a los varios GB de los métodos anteriores, cinco órdenes de magnitud menos. Los modelos de generación de imagen open source como los de LAION han servido de base para este tipo de investigación.

Composición de conceptos

Composición de múltiples conceptos con Perfusion

Perfusion puede combinar en una sola imagen varios conceptos aprendidos por separado. Si ha aprendido un peluche y una taza de café de forma individual, puede generar una imagen donde el peluche sostiene la taza sin haber visto antes esa combinación. Los conceptos se aprenden de forma individual y solo se combinan durante la ejecución.

Control de la alineación visual-textual

Frente de Pareto de Perfusion: control fidelidad visual vs alineación textual

Con un único modelo de 100 KB, Perfusion cubre todo el espectro entre máxima fidelidad visual al objeto y máxima fidelidad textual al prompt. Ese control se hace en tiempo de inferencia ajustando un parámetro de sesgo, sin necesidad de entrenar versiones distintas. NVIDIA también ha mejorado la eficiencia de Stable Diffusion 3.5 con TensorRT, reduciendo un 40 % el uso de VRAM, lo que refleja el trabajo sostenido de la compañía por modelos de imagen más ligeros.

Personalización con una sola imagen

Cuando se entrena con una sola imagen de referencia, Perfusion mantiene alta fidelidad visual al objeto y sigue bien el texto del prompt. Dreambooth necesita entre 3 y 25 imágenes para conseguir resultados comparables.

Perfusion one-shot: entrenamiento con una sola imagen

Variantes del bloqueo de claves

Comparación de variantes de bloqueo de claves en Perfusion
  • Bloqueo global de claves: mayor variabilidad visual, captura mejor los matices y permite retratar al objeto en situaciones poco habituales (un gato leyendo un libro, un personaje con traje de chef).
  • Bloqueo local de claves: buenos resultados pero menos efectivo que el bloqueo global.
  • Trained-K: mejor compatibilidad con las imágenes de entrenamiento, pero peor alineación con el texto.

Transferencia a modelos ajustados

Un concepto entrenado con Perfusion sobre el modelo de difusión base se transfiere directamente a variantes ajustadas del mismo modelo sin reentrenamiento. Si se ha personalizado un objeto con el modelo base, ese concepto sigue funcionando en versiones estilizadas o ajustadas del modelo.

Transferencia sin entrenamiento de Perfusion a modelos ajustados

Preguntas frecuentes

¿Qué es Perfusion de NVIDIA?

Perfusion es un método de personalización de texto a imagen (T2I) desarrollado por NVIDIA que adapta un modelo generativo a un objeto concreto usando un archivo de 100 KB y 4 minutos de entrenamiento, frente a los varios GB de métodos como Dreambooth.

¿Cómo funciona el Key-Locking?

El Key-Locking bloquea las claves de atención cruzada de un concepto nuevo a las claves de su categoría superior. Esto evita el sobreajuste al objeto concreto y permite combinarlo con otros conceptos durante la generación.

¿Qué diferencia hay entre Perfusion y Dreambooth?

Dreambooth necesita entre 3 y 25 imágenes de referencia y genera modelos de varios GB. Perfusion funciona con una sola imagen y produce un modelo de 100 KB, con resultados comparables o superiores en los benchmarks publicados.

¿Está disponible el código de Perfusion?

El proyecto se publicó en la web de NVIDIA Research con ejemplos y demostraciones. El código completo no se publicó como open source en el momento del anuncio.

Scroll al inicio