UNO : un modèle de génération d'images conditionnel multi-sujets développé par ByteDance 56

小编 ·

UNO : un modèle de génération d'images conditionnel multi-sujets développé par ByteDance

UNO est un modèle de génération d'images conditionnel multi-sujets développé par l'équipe de recherche de ByteDance. Il exploite la capacité de génération en contexte des transformateurs de diffusion pour produire des données appariées multi-sujets hautement cohérentes.

UNO : un modèle de génération d'images conditionnel multi-sujets développé par ByteDance

Qu'est-ce que UNO ?

UNO est un modèle de génération d'images conditionnelles multi-sujets développé par l'équipe de recherche de ByteDance. Grâce à la capacité de génération contextuelle du transformateur de diffusion, il génère des données appariées multi-sujets à haute cohérence.

Caractéristiques principales d'UNO

  • Génération conditionnelle multi-images : prend en charge la génération d'images pilotée par un ou plusieurs sujets, capable de générer de nouvelles images à partir d'une ou plusieurs images de référence.

  • Alignement progressif intermodal : améliore la cohérence de la génération en alignant progressivement différentes modalités (comme le texte et l'image), divisé en deux étapes. La première étape utilise les données générées contextuellement à un seul sujet pour affiner un modèle pré-entraîné texte-vers-image, le transformant ainsi en un modèle sujet-vers-image ; la deuxième étape poursuit l'entraînement sur les paires de données multi-sujets générées.

  • Encodage positionnel rotatif universel : prend en charge la génération d'images dans plusieurs résolutions et rapports d'aspect, et atténue efficacement le problème de confusion d'attributs lors de l'extension du contrôle des sujets visuels.

UNO核心特点.webp

Mécanismes clés d'UNO :

  • Alignement progressif intermodal (Progressive Cross-Modal Alignment) : divisé en deux étapes. La première étape utilise les données générées contextuellement à un seul sujet pour affiner un modèle pré-entraîné texte-vers-image, le transformant ainsi en un modèle sujet-vers-image ; la deuxième étape poursuit l'entraînement sur les paires de données multi-sujets générées.

  • Encodage positionnel rotatif universel (Universal Rotary Position Embedding, UnoPE) : atténue efficacement le problème de confusion d'attributs lors de l'extension du contrôle des sujets visuels et prend en charge la génération d'images dans plusieurs résolutions et rapports d'aspect.

Fonctionnement d'UNO

UNO exploite la capacité de génération contextuelle du transformateur de diffusion pour générer des données appariées multi-sujets à haute cohérence. Il est entraîné de manière itérative à partir d'un modèle texte-vers-image, et grâce à ses mécanismes uniques d'alignement progressif intermodal et d'encodage positionnel rotatif universel, il atteint à la fois une haute cohérence et un contrôle optimal dans la génération pilotée par un ou plusieurs sujets.

UNO工作原理.jpg

Scénarios d'application d'UNO

  • Génération à sujet unique : génération d'images à partir d'une seule image de référence, par exemple générer l'image d'une horloge sur une plage à partir d'une photo d'horloge.

  • Génération multi-sujets : génération d'images à partir de plusieurs images de référence, par exemple utiliser l'image d'une poupée et celle d'une boule de cristal comme références pour générer l'image d'une poupée dans une boule de cristal.

  • Génération contextuelle : génération d'images à haute cohérence grâce à des invites contextuelles, par exemple fournir une invite telle que « une horloge sur une plage avec un parasol rouge » et, combinée à l'image de référence de l'horloge, générer une image correspondant à la description.

Comment utiliser UNO

Configuration de l'environnement :

  • Créer un environnement virtuel et installer les dépendances :

python -m venv uno_env
source uno_env/bin/activate
pip install -r requirements.txt
  • Télécharger les poids du modèle : téléchargement automatique (le code télécharge automatiquement lors de l'exécution du script d'inférence), ou utiliser manuellement huggingface-cli pour télécharger les poids dans le répertoire spécifié.

Exemple d'inférence : exécutez la commande suivante pour générer une image :

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

Entraînement : exécutez le script d'entraînement :

accelerate launch train.py

Liens connexes

Page du projet :https://bytedance.github.io/UNO

Dépôt GitHub :https://github.com/bytedance/UNO

Article arXiv :https://arxiv.org/abs/2504.02160

Démo :https://huggingface.co/spaces/bytedance-research/UNO-FLUX