通常Sketchだと色を塗っていない部分も再計算されてしまうのですが、
こちらだと色を塗っている部分のみをマスク処理して再計算してくれます。
一部分のみを色指定して変更したい...という際に手軽に利用できます。
ただしGradioにバグ?があるのか、Copy image to欄からinpaint sketchへは送ることができず、
inpaint sketchタブのウインドウに画像を直接ペーストする必要があります
キャラ再現系で、一部パーツだけを再描画したい,,,という需要にぴったりです。
下記は肩がノースリーブ状態だったのを、雑に白を載せてinpaint sketchすることで肩パーツ部分だけを修正することができました。
他の使い方としては
プロンプト次第で書いた部分にtntnや触手が簡単に生えてくるので、controlnetよりも手軽にコントロールできます。
webuiに表示される画像は(当然ながら) [右クリック→画像をコピー] でクリップボード領域に格納できます。
またwebuiの [ここに画像をドロップ] は、ctrl + vでクリップボード領域に格納された画像を貼り付けることができます。
これを利用し、クリップボード領域をwebuiと各種外部ソフトウェアの中継として利用することができます。
私はClipStudioでオートアクションを作成し、
[クリップボードから新規作成]で webui > クリップボード > ClipStudio、
[全レイヤ結合コピー削除]でClipStudio > クリップボード > [Ctrl + v]でwebuiに戻すということを行っています。
vscodeのPythonデバッグ環境を作ったうえで、launch.pyの直接実行でwebuiの起動~デバッグに推移できます。
webui-user.batに指定する引数がごっそり抜けていますが、とりあえず動作してくれます。
extensionにbreakpointを置いて変数や処理の流れを覗くなどで改造に使えると思います。
私はLoRA Block Weightの強制LoRAクリアが辛かったので、独自にThroughボタンと手動LoRAクリアボタンを追加しています。
extensionの各種項目もGUI上部に配置可能です。
Quicksettings listに設定する項目を調べる方法が分かりにくいのですが、試しに該当項目を変更してSaveをすると、[x settings changed: xxx]と表示されます。
この項目名がQuicksettings listに設定する項目名となります。
私はEagleの有効/無効ボタンを上部に配置し、inpaint試行錯誤中はEagleに送らないようにしています
XYZ plotで個人的に最もわかりやすく活用できた方法です。
XにValues適応値、YにBlock指定までは好みでOK
ZにOriginal Weights : NONEとしてあげることで、
全階層0をデフォルトとして、Yに指定した階層だけを+方向に変動させることができます。
例えば過去作成した水着強化LoRAですが、背景はchurchを指定しているにも関わらず森に変化しています(下図BASE-OUT11)
LoRA自体の背景への影響が強すぎるので背景カットを行います。
上記XYZで確認した結果、背景に変化が起きる階層はIN05・IN07・IN08・M00・OUT03辺りまで。
IN05とIN07は他の変化点もいらないのでバッサリ切る、IN08は美味しい変化なので残す、M00とOUT03は切る、、との判別が楽にできます。
基本的に不要な階層はどんどんカットした方が良い結果になりやすいと感じます。
逆に必要な階層は1.2等を指定して更に強めるのも手です。
kohya-ssに付属のmerge_lora.pyを使用して、通常のSDmodelにLoRAmodelをマージすることができます。
常用するLoRAはSDmodelにマージすることで(LoRAのロード時間分)処理速度を上げることが可能です。
上段がBatch size 8、1:18
下段がBatch count 8、1:56
VRAMに余裕があるのであればBatch sizeを上げるべきです。
以下、ハード面のTIPSです。
自宅NWにVPN Serverを立てられる場合、
スマホから自宅VPNServerにトンネルを張ったうえでwebuiをlistenモードで起動することで、外出時でもwebuiにアクセスできるようになります。
加えてOSをWindows Pro以上としRDP接続できるようにすると、スマホから通常通りOSデスクトップを操作できるため更に利便性が上がります。
帯域も削減できるため、格安SIMのmineo 1.5M使い放題でいつでもどこでも常時RDP接続のような無茶な使い方ができるようになります。
MSI Afterburnerを使用してグラフィックボードの省電力化が可能です。
私は60%まで落として使っていますが、基本的に電力は落とし得です。
下記記事 中段に1080の参考結果がありますが、
電力を60%まで落としても性能自体は11%減で収まっています。
3090は電力60%でも性能15%減程度で収まります。
4090は更にすさまじく、電力60%でわずか6%減です。
上記はベンチマークソフトやゲームでの比較なので、
簡単にBatch size 8での生成時間を並べてみます。
60%制限 1:18 (78sec) 80%
70%制限 1:13 (73sec) 86%
80%制限 1:06 (66sec) 95%
90%制限 1:03 (63sec) 100%
100%制限 1:03 (63sec) 100%
性能面では80%制限が高効率です。
発熱やファンの回転速度との兼ね合いでどのラインまで絞るか調整かなと思います。
上記電力制限をかけて使うのを前提とした場合、グラフィックボードに大分優しい使い方になるので、
思い切ってマイニング上がりグラフィックボードを中古で購入するのもありかなと思います。
下記動画が大分参考になると思います。
ただし良品・良出品者を引く嗅覚と運、
将来的に分解・グリス塗り替え・サーマルパッド交換が必要になるので、これらのリスクを負う必要があります。
個人的におすすめな狙いは3090だと思います。
マイニング上がりの中でも流通量が多く、かつ当時最高機種だったこともあり、マイニング業者側でも壊さないように丁寧に扱われている可能性が高いです。
分解動画等も大量に上がっており、情報量が豊富なのもメリットです。
私はマイニング上がり3090を中古で購入して使用しています。
このクラスの分解は恐怖でしたが、分解動画を参考になんとかメンテナンスすることができています。
上位グラフィックボードを購入するなどでグラフィックボードが余った場合、売却するよりも2台目のサブPCに流用するのをお勧めします。
2台構成とすることで、1台をLoRA学習している間ももう一台で作業することができたり、2台同時でwebuiを回して作業量アップなど大分便利になります。
2台目PCを組む場合は余りパーツや中古で十分です。
AIイラストは現時点ではあまりCPUは重要ではないので、それなりのスペックで大丈夫そうです。
グラフィックボードの消費電力を落として使用する関係で、電源のグレードも相当落とせます。