学習用画像ベンチマークテスト

Last-modified: 2022-11-25 (金) 14:27:55

Hyper Network等の学習には時間を要する上、思うように成果が出ない場合があります。
そんな無駄をなくすため、事前に1000~2000steps(5~20分程)のベンチマークテストを行うだけで成果予測・対策が見込めます。

Hyper Networkでのベンチマークテスト

画像の準備

最初に「学習の事前準備」で適切な画像を準備します。
学習用画像の加工」も必要に応じて行いましょう。

txt2img設定例

「txt2img」でベンチマーク画像生成のためのpromptを指定します。
位置・変化が分かりやすいよう、「barefoot, bare arms, standing」をセットで入れると良いでしょう。

【例】
barefoot, bare arms, standing, pink hair, short hair, masterpiece, best quality, masterpiece
Negative prompt: lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts,signature, watermark, username, blurry, artist name
Steps: 28, Sampler: Euler, CFG scale: 12, Seed: 4159961748, Size: 512x768

Hyper Network設定

「Train」タブの「Create hypernetwork」で下記のように生成します。

  • Name
    • 「test」と入れるなど、通常の成果物と混合しないような名前
  • Modules
    • 全部チェック
  • Enter hypernetwork layer structure
    • 1, 1
  • Select activation function of hypernetwork
    • relu
  • 他チェックボックス
    • 不要


同様に「Train」タブの「Train」で下記のように設定します。

  • Hypernetwork
    • 上記で生成したもの
  • Hypernetwork Learning rate
    • 0.0005 (5e-4)
  • Dataset directory
  • Log directory
    • 確認しやすいフォルダかつ、「test」と入れるなど通常の成果物と混合しないような名前
  • Prompt template file
    • 最後の「style_filewords.txt」を「hypernetwork.txt」に変更 (特にこだわりがなければ)
  • Width, Height
    • 512x512で出力したならそのまま
  • Max steps
    • 1000
      • 5~10分程で終了
    • 2000
      • 10~20分程で終了
  • Save an image to log directory every N steps, 0 to disable
    • 100
  • Save a copy of embedding to log directory every N steps, 0 to disable
    • 0
  • Read parameters (prompt, etc...) from txt2img tab when making previews
    • チェック

結果の確認

問題がなければ「Train」のまま、下部「Train Hypernetwork」を押下して開始します。
終了まで5~20分ほどかかるため、この間としあきとして自由に過ごしましょう。

終了後、上記で設定した「Log directory」のimagesフォルダから画像を確認してください。
脚が増えるなど大きく崩壊しますが正常です。過程に注目し、結果を確認します。

結果のネガティブポイント

【ポイント】
Hyper Network設定に誤りがある場合も同様の現象が起こりますので設定を見直してください。

★★重要★★ 腕と脚の位置がほぼ同じままで変化しない

これだけは絶対に解消する必要があります。再現性が非常に高いです。
このままHyper Networkを行ってもまったく変化は生じません。トコトン回せば変化しますが、崩壊した状態でのみ変化します。
不適切な画像を使っているため、「学習の事前準備」を見直してください。
(背景を白にするだけでもかなり改善されると思われます)
(なおtxt2img設定例とは別のpromptを指定した場合、別の変わらないパーツに注目してください)

顔や塗りが1枚も似ない

画像の種類数が少ないことが考えられます。
分割前で最低25種、なるべく50種以上は欲しいところです。

500stepsぐらいでほぼべた塗りになる

狙った方向で良好変化しているのであれば問題ありませんが、汎用性は小さくなります。
Hyper Network本番での耐久度はそこそこなため、中期型や可変型で回しましょう。
画像の種類数を増やせば改善される場合があります。(50種から75・100種にして改善した場合があります)

Dream Boothで解決できるかもしれません

Dream Booth on AUTOMATIC1111
(目指す方向性にもよります)

結果のポジティブポイント

【ポイント】
いずれも数枚が良好変化していることが必要不可欠です。

【大成功】1500~2000stepsでも、べた塗りでない人間を確認できる

大成功です。おめでとうございます。
短期型(「1, 1」「relu」「0.00005」(5e-5))で回しても、10000steps以下で望むものが生成できると思いますし、汎用性も高いはずです。
(場合により途中で「0.000005」(5e-6)を数千steps程度混ぜてください。ただstepsの世代比較だけで対応可能だと思います)

【成功】1000stepsぐらいでほぼべた塗りになる

成功です。おめでとうございます。短期型・可変型で回すことが可能です。
(運悪く成功止まりとなってしまい、もう一度回せば大成功となる場合もあります)

