2023年12月23日土曜日

stable diffusionで実写合成で背景を書き換え

stable diffusionで実写の背景を置き換えしてみました。

コスプレ撮影などでは、実際には用意できない背景なども多いと思うので、後からレタッチをするための選択肢として使えるのかの検証をしてみます。

たぶん今どきのPhotoshopでは簡単にできそうですが、泥臭い調整が必要な分だけカスタマイズ性もあると思うのです。

画像生成は、Automatic111から、img2imgのinpaint機能を使用しています。


作例として、手動でのマスクとtxt2maskの使用例を載せていますが、どちらが良いという感じは無く、画像によって向き不向きがあるのかなって感じがしました。

  • Masked Content(マスク部を画像生成時にどのように扱うか?)
  • Inpaint area (画像生成はマスク範囲だけで実施するか?)
  • Denoising strength(元の画像からどのくらい書き換えるか?)

の3つを操作するほうが重要みたいです


作例1 手動でのマスク選択

モデルさんの周り以外をMaskして画像生成の対象にしています。

モデルさんにマスクが被らないようにしているので、手で触っている柱の辺りは違和感が残っているかな

プロンプトには「rose(バラ), background only(背景のみ), gate(門)」あたりを指定しています。


生成元の画像


生成後の画像






作例2:手動でのマスク選択

背景にあるオブジェを置き換えています。
マスク範囲が狭いので、オブジェが綺麗にはまらないことが多かったです。
立像のような縦長のものは生成できたけど、ライオンの像などはうまくいきませんでした。

生成元の画像

生成後の画像




作成3:txt2maskの利用

txt2maskはUnpromptedプラグインに含まれる機能です。
「tree, flower, garden」をマスク対象としています。うまくマスクされない部分は追加で手動でマスクしています。
生成時のプロンプトは「Christmas, illumination, mushroom(きのこ)」あたりを使用しています。

生成元の画像


生成後の画像





Model:そるとさん