スポンサーリンク

【ComfyUI】画像に描かれていない部分を描く、アウトペインティングを行う – Perform outpainting to fill in the areas not shown in the image –

チュートリアル
スポンサーリンク

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

Inpaintをやったのだから次はOutpaintでしょう。ということでOutpaintをやってみます。

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

ワークフローの用意

いつものように標準で作成されるワークフローに対してノードを追加していきます。

  • Load Image
  • Upscale Image By
  • Pad Image for Outpainting
  • Expand Mask
  • InpaintModelConditioning

OutpaintでもInapintModelConditioning使うんですねって感じです。まぁ、確かにマスク個所書き足すのでやってることとしては変わりないのかもしれません。

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

FromTo
Load ImageIMAGEUpscale Image Byimage
Upscale Image ByIMAGEPad Image for Outpaintingimage
Pad Image for OutpaintingMASKExpand Maskmask
Pad Image for OutpaintingIMAGEInpaintModelConditioningpixels
Expand MaskMASKInpaintModelConditioningmask
CLIP Text Encorde (Prompt)CONDITIONINGInpaintModelConditioningpositive
CLIP Text Encorde (Prompt)CONDITIONINGInpaintModelConditioningnegative
Load CheckpointVAEInpaintModelConditioningvae
InpaintModelConditioningpositiveKSamplerpositive
InpaintModelConditioningnegativeKSamplernegative
InpaintModelConditioninglatentKSamplerlatent_image

完成形は以下のようになるはずです。Empty Latent Imageは削除しておきます。

各種設定

ノードに対してパラメーターを設定します。

Upscale Image By

  • upscale_method : area
  • scale_by : 0.5

Pad Image for Outpainting

  • bottom : 12864
  • feathering : 0

128だと破綻しやすいので64にします。

Expand Mask

  • grow : 30
  • blur : 15

KSampler

  • steps : 30
  • cfg : 7.0
  • sampler_name : dpmpp_2m_sde
  • scheduler : karras

Outpaint元画像を用意する

今回はHentAIjを使用します。728 x 576で生成して、2倍にアップスケールします。

Positive

masterpiece, best quality, highres, photorealistic, 1girl, lingerie, street, cowboy_shot,

Negative

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

Outpaint元画像

Outpaintingを実行する

作成したワークフローに元画像をアップロードし、プロンプトを設定したうえで実行します。

プロンプトは元画像と同じものを使用します。

このままだと縮小されたままなのでアップスケールするフローを追加します。ここは特別なことをしていないので手法は省きます。

完成形ワークフロー

実行しましょう。なお、Expand Maskの設定ですが、境界が気になる場合はgrowや、blurを増やすと良いです。

実際にOutpaintingした画像

まとめ

上手くOutpaintingできましたでしょうか。正直、なかなかうまくいかないのではないかと思います。

特に書き足した部分との境で人体がズレることが結構ありました。そこについては前述したようにExpand Maskを設定して対応したのですが、必ずしもこれで解決するわけでもありません。

ここは根気強くやってみるしかないかなと思います。

また、今回はInapintModelConditioningnoise_maskonにしていますが、offにしてみても 良いかもしれません。

参考

noise_maskをoffにして、最初のKSamplerのdenoiseを0.7にしてみました。意外といいかもしれません。

コメント

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