generated at
雑に読む "The Illustrated Stable Diffusion"

by Jay Alammar

Stable Diffusionを大まかに分類する
文章理解
CLIP-テキストエンコーダー
77のトークン埋め込みベクトル(768次元)
画像生成
潜在空間やらU-Netやらはここ
どっちやねんnomadoor
オートエンコーダーは入力とほぼ同じものを出力する
潜在空間にあった配列を画像に変換する

Diffusion(拡散)ってなあに?
上の画像のピンク部で行われる(Image Information Creator)
ノイズと埋め込みトークンを受け取って、デコーダーに渡す配列を作る
複数回のステップで行われる
入力テキスト(プロンプト)と、モデルからピックアップした視覚情報に近いlatents arrayを作る
?

Diffusionの仕組み
ノイズ予測器を作る
ある画像にノイズを追加する
ノイズの種類とノイズをかける強さを変えて数十個のパターンを作る
これを全画像で行う
このデータセットでノイズ予測器をトレーニングする
ノイズから画像を生成する
適当なノイズを用意
それと似たノイズを上でつくったデータセットから探す
そこからノイズを除去すれば画像が出てくるよね?
だから西洋美術的な画像だけでデータセットを作れば、出力も西洋美術っぽくなるし、漫画でデータセットを作れば出力も漫画っぽくなる
あれ?、ここまでだと他人の絵をコピペしてるだけやんっていうAIアンチの主張に反論できないぞ?nomadoor
"元データにある画像"ではなくて、"似たような画像"なのでコピペではない
ここまではノイズ除去拡散確率モデル(Denoising Diffusion Probabilistic Modelshttps://arxiv.org/abs/2006.11239)の説明
まだプロンプトも出てきてませんね

高速化
ピクセル画像ではなく潜在的なデータ上での拡散(Latent Diffusion)
Stable Diffusionでは高速化のために画像を圧縮したもので拡散処理をする
オートエンコーダ(図のImage Encoder)で画像を潜在空間に圧縮する
潜在空間上の流れは上と同じ
逆にノイズから生成された画像をオートエンコーダ(図のImage Decoder)で潜在空間から取り出す

条件付け
"プロンプトを理解させて、それに沿った絵を描かせたい"
自然言語のプロンプトからトークン埋め込み(?)を生成するためにTransformerが使われている
Stable DiffusionではClip Text
画像生成コンポーネント(?)よりも言語モデルを入れ替えた方が性能があがる
Photorealistic Text-to-Image Diffusion Models with Deep Language Understandinghttps://arxiv.org/abs/2205.11487
CLIPの訓練方法
これはまた別でやろうnomadoor
画像生成プロセスにプロンプトの情報を入れる
ノイズ予測器を作る段階で、テキスト情報も含ませる必要がある
U-Net内でどんなふうに動いているのか見てみよう
ノイズ予測器(U-Net) テキスト情報なし
ノイズ予測器(U-Net) テキスト情報あり



乾燥卵(かんそうらん)
U-Netわからんnomadoor
ノイズから画像を生成する方のU-Netが特にわからん