UNO: un modelo de generación de imágenes condicional con múltiples sujetos desarrollado por ByteDance 58

小编 ·

UNO: un modelo de generación de imágenes condicional con múltiples sujetos desarrollado por ByteDance

UNO es un modelo de generación de imágenes condicional con múltiples sujetos desarrollado por el equipo de investigación de ByteDance. Aprovecha la capacidad de generación en contexto de los transformadores de difusión para producir datos emparejados de múltiples sujetos con alta consistencia.

UNO: un modelo de generación de imágenes condicional con múltiples sujetos desarrollado por ByteDance

¿Qué es UNO?

UNO es un modelo de generación de imágenes condicionado por múltiples sujetos desarrollado por el equipo de investigación de ByteDance, que genera datos de emparejamiento de múltiples sujetos con alta consistencia mediante la capacidad de generación contextual de un transformador de difusión.

Características principales de UNO

  • Generación condicionada por múltiples imágenes: admite la generación de imágenes impulsada por un solo sujeto o por múltiples sujetos, capaz de generar nuevas imágenes a partir de una o varias imágenes de referencia.

  • Alineación progresiva cross-modal: mejora la consistencia de la generación mediante la alineación gradual de diferentes modalidades (como texto e imagen), dividida en dos fases. En la primera fase se ajustan los datos generados con contexto de un solo sujeto para refinar un modelo preentrenado de texto a imagen, convirtiéndolo en un modelo de sujeto a imagen; la segunda fase continúa el entrenamiento con los pares de datos de múltiples sujetos generados.

  • Embeddings posicionales rotatorios universales: admite la generación de imágenes en múltiples resoluciones y relaciones de aspecto, y puede mitigar eficazmente el problema de confusión de atributos que surge al ampliar el control de sujetos visuales.

UNO核心特点.webp

Mecanismos clave de UNO:

  • Alineación progresiva cross-modal (Progressive Cross-Modal Alignment): dividida en dos fases. En la primera fase se ajustan los datos generados con contexto de un solo sujeto para refinar un modelo preentrenado de texto a imagen, convirtiéndolo en un modelo de sujeto a imagen; la segunda fase continúa el entrenamiento con los pares de datos de múltiples sujetos generados.

  • Embeddings posicionales rotatorios universales (Universal Rotary Position Embedding, UnoPE): mitiga eficazmente el problema de confusión de atributos que aparece al ampliar el control de sujetos visuales, y admite la generación de imágenes en múltiples resoluciones y relaciones de aspecto.

¿Cómo funciona UNO?

UNO aprovecha la capacidad de generación contextual del transformador de difusión para generar datos de emparejamiento de múltiples sujetos con alta consistencia. Se entrena de forma iterativa a partir de un modelo de texto a imagen y, gracias a sus singulares mecanismos de alineación progresiva cross-modal y de embeddings posicionales rotatorios universales, consigue mantener tanto una alta consistencia como un control preciso en la generación impulsada por uno o por múltiples sujetos.

UNO工作原理.jpg

Escenarios de aplicación de UNO

  • Generación de un solo sujeto: genera imágenes a partir de una imagen de referencia; por ejemplo, a partir de la imagen de un reloj se puede generar una imagen de ese reloj en la playa.

  • Generación de múltiples sujetos: genera imágenes a partir de varias imágenes de referencia; por ejemplo, usando como referencia la imagen de una muñeca y la imagen de una bola de cristal, se puede generar la imagen de la muñeca dentro de la bola de cristal.

  • Generación contextual: genera imágenes de alta consistencia mediante indicaciones contextuales; por ejemplo, dada la indicación "un reloj en la playa con una sombrilla roja", combinada con la imagen de referencia del reloj, se genera una imagen que se ajusta a la descripción.

Cómo usar UNO

Configuración del entorno:

  • Crea un entorno virtual e instala las dependencias:

python -m venv uno_env
source uno_env/bin/activate
pip install -r requirements.txt
  • Descarga los pesos del modelo: descarga automática (el código los descarga automáticamente al ejecutar el script de inferencia), o descárgalos manualmente usando huggingface-cli en el directorio especificado.

Ejemplo de inferencia: ejecuta el siguiente comando para generar una imagen:

python inference.py --prompt "A clock on the beach is under a red sun umbrella" --image_paths "assets/clock.png" --width 704 --height 704

Entrenamiento: ejecuta el script de entrenamiento:

accelerate launch train.py

Enlaces relacionados

Página del proyecto:https://bytedance.github.io/UNO

Repositorio de GitHub:https://github.com/bytedance/UNO

Paper en arXiv:https://arxiv.org/abs/2504.02160

Demo:https://huggingface.co/spaces/bytedance-research/UNO-FLUX