Stable Diffusion のファインチューンの Tips
目次
間違いやすいポイント
Textual Inversion と Hypernetwork のタグの違い
前処理
設定
学習時
Hypernetwork
Layer Normalization を有効にする場合は学習率を大きくする
Textual Inversion
Textual Inversion でネガティブな要素を学習させる
Dreambooth
Preprocess(前処理)
学習テクニック
学習データ
Textual Inversion でキャラを学習させる場合のタグ
画風を学習させる場合のタグ(Textual Inversion・Hypernet)
Textual Inversion
Dream Artist
Hypernetwork
Dream Booth
Aesthetic Gradients
VAE の埋め込み
LORA
Custom Diffusion
その他の情報
概要
このページでは AUTOMATIC1111 を使ったファインチューンの Tips を扱う。
画風を学習させる場合、Textual Inversion より Hypernetwork の方がよい。なぜなら学習時間が短いからだ。Use deepbooru for caption を使えばタグ付けも自動化できる。
Textual Inversion や Hypernetwork の学習は、学習画像のサイズが 512x512 なら VARM 8GB の RTX 3050 でもできる。ただし VRAM を解放するために実行前に webui の再起動が必要になる。モニターを複数枚使っている場合、VRAM が不足することがある。そのため快適に学習させたければ、VRAM 12GB 以上の GPU を使うか、Google Colab を使う。
Dreambooth を使って学習させるには最低でも 12 GB の VRAM が必要になる。
Textual Inversion はテキストエンコーダーを調整する。Hypernetwork はテキストエンコーダーと U-Net との間に追加のネットワークを挿入して、その追加ネットワークを調整する。
ディープラーニングチューニングプレイブック日本語版
ハイパーパラメータチューニングに関する手順が解説されている。
まとめ
Hypernetwork
画風の調整に向いてる。学習時間が短く準備の手間も少ない。ファインチューニングは、まず Hypernetwork から挑戦してみるのがいい。
Textual Inversion
デフォルトの状態で呼び出せる人や物を語に覚えさせたり、トークンを節約したりするのに使う。描く能力はあるが呼び出し方がわからない人や物を呼び出せることがある。Hypernetwork に比べて学習に時間がかかり、背景を塗りつぶしたり、タグ修正したりする手間が追加で発生する。
Dreambooth
デフォルトの状態で呼び出せない人や物を呼び出せる。
VRAM8GB でできるファインチューニング
- Textual Inversion
- Hypernetwork
- DreamArtist
VRAM 12 GB でできるファインチューニング
- Dreambooth
VRAM 16 GB でできるファインシューニング
- 追加学習
AUTOMATIC1111 の Dream Booth の使い方
目次
A Few Dreambooth Observations and Tips, Leafier Closer Shots With the New Vae File (higher CFG)
モデルの圧縮(脱水)
LORA
Waifu Diffusion で効率的に画像を生成する
目次
ワークフロー
差分生成の実例
どのツールを選ぶか
Stable Diffusion の解説
Tips
Denoising Strength を下げると画質が落ちる
ファインチューニング
プロンプト
AUTOMATIC1111 の Prompt Editing※重要
Danbooru タグ列挙法(Waifu Diffusion v1.2 限定)
Danbooru タグ列挙法(Waifu Diffusion v1.3 限定)
Stable Diffusion のプロンプト Tips
単語チートシート
画力が上がる作品タグ
色
天気・時間帯
場所・背景
人
カメラ・ライティング
作風
検証
AI が描いた絵の見分け方
NSFW(職場閲覧注意)
単語集
作例
解説リンク
AUTOMATIC1111 の便利な機能
目次
AUTOMATIC1111のアップデート
git の操作
アップスケーラー
Stable Diffusion Upscale(img2img を使ったアップスケーラー)
img2img
Only masked(マスクした部分を拡大してから再生成して合成:旧 Inpaint at full rsolution)
Batch img2img(フォルダ内の画像すべてに img2img を実行)
Loopback(img2img の結果に img2img を実行する)
--gradio-img2img-tool(簡易ペイントツール追加)
Detection Detailer(顔のマスクを自動生成してくれる Extension)
Depth-guided model(深度情報を使った img2img)
プロンプト
CLIP interrogator(画像のプロンプトを推測)
Deepdanbooru(画像の Danbooru タグを表示する)
Prompt Editing(画像生成の途中でプロンプトを変更)
Alternate Prompt(1ステップごとに語を切り替え)
ファインチューン
Embedding (.pt や .bin ファイル)を使う
操作
Generate ボタンを右クリック > Generate forever で止めるまで生成。止めるときは右クリック > cancel
Ctrl + Enter で Generate
Ctrl + Z プロンプトを元に戻す
スライダーをクリックした後十字キーで1ずつ増減できる
検証
Visualize Cross Attention(プロンプトが画像のどこに効いているか可視化)
DAAM Extension for Stable Diffusion Web UI(プロンプトが画像のどこに効いているか可視化)
UI
そのほか
Checkpoint Merger(ckpt ファイルのブレンド)
[WebUI] Stable DiffusionベースモデルのCLIPの重みを良いやつに変更する
Extension など
Booru tag autocompletion for A1111(タグ補完)
extensionEditor(AUTOMATIC1111向けのプロンプトエディター)
Dataset Tag Editor(タグで画像を編集したり、タグを編集するエディタ)
Helper GUI for manual tagging/cropping(画像のタグ管理エディタ)
embedding editor(768 個ある潜在表現ベクトルを手動で調整)
multi-subject-render(背景とオブジェクトとを雑コラしてくれる)
モデルマージ
Textual Inversion の使い方
目次
Textual Inversion
Embedding (.pt や .bin ファイル)を使う
Embedding の作成
Training an embedding(embedding のトレーニング)
Shuffle tags by ',' when creating prompts.
Drop out tags when creating prompts.
例1
DreamArtist
Embedding-inspector
Hypernetwork の使い方
目次
Hypernetwork
Move VAE and CLIP to RAM when training hypernetwork. Saves VRAM
Select activation function of hypernetwork
tips
Hypernetwork Style Training, a tiny guide #2670
Hypernetwork training for dummies
hypernetwork.py
Hypernetwork-MonkeyPatch-Extension
Hypernetwork のマージ
外部リンク
Blender でレンダリング時間を短縮する方法まとめ
Blender レンダー以外の項目はバージョン 2.83 以降を前提としている。
目次
概要
Eevee を使う
レンダラーを変える
マルチ GPU
Cycles X(3.0)
Cycles X・Cycles 共通
高速化
ノイズ対策
外部リンク
Cycles
レンダラー非依存
Blender レンダー
Blender でセルルックを作る方法まとめ
モデリングの際に知っておくと便利な機能
一般的なものについては 【blenderモデリング基礎】造形するにあたって序盤で知っておきたかったコマンドなどを参照。
表示に関しては Blender で表示のおかしい頂点・面を直すを参照。
2.80 の操作法が説明されてない項目は 2.80 でもそのまま使える。
目次
サイドバーのパネルを固定(2.80) [Shift + LMB]
マウスカーソルの位置を注視点にする [Alt + F]、2.80 [Alt + MMB]
ツールプロパティをビューポートに表示 [ F6 ]、2.80 [F9]
プロパティ検索(2.91)[プロパティパネルで Ctrl + F]
古い Blender で新しい .blend ファイルを開く(3.0)
オブジェクト
オブジェクトの原点移動モード(2.82)[Ctrl + .]
メッシュの編集
ピボットポイントのアクティブ要素 [Alt + .]、2.80 [ . ]
選択で溶解(dissolve selection)[Ctrl + X]
選択
次のアクティブ [Ctrl + Shift + Num Pad +]
アドオン
外部リンク
Blender でスカートや髪を物理で動かす方法まとめ
目次
概要
ボーンの分割
シミュレーションのジッター対策
コリジョン
クロスシミュレーション
直接クロスシミュレーション
クロスシミュレーション + メッシュ変形
クロスシミュレーション + IK
クロスシミュレーション + サーフェス変形
クロスシムを利用したモデリング
ソフトボディ
剛体
物理シミュレーションアドオン
物理シミュレーションを使わない方法
Blender version of Spring Magic
Ossim - Simulation Baking Tool($13)
コンストレイントを使ったときのボーンの遅れを解消する(2.79以前)
外部リンク
概要
物理シムを使う方法は大きく分けて2種類ある。物理シムを直接使う方法と、物理シムの結果をボーンやメッシュにコピーして動かす方法とだ。メッシュが単純な形ならば物理シムをそのまま適用しても満足できる結果が得られることもある。しかしメッシュが複雑な形をしている場合、コリジョンがうまく機能しなかったり静止したときに元の状態に戻らなかったりする。その場合は物理シム用メッシュを作成し、その結果をボーンやメッシュにコピーする方法を使うことになる。

