最終更新:ID:DqSiI5hXpw 2023年02月06日(月) 04:46:57履歴
新しいLoRAノートブックはこちら→kohya_train_network_simple
このページの内容は残念ながら古いので手順通りに試してもうまく動かないようです。
画像生成は経験済みだが、まだ学習をやったことない人が対象。
TI, DB, HN, DA, Loraなど。
どれがいいかは目的に応じて変わるので、当面は全部やって比較検討するのがいい。
1111以外を使う方法もあるが、1111を使えば全部できる。
ここでは1111を使って、Lora(DB)とHNを試してみた。
用意した環境は次の2つ。
細かい調整は省き、再現性のある手順を示す。
Dreamboothのオプションとして利用可能。
DB比で高速、生成されるファイルも小さい。
完成度については未知数だが、DBほどの再現性が得られていない。要研究。
Colabでは解像度768で動作することも確認済み。
追記
dreambooth使わないから外してて知らなかったけどすでにLORA実装してるらしいじゃん!
Commits見ると8日にはもう取り入れてるぞ
引用:ふたばより
Colabだと1111の起動に15分+ダウンロード時間ぶんかかるので待ってる間にやる。
ダウンロード
中身は学習用データセット14枚
解像度768版
ここからは1111の起動後にやる。
Instance Tokenと間違えないように。
Class Promptも入れたほうが良さそうとか色々あるけどまずは最低限で。
もしもVRAMが足りなくてエラーになるのならtoukaは外すことが出来る。
Instance promptはOptionalではなく、入れないとUnable lbuild Concents.エラーが出る。
左側の「Lora Model」から使いたいptファイルを指定する。
現在の「Stable Diffusion checkpoint」の選択に関係なく、「4. モデルファイル作成」の時に指定したckptがベースになる。
なので別のckptにLoraを適用することは出来ないはず。
Trainによって以下の6つのファイルが出来ているはず。
ここでは「skkmtn_1400.pt」を選択する。
skkmtn_1000.pt
skkmtn_1000_txt.pt
skkmtn_1400.pt ←これ
skkmtn_1400_txt.pt
skkmtn_500.pt
skkmtn_500_txt.pt
「Generate Ckpt」ボタンを押す
models/lora にファイルが出来ている。
Colabだと消えてしまうのでsd_filerを使ってダウンロードする。(ほかの方法でも良い)
ダウンロードしたファイルは models/lora に設置すれば「Lora Model」の一覧に表示される。
sd_filerを使ってアップロードすることも出来る。
再開できていないバグがあるのではないかという話だったけど最新でどうなってるか不明。
models/dreambooth/skkmtn を保存しておけば続きから学習できる。
skkmtn_1400_lora.ckpt ファイルに対して追いLoraすることもできる。(意味的には異なるはず)
画像はLoraと一緒。
以下の内容だけが記載されたファイルを
C:\stable-diffusion-webui\textual_inversion_templates\mb1f.txt (どこでもいい)に保存
「Train」タブを開いた後、「Create hypernetwork」タブを開きます。
「Train」タブを開く
スレでの指定は180だったが、14の倍数できりよく182とした。
プレビュー画像を出すとVRAM不足で落ちるので注意。(今回は500以下だから関係ない)
30分ちょっとかかる。
このページの内容は残念ながら古いので手順通りに試してもうまく動かないようです。
画像生成は経験済みだが、まだ学習をやったことない人が対象。
698 名前:今、天王星のwiki見てきたら軌道傾斜角(i) が0.774°だった (ワッチョイ 0154-0d8E)[sage] 投稿日:2023/01/09(月) 19:11:42.17 ID:OMJT1FQ70 [4/5] HNとDBとTIとかの違いがいまいちわからんくなってきたわ
740 名前:今、天王星のwiki見てきたら軌道傾斜角(i) が0.774°だった (ワッチョイ 9943-tb1I)[] 投稿日:2023/01/09(月) 19:58:06.59 ID:RzPG3voj0 [13/16] >>698 キーワードを書いて、それが各トークンに分割される。各トークンはそれぞれ768個の重み=特徴の強弱が設定されている。 モデルは、現在の画像(最初はノイズ)とそのトークンの重みを与えられて、画像から少しノイズを取り除こうとすることを繰り返して絵を作る。 モデルの形自体は決まっているが、モデル自体が持っているパラメータによって、画像のどんな特徴を重視(圧縮)して、どういう風に復元(展開)するかが変わる。 TI:768×数〜数十トークン分の重みを割り出すことで、期待する特徴を備えたキーワードを作る どんなの特徴成分の組み合わせでターゲット画像が再現できるかを学習する。 だから分かりやすい特徴や属性の組み合わせで再現できる物に向いている。 HN:重みをモデルに伝える部分に入り込んで、期待する画像をモデルが作りやすいように変換する 特徴成分全体を特定のパターンで変形する。 だから特徴全体を揺れ動かす必要があるような、絵柄の学習に向いてるし、特徴自体の強化や矯正もできるので、物の学習もできる。
746 名前:今、天王星のwiki見てきたら軌道傾斜角(i) が0.774°だった (ワッチョイ 9943-tb1I)[sage] 投稿日:2023/01/09(月) 20:00:44.89 ID:RzPG3voj0 [14/16] >>698 >>740 の続き DB:モデル自体のパラメータを学習する。 TIやHNはあくまでテキストから特徴を作り出す部分を改善するもの。 つまりできる限りそのモデルの力を引き出すことはできても、そもそも元からそのモデルが作ることが困難な絵は作れない。 DBならモデルのパラメータ自身を学習するのでその制限を超えられる。(もちろん、SDの仕組みとモデルの形自体からくる得意不得意からは逃れられない) 例えば、部品メーカーが、幾万とある珍しい部品の画像を製品番号から出したいとする。 そうなると、まずそういう珍しい画像を精密に描画できるだけの能力がモデルにないかもしれないし、 製品番号のトークンから、適切な素材の重みにHNで変換しようとしても、 よくあるプロンプトから逸脱しているので、とても深く大きいHNが必要になりそうなことが予想される。 そういう場合はモデルを作ったほうが良い。 他にも、そのモデルが弱い特徴を持った画像を追加学習させることで、上手く行けばその要素を強化したりもできる。それぞれの学習方法や詳細は個別ページにて
TI, DB, HN, DA, Loraなど。
どれがいいかは目的に応じて変わるので、当面は全部やって比較検討するのがいい。
1111以外を使う方法もあるが、1111を使えば全部できる。
ここでは1111を使って、Lora(DB)とHNを試してみた。
用意した環境は次の2つ。
- VRAM 8GBのNVIDIA GPUを搭載したローカルPC
- 無料Colab
細かい調整は省き、再現性のある手順を示す。
Dreamboothのオプションとして利用可能。
DB比で高速、生成されるファイルも小さい。
完成度については未知数だが、DBほどの再現性が得られていない。要研究。
- 解像度512
- 所要時間はローカル(2070)だと15分程度、Colabだと全部で1〜2時間くらい
- 実用的(着せ替えなどをして遊べる)
Colabでは解像度768で動作することも確認済み。
追記
- --test-loraは指定しなくても良くなった
- ckptは自分でGenerateするまでは出力されなくなった
- 2022-12-13アップデートで設定項目が変わった
- NAI VRAM 8GBでも動作することを確認した
- 最小限の設定項目で実施する(ひとまずデフォルト値を信じる)
- 公式リポジトリ│https://github.com/cloneofsimo/lora
- webで使える🤗のloraツール│https://huggingface.co/spaces/ysharma/Low-rank-Ada...
dreambooth使わないから外してて知らなかったけどすでにLORA実装してるらしいじゃん!
Commits見ると8日にはもう取り入れてるぞ
引用:ふたばより
Colabだと1111の起動に15分+ダウンロード時間ぶんかかるので待ってる間にやる。
ダウンロード
- https://image02.seesaawiki.jp/n/h/nai_ch/aQEovutlv... skkmtn.zipにリネームする
- https://image02.seesaawiki.jp/n/h/nai_ch/MHIWw0HVJ... touka.zipにリネームする
中身は学習用データセット14枚
- https://zunko.jp/con_illust.html
- 16枚からビーチチェアとデフォルメを除いた
解像度768版
ここからは1111の起動後にやる。
- あると便利なExtension(入門用Notebookでは自動インストール)
- Image Browser
- Filer
- Filerのimagesに2つのzipをドロップする
- あるいは webui直下にzipファイル名のディレクトリを作りzipの中身を展開する
- Image BrowserのOthersで skkmtn と touka を選択する
- 画像が見えることを確認する
- Classification Dataset Directory: touka
- Dataset directory: skkmtn
- Instance Prompt: skkmtn
Instance Tokenと間違えないように。
Class Promptも入れたほうが良さそうとか色々あるけどまずは最低限で。
もしもVRAMが足りなくてエラーになるのならtoukaは外すことが出来る。
Instance promptはOptionalではなく、入れないとUnable lbuild Concents.エラーが出る。
左側の「Lora Model」から使いたいptファイルを指定する。
現在の「Stable Diffusion checkpoint」の選択に関係なく、「4. モデルファイル作成」の時に指定したckptがベースになる。
なので別のckptにLoraを適用することは出来ないはず。
Trainによって以下の6つのファイルが出来ているはず。
ここでは「skkmtn_1400.pt」を選択する。
skkmtn_1000.pt
skkmtn_1000_txt.pt
skkmtn_1400.pt ←これ
skkmtn_1400_txt.pt
skkmtn_500.pt
skkmtn_500_txt.pt
「Generate Ckpt」ボタンを押す
models/lora にファイルが出来ている。
Colabだと消えてしまうのでsd_filerを使ってダウンロードする。(ほかの方法でも良い)
- 「Filer」タブの「Loras」タブの「Active」タブで欲しいものにチェックを入れて「Download」
- 容量が少ないので「Select All」でも大丈夫
- ダウンロードリンクが表示されるのでクリックする
ダウンロードしたファイルは models/lora に設置すれば「Lora Model」の一覧に表示される。
sd_filerを使ってアップロードすることも出来る。
再開できていないバグがあるのではないかという話だったけど最新でどうなってるか不明。
models/dreambooth/skkmtn を保存しておけば続きから学習できる。
skkmtn_1400_lora.ckpt ファイルに対して追いLoraすることもできる。(意味的には異なるはず)
画像はLoraと一緒。
以下の内容だけが記載されたファイルを
C:\stable-diffusion-webui\textual_inversion_templates\mb1f.txt (どこでもいい)に保存
masterpiece, best quality, 1girl, face
「Train」タブを開いた後、「Create hypernetwork」タブを開きます。
- Name: skkmtn
- Enter hypernetwork layer structure: 1, 2, 2, 1
- Select activation function of hypernetwork. Recommended : Swish / Linear(none): mish
「Train」タブを開く
- Hypernetwork: skkmtn.pt を選択
- Hypernetwork Learning rate: 0.00001(デフォルト)
- Dataset directory: skkmtn
- Prompt template file: C:\stable-diffusion-webui\textual_inversion_templates\mb1f.txt (用意したもの)
- Gradient accumulatelion steps: 14
- Max steps: 182
- shuffle tags by "," when creating prompts: オン
- Choose latent sampling method: deterministic
スレでの指定は180だったが、14の倍数できりよく182とした。
プレビュー画像を出すとVRAM不足で落ちるので注意。(今回は500以下だから関係ない)
30分ちょっとかかる。
タグ
このページへのコメント
github.com/d8ahazard/sd_dreambooth_extension/issues/706#issuecomment-1373541526
↑のDreamboothエクステンションの不具合報告掲示板によると、「現在の最新版では8GBのGPUでLORAを実行できないようになっている」とのこと。
「git checkout c5cb58328c555ac27679422b1da940a9b19de6f2」で
Dreambooth自体を前のバージョンに戻せばLORAを動かせるようになる。
ありがとうございます。古いバージョンに戻して、Loraの手順は一通りできました!
ところでcheckoutのときにメッセージが出てきたんですが、戻すときは、
git switch -
でいいんでしょうか?
ありがとうございます。
私も諦めて別の学習について調べてたんですが、githubに同じような報告がありました。
github.com/d8ahazard/sd_dreambooth_extension/issues/661
結果、↑のVenv削除で自己解決しました。ただ、次に以下のエラーがでました(同じく7の手順です)。
Returning result: Exception training model: No executable batch size found, reached zero.
今は時期が悪いんでしょうが、他の人の参考までに書いておきます。わかる方は教えてください……。
手順通りにローカルでLoraの方をやってみたんですが、7.Trainボタンを押すを実行したら、
以下のメッセージが出てきて、8以降の手順に進めません。
Returning result: Exception training model: module 'tensorflow' has no attribute 'io'
ググって出てきたpip install tensorflowで解決できるかと思ったんですが、実行しても同じメッセージが出ます。
どうすればいいんでしょうか……?
最近アップデート多いから本家がバグってるのかも?
(Loraは機能追加が期待されてるので落ち着いたころにまた試す予定)