
この記事はで読むことができます。
お疲れ様です。へむろっくです。
今回は『RunPodでの追加学習(Hypernetwork)のやり方』について解説していきます。

RunPodについての解説と使い方はこちら。
一番重要かつ時間がかかります。
なのでなるべくGPUを借りる前にやりましょう!
いい画像素材の例は以下の通りです。
- なるべく学習させたい素材のみ写っている。
- 顔に手や物などが被っていない。
- 背景がシンプル。
- 枚数が多い(20枚以上)
最低この条件は満たしたいところ。
(うまく学習できない&意図したもの以外を学習してしまう)
学習は『512*512』か『512*768』で行うことが多いです。
なるべくそのサイズかそれに近い比率で用意しましょう‼
あとは枚数が大事です。キャラの場合は最低20枚、できれば50枚程度ほしいです。
画風の場合はそこまでシビアに素材選ばなくても大丈夫ですが、100枚程度の素材がないと安定しません。
素材が用意できたらGPUを借ります。
まずはrunpodのサイトにアクセスしてください。

上記の記事を参考にGPUを借りる&モデルをダウンロードしてください。
その間にWebUIの設定を済ませてください。
では準備をしていきます。

拡張機能→URLからインストール→拡張機能…のところに以下のリンクを張ります。
#Hypernetwork-MonkeyPatch-Extension
https://github.com/aria1th/Hypernetwork-MonkeyPatch-Extension
#stable-diffusion-webui-wd14-tagger
https://github.com/toriato/stable-diffusion-webui-wd14-tagger
(URLだけ入れてください。)

画像のような表示が出たらインストール完了です。

先程インストールしたのを選択(選択されています)し『適応して再起動』をクリックして再起動します。
…が、RunPodだと適応されません。
元から再起動する必要があります。
RunPodの画面に戻り、Restart Podをクリックし再起動します。

するとTaggerが追加されています‼
まず先程作成した学習素材を用意します。

JupyterLabを開いて適当なフォルダーを作ります。

そして学習素材をアップロードします。

WebUIに戻り、Tagger→Batch…を選択します。

入力と出力に先程作成したファイルのパスを入力します。
#こんな感じ。(例) workspace→hn→1にアップロードした場合
/workspace/hn/1

画像のように設定→『Interrogate』をクリック。
これで自動でタグ付けされたtxtが出力されます。
まず忘れないうちにモデルの設定をします。
設定方法は画像作成の時と同じで上のタブで設定します。
『学習させたいモデルを設定してください。』
設定してないと変なモデルに学習させることになりやり直しになります。
これで結構失敗してるのでまじで気をつけてください…
次にHypernetworkを作成します。

基本的には左の2つを使用します。
他のやつは罠です。罠。
ひとまず『Create…』を選択します。

設定は色々あるのですが、個人的にやってる方法を紹介します。
- 名称: 好きな名前で。
- モジュール: 基本全部選択。
- Hypernetworkのレイヤー構造: キャラなら『1,4,1』画風なら『1,2,2,1』
- Hypernetworkの活性化… : swish
- Enter hypernetwork… : キャラなら『0,0.3,0』画風なら『0,0.3,0.3,0』
画風とキャラで使い分けてください。
記述できたら『Hypernetworkを作成』で作成します。
いよいよ学習させます。

多いですね😓
注意するのは『Hypernetworkの学習率』と『Steps for cycle』。
Hypernetworkの学習率は0.00004, Steps for cycleは学習素材の枚数を設定してください。
あとは画像の様に設定してもらえれば大丈夫です。

????
…多いですがここが一番大切です。
『プロンプトのテンプレートファイル』はどこでもいいので以下のテキストをtxtに保存して使用します。
#キャラの場合。()は不要。
character is (キャラの名前), [filewords]
#画風の場合
artist is 画風の名前, illustration drawn by style of 画風の名前, [filewords]
ファイルの名前は何でもいいのでパスを指定します。(ct.txtとかで)
幅と高さは学習させたいサイズを指定してください。
ちなみに1:1で学習させると、3:4とかで出力した時になんか違和感が出ます。
…とはいえRAM8GBだと512*512が限界です。
最大ステップは2000に指定します。(最終的に6000)
ログは保存しなくてもいいですが、過学習が怖い場合はこまめに保存しましょう!
すべて設定し終えたら『Hypernetworkの学習を開始』で学習開始!

このような表示が出たら学習中です。
大体2000ステップで25分ぐらい。長い…
基本放置です。

2000ステップごとに『学習率』と『最大ステップ数』を変更してください。
基本的には6000ステップ数で大丈夫です。(2時間ぐらい)
たまに学習中にフリーズして動かないときがあります。
その時は…
- 焦らずに学習が終わっているかファイルで確認(生成されているか)
- 学習が終わっているならWebUIを再起動。終わってないなら放置。(裏で動いてます)
原因としては『通信環境が悪い』…です。
Deployする際になるべく通信環境が良い環境を選ぶぐらいしか対策はありません😅
Hypernetworkから先程学習させたものを設定します。
設定し、画像生成でしっかりキャラの特徴等が出たら成功です。
…まだまだ足りないという場合は追加もできます。
強度も調整できるのでお試しあれ。