今回は、ByteDanceの研究チームが開発した「UNO」と呼ばれる画期的な画像生成フレームワークについて紹介します。このColabノートを使って、UNOの機能を実際に試してみましょう。
セットアップ手順
まずはGitHubからリポジトリをクローンします。
# UNO-FLUXリポジトリをHugging Faceからクローン
!git clone https://huggingface.co/spaces/MakiAi/UNO-FLUX-local
次に、クローンしたリポジトリに移動します。
# UNO-FLUXディレクトリに移動
%cd /content/UNO-FLUX-local
必要なライブラリをインストールします。
# requirements.txtに記載された依存ライブラリをインストール
!pip install -r requirements.txt
Hugging Face APIトークンを設定します。
# Hugging Face APIトークンを環境変数に設定
# 注意: このトークンはColab上で安全に保存されるようにuserdataから取得しています
from google.colab import userdata
import os
os.environ['HF_TOKEN'] = userdata.get('HF_TOKEN')
アプリケーションを起動します。
# アプリケーションの起動
# これによりUNOのウェブインターフェースが使用可能になります
!python app.py
最後に、ディレクトリの内容を確認します。
# ディレクトリ内のファイルとフォルダを一覧表示
!ls
UNOとは?
UNOは「Less-to-More Generalization: Unlocking More Controllability by In-Context Generation」というタイトルの研究から生まれた、単一の被写体から複数の被写体へと拡張可能な普遍的なフレームワークです。ByteDanceの研究チームによって開発されたこのモデルは、強力な汎化能力を持ち、多様なタスクを1つのモデルで統一することができます。
UNOの仕組み
UNOは主に2つの重要な機能強化を導入しています:
-
Progressive Cross-Modal Alignment(段階的なクロスモーダルアライメント)
- ステージI:単一被写体のインコンテキスト生成データを使用して、事前学習済みのテキスト→画像(T2I)モデルを被写体→画像(S2I)モデルに微調整
- ステージII:生成された複数被写体のデータペアで継続的にトレーニング
-
Universal Rotary Position Embedding(UnoPE)
- 視覚的な被写体制御をスケールアップする際に生じる属性混同問題を効果的に緩和する能力をUNOに提供
UNOの特徴と利点
- データスケーラビリティの課題解決: 単一被写体から複数被写体データセットへの移行と拡張の難しさを克服
- 被写体拡張性の向上: 従来の単一被写体生成に限定された手法から、複数被写体のシナリオにも対応
- 高い一貫性のあるデータ合成パイプライン: 拡散トランスフォーマーの本質的なインコンテキスト生成能力を活用
- 強力な汎化能力: 様々な画像生成タスクに対応可能
実用例と応用
UNOは以下のような様々なシナリオで活用できます:
- 複数の被写体を含む画像の生成
- 異なるスタイルや環境での被写体の表現
- 特定の被写体の特性を保持しながらの創造的な画像生成
技術的詳細
論文では、UNOはディフュージョントランスフォーマーの内在的なインコンテキスト生成能力を活用し、高い一貫性を持つ複数被写体のペアデータを生成します。さらに、段階的なクロスモーダルアライメントと普遍的なロータリーポジションエンベディングを導入することで、テキスト→画像モデルから反復的に訓練された複数画像条件付き被写体→画像モデルを実現しています。
結論
UNOは、単一被写体から複数被写体へと拡張可能な画像生成の新たなフレームワークとして、高い一貫性を保ちながら制御性を確保することができます。ByteDanceの研究チームによるこの革新的なアプローチは、画像生成の分野に新たな可能性をもたらしています。
この研究に関する詳細は、論文「Less-to-More Generalization: Unlocking More Controllability by In-Context Generation」(arXiv:2504.02160)を参照してください。
GoogleColab📒ノートブック

コメント