TITLE:DiT (Diffusion Transformer) #contents *DiT [#j51e4803] -「Diffusion Transformer」の略 -SD3、FLUX.1やQwen-Imageで採用されている画像生成モデル。 参考として、SD1.5やSDXLではU-Net拡散モデル(UNet Diffusion Model)が使われていた。 -(t2iでは)ランダムノイズを元に画像を生成するというコンセプトはU-Net拡散モデルと同じ。 各ステップでの入力である、仕掛かり画像の認識の仕方とプロンプト解釈がU-Netと異なる。LLMで成功した[[Transformer>transformers]]アーキテクチャが採用されている。 -U-Netとの違いは、各ステップでの処理途中の画像について、 U-Net拡散モデルは虫の目と鳥の目とを階層的に使い分けて細部の構造と大域的な構造を各層ごとに処理するが((階層マージのページを見ると分かりやすい……かもしれない。虫の目つまり浅層を中心にマージすることで塗りだけ別のモデルっぽくできるのはこのため。))、 DiTでは画像全体をいきなりバラバラなパッチに切り分けてトークン化し、プロンプトも同列にトークン化、そしてトークン間の関係性を直接分析する……らしい。 -U-Netはもともと画像の構図を分析して各部位にキャプションを付けるセグメンテーションに強くて、 Transformerは自然言語の処理で成功したモデルだということを考慮すれば分かりやすい……かもしれない。 &br; -またDiTモデルは逆拡散過程についても、従来の潜在拡散モデルでなくFlow Matching系のアルゴリズムを採用していることが多い。 **種類 [#d6f526fd] ***DiT [#DiT] 通常のDiT。 画像の特徴量に対してのみTransformerブロックを適用する。 テキストなどの条件付け情報は、ブロックの途中で適応型レイヤー正規化(AdaLN)などを用いて注入される形式が一般的。 画像とテキストが別々の経路で処理される。 ***MMDiT [#MMDiT] Multi-Modal Diffusion Transformersの略。 画像とテキストをそれぞれ独立したTransformerブロックで並列に処理しつつ、アテンション機構(Attention)の部分で相互にお互いの情報を参照し合う。 画像とテキストの双方向の結合がより密接になっている。 **論文 [#fe116b54] -William Peebles, Saining Xie「[[Scalable Diffusion Models with Transformers:https://arxiv.org/abs/2212.09748]]」arXiv -「[[Stable Diffusion 3: Research Paper:https://stability.ai/news/stable-diffusion-3-research-paper]]」 *DiTの長所 [#fce1904b] -参入障壁が低い。[[Transformer>transformers]]は汎用性が高く、プロンプト条件付け等を自然に組み込める上、LLMで培われた高速化技術や学習ノウハウが転用できる。 --U-Net拡散モデルほどには職人技が必要とされない。 --最近の画像生成AIでMMDiTが選ばれているのは、新しくて性能がいいからというだけでなく、U-Net拡散モデルは設計が難しく今さら採用するメリットが薄いという点も大きい。 -プロンプト追従性が高くなりやすい。 U-Net(CNN)は[[多重下請け構造>U-Net#ze61566a]]で、距離的に離れた部位の整合性を取るのは苦手。複数人を描き分けたりするのも苦手で服装が混ざったりする。 DiTは仕掛品の画像全体を一度にトークン化し、画像トークン(制作部門)とプロンプトトークン(営業部門)がワンチームで処理を行う。 複数個体を出力させても、服装などが混ざりにくい。 --ただし、プロンプト追従性については拡散モデル特有の問題もかなり大きい。その点は[[Flow Matching]]の採用により改善されている。 --推奨解像度と異なるサイズの画像を生成させても、理論的にはU-Netより破綻しにくい傾向があるとされる。 --ただし、複数個体の描き分け(Multi-Subject Generation)は画像生成の難問とされており、DiTでも完全に解決したわけではない。 --もともとオリジナルのU-Netは画像の解析だけを行っていたのでプロンプト条件付けを行う機構はなく、U-Net拡散モデルではTransfomerアーキテクチャーからAttension機構だけを借用して条件付けに使っていた。初期のSDの頃のPCスペックでは画像生成モデル全体をTransformer化するのはあまり現実的ではなかった。 -拡張性もU-Netより高いとされる。 U-Netはあくまで画像が主役のアーキテクチャだが、DiTはLLMから来ていることからも分かるように、トークン化さえできれば多様なデータを統一的に扱うことができる。 -ただし、FLUX.1やQwen-Imageで任意の文字列を出力できるようになったのはテキストエンコーダT5やQwen-VLの貢献が大きいらしい。 *DiTの短所 [#t3359a87] -Transformer自体は「画像処理に向いている」というよりは「スケーリング則が効き、ゴリ押ししやすい」技術。SDXLモデル(U-Net拡散モデル)と同程度のパラメータ数だと、予測方式(Flow Matching vs 拡散モデル)による描画傾向の差は大きいがU-NetとDiTでの安定性の違いは一長一短。 -DiTそのものはオブジェクトの拡大縮小に強いわけではない。あくまで構図の認識がU-Net拡散モデルより巧みというだけで、各オブジェクトをどのくらいの大きさで描けるかは学習データによる。 -ニューラルネットワークの各層(Transformerブロック)の働きが[[U-Net]]のようには分かりやすくない。 前のブロックはアウトラインへ影響し、後のブロックがディティールに影響すると観察されたという研究はある([[Δ-DiT: A Training-Free Acceleration Method Tailored for Diffusion Transformers:https://arxiv.org/abs/2406.01125]])。 -素材感や質感、塗りといったごく細部の描写については、虫の目専門部隊を持つU-Net拡散モデルほど強くない、らしい。 ただし細部の描写については、現在主流の画像生成AIは実寸で出力しているわけではなく前後に[[VAE]]によるエンコード/デコードを挟むのでVAEによる影響も大きい。 -また学習コストが高い。LLMと同様、柔軟で抽象的な概念を学習するために多様な教師画像が必要で計算コストも大きい。