お手軽な手直し&ディティールアップ - Zuntan03/EasyForge GitHub Wiki

様々な手法でマスクを用意することで、Flux で画像を柔軟に書き換えます。

画像は過去に Animagine と Forge Couple で生成した画像を、マスク指定した Flux で書き換えた例です。

マスクを指定した後の書き換え部分は、自動検出でマスクを用意して書き換える『お手軽な手直し&ディティールアップ』と同様です。
画像からのプロンプト生成や、LLM によるプロンプト生成を同様に利用できます。
ここではマスク関連についてのみ説明します。

Segment Anything Model(SAM) でのマスク指定

お手軽な手直し&ディティールアップ』で利用したワークフロー 41-自動検出書き換えで手直しやディティールアップ の自動判別では、重なり合った複数人からひとりひとりを個別にマスクできない場合があります。

このような場合のために、マスク指定で書き換えるワークフローの 42-範囲指定書き換えで手直しやディティールアップ を用意しました。

このワークフローを ComfyUI で開いて、左側の 編集する画像の読み込み に編集したい画像を Drag & Drop などで読み込みます。

画像の右クリックメニューにある Open in SAM Detector では、Segment Anything Model である程度の範囲を簡単に選択できます。

左クリックで選択したい点を、右クリックで選択したくない点(効果イマイチ)を追加して Detect します。

SAM Detector で高精度の範囲選択は難しいので、同じく画像の右クリックメニューにある Open in MaskEditor で微調整します。
左ドラッグでマスク追加、右ドラッグでマスク削除 です。

このようにマスクを指定することで、一人ずつ選択して書き換えることができます。

背景削除でのマスク指定

ペイント系ツールなどで画像にアルファ値でマスクを設定できれば、マスクした部分やマスクしていない部分を書き換えることもできます。

今回は 22-背景の削除 のワークフローで、背景書き換え用のマスクを生成します。

左側の 編集する画像の読み込み で画像を開いて Queue で背景を削除します。

今回の背景のように、元の画像(真っ白の背景)を考慮せずに書き換える場合は 書き換え強度(Denoise)1.0 に、書き換え幅(Shift)4 にして書き換えます。
が、ここまでやってしまうとペイント系ツールでの合成と変わらなくなってしまいます。

マスク書き換え関連のノード

  • マスク反転 で書き換える部分を反転できます。
    • マスク反転前の範囲拡張 で、マスクの反転前にマスク範囲を拡張します。
      結果的にはマスク範囲が縮小します。
  • マスク2値化のしきい値 では、0~255 のアルファ値を 2値のマスクに置き換えるしきい値を設定します。
    マスク範囲の増減に合わせて、1 から 254 の間で調整します。