NestedUNetの技術について
https://arxiv.org/abs/2310.15111
(以下、日本語訳)
拡散モデルは、高品質の画像やビデオを生成するための事実上のアプローチですが、計算と最適化の課題により、高次元モデルの学習は依然として困難な作業です。既存の方法では、多くの場合、ピクセル空間でカスケード モデルをトレーニングするか、個別にトレーニングされた自動エンコーダーのダウンサンプリングされた潜在空間を使用します。この論文では、高解像度の画像とビデオを合成するためのエンドツーエンドのフレームワークである Matryoshka Diffusion Models (MDM) を紹介します。我々は、複数の解像度で入力のノイズを共同で除去し、小規模な入力の特徴とパラメータが大規模な入力の特徴とパラメータ内にネストされる NestedUNet アーキテクチャを使用する拡散プロセスを提案します。さらに、MDM により、低解像度から高解像度への段階的なトレーニング スケジュールが可能になり、高解像度生成の最適化が大幅に向上します。クラス条件付き画像生成、高解像度のテキストから画像へのアプリケーション、テキストからビデオへのアプリケーションなど、さまざまなベンチマークでアプローチの有効性を実証します。注目すべきことに、単一ピクセル空間モデルを最大 1024x1024 ピクセルの解像度でトレーニングでき、わずか 1,200 万枚の画像を含む CC12M データセットを使用した強力なゼロショット一般化を実証できます。
sd-scripts専用のとしあき製追加モジュール
※情報整理中につき、適当なこと書いています。
経緯
NestedUNetの技術をLoRA学習で使用するために、
としあきがツールを支給してくださった。
NestedUNetの考え方の一部をLoRA学習に取り入れた、
概要・解像度に合わせて学習対象の層の深度をオンタイムで切り替えて学習を行うためのモジュール。
121無念Nameとしあき23/10/27(金)21:35:07 ID:(省略)
たておつfu2727962.zip
NestedUNetの考え方の一部をLoRA学習に取り入れたモジュール
元論文: https://arxiv.org/abs/2310.15111 [link]説明書と低解像度な素材をお手軽に用意するための一括リサイズスクリプト同梱させた
モジュール本体はこないだ配布したやつのままいつも通り再配自由にしていいので保管とかは任せた
この場を借りて御礼申し上げます。
特徴
- 複数解像度で学習させる。
まず低解像度で学習して細かい部分まで学習させないようにして、
そのあと高解像度で学習するっぽい。 - 下記モジュール2種の組み合わせ。
- LoRA-C3Lier(LierLa)の派生。NestedUNetに対応
- Norm(LyCORISページ参照)
ダウンロード、使い方
下記をダウンロード。
使い方は説明書.txtに書いています。
画像のフォルダ(仮題)
小さい画像を準備して、既存ディレクトリのサブセットと並列に配置する。
(複数の解像度の画像を増やすこと以外は、既存の配置ルールと同じ。)
train_dir
├ A:サブセットフォルダ(従来のLoRAと同じ)
├ B:Aよりも低解像度の画像フォルダ
└ C:Bよりも低解像度の画像フォルダ
network_args = ["nest_dim=512,704"]
nest_dimの指定は画像のピクセルサイズ
上記の設定例の場合 512x512よりピクセルサイズが大きい画像は1回目のダウンサンプリング後の層も学習
704x704よりピクセルサイズが大きくなる画像は2回目のダウンサンプリング後の層も学習
Q&A
Q:network_args = ["nest_dim=512,704"]
これとresolutionの設定てどう影響するの?たとえば512,512だったらどうなる?
A:画像のピクセル数が512x512以下なら1つめのダウンサンプリング以降は学習されなくなるだけ
nest_dimsの値はresolution設定とデータセットの中身との兼ね合いで決めて
コメント ※編集が落ち着くまでの暫定
- とりあえず、自分が聞いた範囲で、AI絵スレのログが消える前に急いでメモした。
断片的にしかスレ見ていなかったので、これ以上は自信を持って書けそうにないです。 -- 2023-10-28 (土) 00:40:28