もちうさでBlender物理演算比較。左からソフトボディ、クロス(圧力)、クロス(内部スプリング)、リジッドボディ。
— 卵 (@hilo_taoka) September 3, 2020
それぞれ、ぷよんとしたもの、風船みたいなもの、ぬいぐるみみたいなもの、変形しないもの、という感じの用途。 pic.twitter.com/04F1qCJEzR
ソフトボディ VS. クロスシム
詳しい説明はWhat is the technical difference between softbody and cloth simulation?を参照。
体積の保存
ソフトボディは体積を保存するがクロスシムはそうではない。多様体(一般的な閉じたメッシュ)を地面に落下させたとき、ソフトボディは元の形状を保存しようとするがクロスシムは布のように折りたたまれる。
計算負荷
ソフトボディの方が一般的に計算負荷は高い。ソフトボディは頂点間の距離が変化するが、クロスシムの頂点間の距離は固定だからだ。
柔らかい布を表現したい時はクロスシムよりソフトボディを使った方がいいかもしれない。
ボーン VS. メッシュ変形・サーフェス変形
ボーンはセットアップが面倒だ。しかし物理シムの影響を切り替えたり、物理シム後に微調整できるようなリグが組める。
メッシュ変形・サーフェス変形モディフィアはセットアップが簡単だが、調整はシミュレーション頼りになる。スカートや板ポリで作った髪のような非多様体(閉じていないメッシュ)はメッシュ変形よりもサーフェス変形を使った方が調整がしやすい。