AIの手は、オープンソースのモデルではいまだに問題です。このワークフローは、1枚ずつそれを直します。悪い手の上に大まかなマスクを描くと、Fluxがその部分だけを高解像度で描き直します。Fluxは、これに使った中で最良のオープンソースモデルで、ライトセーバーを両手で包むような本当に複雑なケースでも機能します。
ここで直す画像はSDXLでレンダリングしたもので、それをこのFluxの構成に通しました。フォルダ全体を自動で直すには、バッチ版のAIの顔と手の自動修正をご覧ください。
ポイント
- ComfyUIのマスクエディターで、壊れた手を手作業でマスクします。大まかで構いません。
- 切り出して拡大: マスクした領域がセグメントになり、512 pxで再描画されます。
- 設定: denoise 0.6〜0.75、プロンプトは「two hands, five fingers」。
- 難しいケース: 先に、Photoshopまたは無料のPhotopeaで、不自然な指を塗りつぶします。
- 数回再実行します。Fluxを読み込んだ後は、1回につき約16秒です。
手が壊れる理由
問題はピクセルです。クローズアップをレンダリングすれば、手は多くのピクセルを占めてきれいに仕上がります。全身にズームアウトすると、手は小さくぼやけた塊になり、モデルは指を即興で作り始めます。
そのため修正は、手を切り出し、拡大して、Fluxで再度描画し、元に戻すことです。
1. 画像を読み込んで、マスクを描く
画像を読み込み、右クリックしてマスクエディターを開きます。手の上に大まかに塗ります。きれいである必要は本当にありません。保存すると、画像にマスクが付きます。
これは手動版で、領域を自分で選びます。手だけでなく、描き直したいものなら何にでも使えます。例えば足です。
2. マスクをセグメントにする
(Impact Packの)Masks to SEGSが、マスクをセグメントに変換します。これが重要な手順で、Detailer (SEGS)ノードが、その小さな領域を描画前に512ピクセルまで拡大するからです。小さな手が、クローズアップの解像度を得ます。
3. Fluxをdetailerに接続する
detailerは、通常のFlux生成と同じ入力を受け取ります。
- Load Diffusion Model: Flux devを、detailerのモデル入力へ。
- VAE: Flux VAE。
- DualCLIPLoader: Fluxの2つのテキストエンコーダー。Fluxは両方を必要とします。
- Flux Guidanceを通したポジティブプロンプト:「two hands, five fingers」が描き直しを導きます。ほかの対象なら変更してください(私は最初、別の作業の顔のプロンプトを残したままにしていました)。ネガティブプロンプトは空のままです。Fluxには不要です。
4. 重要な設定
- Guide size: デフォルトは512。さらに解像度が欲しければ1024に上げますが、時間がかかります。
- Steps: 品質には上げ、速度には下げます。
- Denoiseが最も重要です。 元の領域のどれだけを新しいノイズで置き換えるかを決めます。0.5未満では、モデルは無関係なもの(手の代わりに金属のバケツや別の頭)を作り出します。低すぎると、古い醜い手が残ります。私には0.6〜0.75がうまくいきました。
rgthreeのimage comparerが、前後を表示します。
難しいケースのペイントオーバーのコツ
手が直らないことがあります。余分な指が残るのは、denoise中にモデルがその領域をぼかしつつも、指の形をした何かがそこにあると認識して、描き直してしまうからです。Fluxでも間違えます。
修正は1分で済みます。先に不自然な形を塗りつぶすのです。Photoshopや、同じように使える無料のオンラインエディターPhotopeaで、余分な指を削るか、不自然な指を短くします。それからComfyUIでマスクして、もう一度実行します。
失敗の大半は非常に不自然な形が原因なので、この小さな手順が非常に役立ちます。
実行して、また実行する
最初の実行は、Fluxを読み込む間(約1分)遅くなります。その後は、1回の修正に約16秒かかるので、何度も実行してください。最初の結果は元より良くなりましたが完璧ではなく、下の手が少し壊れていました。さらに数回実行すると、2つの手が絡み合ってライトセーバーを持つ、本当にきれいな手になりました。どんなSDXLの構成でも、これはできないと思います。
結果は、ComfyUIの出力フォルダに保存されます。
Flux用のGPUがない?
このワークフローは、無料のお試し時間があり、ブラウザでそのまま実行できるRunComfyにあります。手のマスクは、ローカルと全く同じように行います。以前は20〜30分単位でRunComfyにお金を払っていましたが、今はこの種の作業をRunPodで動かしています(RunPod入門をご覧ください)。このワークフローは、他のものと一緒に私のPatreonにもあります。
RunComfyのリンクは紹介リンクで、私のRunPod紹介リンクも同様です。Googleでサインアップした新規RunPodアカウントは最初の10ドルの利用後に5〜500ドル分のクレジットを受け取れ、私には少額の紹介報酬が入ります。
動画版を見る (7:14)
上の内容はすべて動画でも説明しています。画面を見ながら進めたい方はこちらをどうぞ。 動画は英語です。
よくある質問
AIの手を直すのに最適なオープンソースモデルは何ですか?
Fluxです。ライトセーバーのグリップを両手で包むような、SDXLにはできなかった手も扱えました。
手を直すには、denoiseの値をいくつにすべきですか?
0.6〜0.75です。0.5を下回ると、モデルはその場所にランダムなものを作り、低すぎると古い壊れた手が残ります。
そもそも手が壊れるのはなぜですか?
ピクセルが足りないからです。全身の画像では、手は小さくなります。手を切り出して512ピクセルで描画すれば、モデルに適切に描く余地を与えられます。
修正しても指が1本多い場合はどうしますか?
マスクする前に、Photoshopまたは無料のPhotopeaで余分な指を塗りつぶしてから、もう一度実行してください。不自然な形は、Fluxでも混乱させます。
