SoraとかFlux.1とかSD3で使われてる、Diffusion Transformer(DiT)をよく知らなかったから、ざっくり勉強していた。
まだざっくりした理解だけど、latentをシーケンスに変形したものと、プロンプトと時間情報を条件として共にtransformerブロックに入力し、予測ノイズを出力する、みたいな感じかな。

なんかLatent Diffusion Modelに比べてずいぶんシンプルな構造だなあ、というのが第一印象。LDMではU-Net構造を用いて、画像の全体構造から細部構造にかけて順番に処理していくところが、ちょっと人間のお絵描きプロセスを模倣してる部分があったようにも思ったが、DiTではノイズをtransformerに入れて、除去すべきノイズを直接推論するというのは、LLMみたいだし、力技というかそれでいけるんや…という感想。

これはDiTの原理の部分だから、各実装はもうちょっと複雑なんだろうとは思うが、まあぼちぼち見ていくか。

フォロー

reddit.com/r/LocalLLaMA/commen
ググって見つけたFluxのアーキテクチャ図。なんだこれ。と思ったけどテキストエンコーダーがCLIPとT5 Encoderの2系統あって、このうちT5 Encoderでもself attentionしてるところがオリジナルのDiTと比較すると複雑さを増す主因になってるのかな。

なんで各ブロックをこう繋ぐと精度高い絵が出るのかは全く分からんけど、そう繋いだらうまくいくというなら、受け入れるしかあるまい。

henatips.com/page/63/
SD3もなんだか複雑だなあ。眠くなってきたのでまた今度見よう…

ログインして会話に参加
Fedibird

様々な目的に使える、日本の汎用マストドンサーバーです。安定した利用環境と、多数の独自機能を提供しています。