スポンサーリンク

【ComfyUI】画像の指定部分を描きなおす、インペインティングを行う – Perform inpainting to redraw the specified area of the image –

ComfyUIで生成した下半身がパンティーのみの女性 チュートリアル
スポンサーリンク

生成AIでエッチな画像を作る探求

ComfyUIでImage to Image(i2i)を行う方法は記事にしていましたが、Inpaintする方法は記事にしていなかったので簡単ですが記事として残しておきます。

【ComfyUI】画像を参照して新たな画像を生成する(Image to Image) – Generate a new image based on a reference image –
ComfyUIを利用して画像を参照して新たな画像を生成する、Image to Image(i2i)を行う方法を解説しています。元画像のアスペクト比を無視して行う方法と元画像のアスペクト比を維持し、適切にパディングを行ってからi2iを行う2パターンを解説しています。

※本投稿にはレンサバ運用費を賄うため、アフィリエイトリンクが含まれています

ワークフローを用意する

まずはワークフローを用意します。ComfyUIを起動したらまず作成される標準的なワークフローです。

次にInpaintをするためにノードを追加します。

Load ImageInpaintModelConditioningを追加します。

ノードを接続します。青色マーカーは既存のノードです。

FromTo
Load ImageIMAGEInpaintModelConditioningpixels
Load ImageMASKInpaintModelConditioningmask
Load CheckpointVAEInpaintModelConditioningvae
CLIP Text Encorde (Prompt)CONDITIONINGInpaintModelConditioningpositive
CLIP Text Encorde (Prompt)CONDITIONINGInpaintModelConditioningnegative
InpaintModelConditioningpositiveKSamplerpositive
InpaintModelConditioningnegativeKSamplernegative
InpaintModelConditioninglatentKSamplerlatent_image

Empty Latent Imageは不要になります。削除しましょう。

スポンサーリンク

このようになります。

Inpaint元の画像を用意する

今回はInpaintする元画像も生成します。使用したモデルはberet mix Realです。

Positive

masterpiece, best quality, highres, photorealistic, 1girl, standing, street

Negative

worst quality, normal quality, ugly, bad_anatomy, watermark, text, logo

Maskを設定して、Inpaintを実行する

Load Imageに画像を設定し、Maskを設定します。

Opacityを1にしていますが、数値を強めると書き換えが強くなる半面、元画像とズレたりします。値は調整してみてください。

noise_maskをonにした場合

Positive

nsfw, bottomless, no_pants, pussy

マスク部分が書き換えられ、下半身が裸になりました。

noise_maskをoffにした場合

InpaintModelConditionのnoise_maskをoffにした場合は全体が書き換わり、異なる結果となります。

全体が書き換わるのでプロンプトを変更します。

Positive

nsfw, masterpiece, best quality, highres, photorealistic, 1girl, standing, bottomless, no_panties, pussy, street

やってることとしてはImage to Imageに近いですね。

まとめ

今回はComfyUIでInpaintを行う手順を動画メインで説明しました。

このほかにもマスク個所を書き換える方法はあるのですが、ひとまず簡単にできるやり方にしました。

また、本来はInpaint前にサイズを変更したほうが良いのですが、この点はちょっとサボりました。

Inpaintを行うノードは他にもあるので、別途違いを見る記事を作ってみようかと思います。

スポンサーリンク

追記

簡単ではありますが、InpaintModelConditioningVAE Encoding (for Inpaintig)Set Latent Noise Maskの違いを見てみました。

マスク範囲はパンツの真ん中あたりをマスクしています。

InpaintModelConditioning

元画像を勘案した書き換えをするようで、Maskした範囲のパンツが残りがちです。

VAE Encoding (for Inpaintig)

こちらはMask範囲を強く書き換えるため、指示通りになりやすいですが、一方でマスク境界が目立つことがあります。

同一モデルであればそこまで気になりませんが、違うモデルを使うと結構気になるかと思います。

Set Latent Noise Mask

傾向的にはVAE Encode (for Inapinting)と同じです。ただし、こちらの方が、方向性が定まりにくい感じがあります。(マスク範囲にカバンが出現したり

比較してみたところ、通常であればInpaintModelConditioningが好ましいかなと思います。

コメント

タイトルとURLをコピーしました