このベンチマークで予測が難しいこと

  • 完成時に画質が著しく落ちる

対策として「学習の事前準備」や「Hyper Network」に書いてあることを見直してください。
ただし大成功を狙えば、おそらく生じないと思われます。

【不要?】Textual inversionでのベンチマークテスト

不適切な画像でも一気に変化するため、見極めが難しいのですが、
普通に回していって、望んだ変化をするか確認する程度で問題ないと思われます。
ただしpromptでファイル名を入れなかったり、Prompt template fileで「hypernetwork.txt」など不適切なものを指定したりしますと、
ハッシュ値が同じままずっと変化しないので注意してください。

【不要?】Dream Boothでのベンチマークテスト

(要編集)

コメント

  • 1枚目には人型が崩れ始めて2枚目以降はずっとノイズ画像のようになるのですが、どのような原因が考えられるでしょうか…? -- 2022-11-18 (金) 17:52:17
  • 情報がなさすぎてわからんけど、一週間ほど前からの最新バージョン(つまり11/10前後?正確な日時はログ漁らんとわからんが)Automatic1111ではここに書いてあるやり方がうまくいかないという報告はあった。なので、まずしばらく前のバージョンに戻して試してみるといいかもしれない。自分はVRAM 8GBで学習にメモリが足らなくなる問題もあって11/1あたりのバージョンで作業してる。それでダメなら学習設定の何処かに問題があるので、学習素材の概要と枚数(例として「白背景切り抜きのキャラ20枚」など)、Learning rateとステップ数あたりは聞かないとわからん -- 2022-11-19 (土) 13:56:45
  • 白背景切り抜きのキャラ766枚をもとにここで書いてあるベンチマークテストをすると1枚目で手足が崩れ2枚目で単色塗りつぶし、3枚目以降はテレビの砂嵐のようなノイズになってしまいました。これは"学習には十分"とみなしていいのでしょうか? -- 2022-11-19 (土) 19:29:23
  • 766枚に対して100ステップ目ということは学習自体ちゃんと出来てない可能性のが高いようにも思える。同じやり方を素材100枚・50枚・25枚と絞って実験して良さそうな教師素材数を探ってみるといいんじゃないかな。100枚でも十分行けてそう、と思ったなら更に増やしてもいいかもしれん -- 2022-11-20 (日) 17:44:40
  • 20枚でやってベンチマークやってみたがreluに限って100stepでもペタ塗りになる。どうしたものか… -- 2022-11-21 (月) 03:40:58
  • ちなみにHypernetwork関係の修正が入って使い物にならなくなったのは確か11/4日金曜時点ですでに報告事例があったはず -- 2022-11-21 (月) 03:48:02
  • 18日から画像28枚で画風学習始めたけど、自分も2枚目以降は人型が出なくて5枚目以降万華鏡みたいな画像だった。1,2,1 relu 30000stepsでやってみたら5000stepsより前に塗り似てきて25000stepsで満足いくレベルになったよ -- 2022-11-21 (月) 11:14:55
  • 体はマスピでいいので顔だけ学習させようと首から下は切ったり白で塗りつぶしたりしたけど砂嵐が出力される。肩ぐらいはあったほうがいいのかな -- 2022-11-21 (月) 18:43:03
  • 全身立ち絵も5枚くらい入れたけどあとは顔だけの画像でうまくいったよ 本番環境でやってみて 
    あとlooking awayとかfrom sideとかの顔の向きのタグは正確に打ち直さないと失敗する -- 2022-11-22 (火) 13:11:05
  • reluで砂嵐になったからlinear(デフォルトのやつ)にしたらうまくいくようになった -- 2022-11-22 (火) 18:45:55
  • 連投すまん。Hypernetwork Learning rateを0.0005がダメで0.00005なら良かった。レートの問題かも -- 2022-11-22 (火) 22:01:53
  • 2週間ぶりぐらいにhypernetworkをやったら以前と同じ設定なのに画像に砂嵐がでるようになってる -- 2022-11-23 (水) 08:59:54
  • 完全初心者なんですがwikiの設定通りにして100stepの時点で砂嵐です… -- 2022-11-23 (水) 23:36:33
  • reluのままlearning rateを0.0005から0.0001にしたら2000まで人の形を保っていたのでもうこれでよしとしたい -- 2022-11-24 (木) 08:10:45
  • 今の設定は話によると最後のレイヤーに対して活性化関数が適応されないって感じらしいのでこのページでいう1,1reluって設定してもreluが適応されてないはず。だからいまのWEB UIでベンチマークテストやってもうまく行かないよ -- 2022-11-25 (金) 14:27:55