【ComfyUI】 髪を抽出し、髪色を変える
画像編集をしていて、指定した箇所だけ変えたい時がありますよね。今回は、ComfyUI-LayerStyleのSegmentAnythingUltra V2を使用して、髪のみを抽出し、髪色を変えてみました。SegmentAnythingUltra V2は、指定した箇所を抽出できるdetecterで、様々なものを画像から抽出できます。これにInpaintを組み合わせることで、抽出した箇所だけを変更できます。
1. 準備
カスタムノードのインストール
ComfyUI Layer Style
ComfyUI Manaerからインストールしてください。
インストール後に以下のコマンドで必要なライブラリをインストールしてください。
pip install -r ComfyUI/custom_nodes/ComfyUI_LayerStyle/requirements.txt
モデルのダウンロード
SegmentAnythingに必要なファイルをダウンロードし、適切なフォルダに格納します。ComfyUI_LayerStyleのGithubのページに必要なファイルと格納先が記載されているので、そちらの指示に従ってください。
以下が指示の箇所になります。
以下が日本語訳になります。
2. workflowの構成
以下が今回のworkflowの全体像になります。
まず、SegmentAnythingUltra V2ノードで髪を抽出します。promptに抽出したい箇所を明示します。今回は、髪の毛を抽出したいので、"hair"と入力しました。
次に、抽出した髪のマスクの箇所をinpaintでブロンド髪にします。
まず、抽出した髪のマスクをGrowMaskで範囲を拡大します。その拡大したマスクをInpaintModelConditioningに入力します。また、抽出元の画像もInpaintModelConditioningに入力します。
次に、checkpointの読み込みと、positive/negativeプロンプトを定義します。positiveプロンプトには、"blonde hair"を入力します。今回は、高速化するためにLightningのLoRAを入れていますが、入れなくても大丈夫です。Load CheckpointのVAEは、InpaintModelConditioningに入力します。
positive/negativeプロンプトは、Apply ControlNetに入力され、ControlNetが適用されます。今回は、Sketchを使用して、形を整えています。そこからpositive/negativeプロンプトがInpaintModelConditioningに入力されます。
InpaintModelConditioningの出力は、KSamplerに入力され、マスクの箇所に対して生成が行われます。
3. 生成結果
以下が生成結果になります。左が参照元、右が生成後の画像です。髪の形状を保ったまま色が変わっていることが確認できます。髪以外にも服や靴にも適用できるため、服を変えたり、顔を変えたり、好きな箇所だけを変更できるので便利ですね。
この記事でご紹介したAI技術の応用方法について、もっと詳しく知りたい方や、実際に自社のビジネスにAIを導入したいとお考えの方、私たちは、企業のAI導入をサポートするAIコンサルティングサービスを提供しています。以下のようなニーズにお応えします。
AIを使った業務効率化の実現
データ分析に基づくビジネス戦略の立案
AI技術の導入から運用までの全面サポート
専門家によるカスタマイズされたAIソリューションの提案
初回相談無料ですので、お気軽にご相談ください。以下のリンクからお問い合わせください。
この記事が気に入ったらサポートをしてみませんか?