【ComfyUI】画像から人間を抽出して消去する
※ 以下の記事でバージョンアップしています。以下の記事もご覧ください。
前回の記事では、オブジェクトを抽出し、オブジェクト以外のものを消去することをしましたが、今回はオブジェクトを消去し、背景だけにすることをやってみました。
結果は、以下のようになります。
1. 準備
カスタムノード
ComfyUI Segment Anything
ComfyUIでSegment Anythingを利用するためのカスタムノード
ComfyUI Inpaint Nodes
Inpaintを行なう箇所で使用する
ComfyUI WD 1.4 Tagger
Hires.fixの際に、画像からpositiveプロンプトを生成するために使用する
モデル
Segment Anythingで使用するGroundingDinoのモデルとコンフィグファイルを以下からダウンロードし、ConfigUI/models/grounding-dinoディレクトリに格納してください。(grounding-dinoディレクトリがない場合は、新規作成してください)
こちらもSegment Anythingで使用するSAM (Segment Anything Model) を以下からダウンロードし、ComfyUI/models/samディレクトリに格納してください。(samディレクトリがない場合は、新規作成してください)
Hires.fixの処理部でControlNetを使用しています。そこで使用する以下のモデルをダウンロードし、ComfyUI/models/controlnetに格納してください。
ControlNet 852_a_clone_xl
以下は、ComfyUI Inpaint Nodesで使用するモデルです。ComfyUI Inpaint NodesのGithubページにダウンロードする場所があるので(以下の画像参照)、そこからダウンロードしてください。
2. ノード構成
以下がノードの全体構成になります。SAMの箇所は、前回の記事で説明したので、今回は省きます。
以下に今回のworkflowをフローチャートで表現したものを示します。大まかな流れは、次の通りです。
SAMで人間を抽出する
SAMで抽出したマスクを使用して、Inpaintで人間がいた部分を背景と同化させる
Inpaintで生成された画像をHires.fixで補正する
以下は、Inpaintを行っている箇所です。
まず、SAMで生成されたマスクをGrowMaskで拡張します。Inpaintの範囲を拡張することで、より背景に溶け込みやすくします。
次に、そのマスクをInpaint (using Model)に入力します。このノードには、元画像とInpaintモデル (MAT_Places512_G_fp16) も入力します。
最後にHires.fixの処理部です。
まず、Load Checkpointでcheckpointを読み込みます。今回は、LEOSAM's HelloWorld XLを使用しました。
次に、VAE EncodeにInpaintで生成された画像と、Load CheckpointのVAEを入力します。ここで生成されたLatentは、画像生成するKSamplerに入力されます。
KSamplerに入力するプロンプトを生成するために、Inpaintで生成された画像をWD14 Triggerに入力し、画像からタグを生成します。そこで生成されたタグをCLIP Text Encode (Prompt)に入力し、positiveプロンプトとして生成します。
positiveプロンプトは、Apply ControlNetに入力され、ControlNetが適用されます。今回使用したモデルは、ControlNet 852_a_clone_xlです。詳細は、こちらの記事をご確認ください。ControlNetのStrengthは0.3に設定しました。
最後にpositiveプロンプト、negativeプロンプト、Latentが入力されたKSamplerで画像生成します。ここでは、denoiseを0.55で生成しました。
3. 生成結果
まず、Inpaintのみの結果を示します。Inpaintのみでは、人は消えていますが、人がいた箇所が上手く補正されていません。これをHires.fixで補正します。
以下がHires.fixで補正した結果です。人がいた場所が綺麗に補正されています。他の箇所もHires.fixの影響で多少変化がある点が気になるので、まだまだ調整が必要です。
この記事でご紹介したAI技術の応用方法について、もっと詳しく知りたい方や、実際に自社のビジネスにAIを導入したいとお考えの方、私たちは、企業のAI導入をサポートするAIコンサルティングサービスを提供しています。以下のようなニーズにお応えします。
AIを使った業務効率化の実現
データ分析に基づくビジネス戦略の立案
AI技術の導入から運用までの全面サポート
専門家によるカスタマイズされたAIソリューションの提案
初回相談無料ですので、お気軽にご相談ください。以下のリンクからお問い合わせください。
この記事が気に入ったらサポートをしてみませんか?