Adding Conditional Control to Text-to-Image Diffusion Models
https://gyazo.com/1562f17f29884cbfdfb6dedd168c79c9
Abstract
事前学習済みの大規模な拡散モデルに対して追加で入力条件に対応できるように追加学習方法を提案
追加の入力によってdiffusionモデルの出力に対するサポートを行うend to endのアーキテクチャ
50k以下のデータセットでもrobusかつ、diffsuionのfine tuningと同じくらい早く個人のデバイスでも可能
(LoRAとかもそうだけど、fine-tuningではなく差分を学習する感じ)
目的
大規模モデルでも特定のタスクを解きたい!
問題点
1. データ数:特定ドメイン特定の問題に対して大規模なモデルを学習させる場合、オーバーフィッティングを回避し、汎化能力を維持するためのロバストなニューラルネットワークの学習方法が必要
2. 計算資源:大規模な計算クラスタが常に利用できるわけではない.特定のタスクに対して大規模なモデルを最適化するためには、高速なトレーニング方法が重要になるため、事前に学習させた重みの活用や、微調整戦略や転移学習が必要.
3. end-to-endで達成したい:画像処理周りの問題はユーザによるコントロールであったり、アノテーションなどによって制御させることがあるが、depth-to-image, pose-to-imageとかになるとなかなかユーザレベルの制御では難しいのでend-to-endで処理を実現したい
Method
コアコンセプトとしては元のモデル(locked)とそのコピー(trainable)を繋げて、コピーの方を学習させている。コピーの方には"zero convolution"という初期重み0のconvを差し込むことにより、学習初期は元のモデルと出力が変わらないようにして安定して学習が進むようにしている。=(つまりtraining開始時には効果は全く出ない, zero convという初めは重み0で初期化された畳込みネットワークが使用されている)
- SDのUNET部分に差し込んでいる
メリット
- 学習時はcontrol net(右側部分)だけを学習すれば良いような感じになっている
- どんなconditionでもアーキテクチャ一緒で使えるのはいい
- 学習を安定させ、高速に学習を進められるようにしています。
https://gyazo.com/d3c43db21ce7e9c095c24e55ba11a6c5
https://gyazo.com/88124e4171cce58ec0cfc75485deaab2
元の重み、新しい重みを”locked copy”(グレー), “trainable copy”(青)と呼んでいる
zero convは重みもバイアスもゼロで初期化された1x1のconvによって接続されている
code:des.txt
ControlNetは、大規模な拡散モデルの重みを「トレーニング可能なコピー」と「ロックされたコピー」にクローン化します。ロックされたコピーは数十億枚の画像から学習したネットワーク能力を保持し、トレーニング可能なコピーはタスク固有のデータセットでトレーニングして条件制御を学びます。トレーニング可能なニューラルネットワークブロックとロックされたニューラルネットワークブロックは、「ゼロコンボリューション」と呼ばれる独自のタイプのコンボリューション層で接続されており、コンボリューションの重みはゼロから最適化されたパラメーターまで学習しながら徐々に大きくなっていきます。生産に適した重みが保持されるため、異なるスケールのデータセットでもロバストな学習が可能です。ゼロコンボリューションはディープフィーチャーに新たなノイズを加えないため、ゼロから新しいレイヤーをトレーニングするのに比べ、diffusionモデルのファインチューニングのようなスピードでトレーニングを行うことができ
ます。
補足
controlnetは64x64のlatent imageに合わせるようなtiny model(512x512→64x64)をもつ
図3ではEncoder Blockは4つだが、実際はそれらは3つずつ存在している.
Training
学習中、50%のテキストプロンプトctをランダムに空文字列に置き換え
ControlNetが入力条件マップ(Cannyエッジマップや人間の落書きなど)から意味内容を認識することが容易になる
SDモデルにとってプロンプトが見えない場合、エンコーダはプロンプトの代わりとして入力制御マップからより多くの意味内容を学習する傾向がある(promptに頼らず条件画像で生成できるようにするようなモチベーション)
https://gyazo.com/d05d2dbc4a28015f2d95f449409ae485
学習の改善手法
限られた計算資源の中では
- middleだけ繋げることでtraining speedがx1.6.結合を解いた部分は途中からつなげても大丈夫みたい
Large-Scale Training
control netを十分学習させる
stable diffusionの全重みと結合させて結合させることでより問題に特化したモデルになる
→実際にwebuiのcontrol netで使用されているのはどっちなのか?(cannyとかはデータが手に入りやすいから大規模モデルということ?)
Experiment/Result
settings
CFG-Scale : 9.0
sampler : DDIM
step : 20
default prompt: “a professional, detailed, high-quality image”がdefaultとして与えられる
Automatic : BLIPで得られたprompt
User prompt:userが与えたprompt
種類
Canny
Pose
Scribble
など
HED
HEDは境界がメインで高周波成分はあまり捕らえていない(象の人形のボーダーとか)
https://gyazo.com/8df8b9fcd3712bd02112bcbfd0806eb9
Canny
しっかりロゴとか真似したい時に使えば良さそう
https://gyazo.com/b653541a1dbf856cb409431a630dfa53
segmentation
空間的な一貫性が保たれている
https://gyazo.com/2dade8b1c80218480d302de4520c261f
depth
depthに関しては結構&マシンパワーが時間かかっている
https://gyazo.com/7e88166be39c3a0e289705df2bd9ac55
sudden converge
zero-convolutionを使用しているため、突然学習結果が収束し、targetに適応する現象に陥る
https://gyazo.com/3296abfae21ba0fed4c2b79d1856b067
conparision
https://gyazo.com/eb017ea334b18b37e27d898864bd8d66
https://gyazo.com/e5719a559514896b612c438d8787f97b
https://gyazo.com/148a8e82fd60597178f8730e217b3714
step事でのcontrol netの効かせ具合
どのstepまでcontrol net効かせるかみたいなことも決めることが可能(sd web uiでも設定にある)
https://gyazo.com/8e3821ebcad5e176032fb79e670dab01
Discussion
vqganとも比較を行っている
https://gyazo.com/83dba6b665e1a69ff0335d5903d41d12
shows that when the semantic interpretation is wrong, the model may have difficulty to generate correct contents.
promptと条件画像を合わせて使った際に意味的なブレンドさせることが難しい時がある
Reference / Papers to read next
Hypernetwork
- 1 Y. Alaluf, O. Tov, R. Mokady, R. Gal, and A. H. Bermano. Hyperstyle: Stylegan inversion with hypernetworks for real image editing. 2021.
- 10 T. M. Dinh, A. T. Tran, R. Nguyen, and B.-S. Hua. Hyperinverter: Improving stylegan inversion via hypernetwork. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern
Recognition, pages 11389–11398, 2022.
- 44 R. Rombach, A. Blattmann, D. Lorenz, P. Esser, and B. Ommer. High-resolution image synthesis with latent diffusion models, 2021.
novelai improvements on stable diffusion, 2022.