禁断のコラ画像作成

禁断のコラ画像作成 Stable Diffusion
禁断のコラ画像作成

みなさん水玉コラってご存知ですか?
水玉部分をくり抜いた水玉模様を人の体に重ねることで、あたかも裸に見えるという画像です。
これを見たときは衝撃を受けたとともに、よくこんなものを思いつくなと感心したものです。
ヒトの欲望は新たな発明を促進させると感じた一件でした。

水玉コラ
水玉コラ



もう一つ、妄撮というのをご存知ですか?
紙を破いたようにして人の体の一部を変更して、服の下の妄想を映像化する画像です。
考えた人は天才だと思います。
今回紹介するものはその妄撮のようなことをAIで実現する方法です。

妄撮
妄撮



ただし悪用はダメです。作成した画像は絶対に公開しないでください。
名誉毀損、プライバシー、著作権侵害に注意してください。
個人で楽しむだけにしてください。

従来のコラ作成手法

コラを作成する場合、以下のような手法を取るのが一般的ではないでしょうか。

従来のコラ作成
  • 元画像に別画像の一部を貼り付け
  • 元画像の一部をマスクしてInpainting(プロンプト付き)
  • 元画像をOutpainting(プロンプト付き)

1つ目は画像編集ソフトを使って違和感がない画像を作成するのは大変だと思います。

2つ目はある程度うまくいきます。
ただ画像生成ガチャを結構回さないと良い画像は生成できません。
体をマスクして画像生成、もしくは顔をマスクしてマスク以外を画像生成する感じです。

3つ目もある程度うまくいきます。
ただ画像生成に時間がかかりますし、これもガチャ運が必要です。
顔画像に対し下部分をOutpaintingする感じです。

画像生成AIが発展してコラ画像生成はしやすくなりました(リストの下2つ)が、
さらにレベルアップさせたのが次に紹介する手法です。

新しいコラ作成手法

新しいコラ作成手法として以下を提案します。

新しいコラ作成
  • OpenPose + Inpainting

元画像のポーズを保持したまま、変更したい部分をInpaintingで描き換えてあげます。
こうすることで妄撮のような、同じポーズだけどこっちは服を着ていない!という画像を作成できます。

OpenPoseはStable Diffusionの拡張機能であるControlNetの一機能です。
どんな画像を生成できるかは以下で紹介しています。

具体的にどう作っていくのか説明します。

ポーズ固定で描き替え

手順は以下の通りです。

手順
  1. 元画像を入力
  2. 描き直したい箇所をマスク
  3. プロンプトを入力
  4. 元画像をControlNet画像としても入力
  5. Preprocessorにopenpose full、Modelにopenposeを選択
  6. Generate

実際にStable Diffusion Web UIで動かしながら説明します。

ControlNet + Inpainting 手順①
ControlNet + Inpainting 手順①

<手順1>

img2imgタブ
Inpaintタブ
の画像入力欄に画像を入力します。

ちなみにこの画像はAIで生成したものです。

ControlNet + Inpainting 手順②
ControlNet + Inpainting 手順②

<手順2>

描き直したい箇所をマスクします。

黒いスーツなのでわかりにくいかもしれませんが、黒い部分がマスクです。

ControlNet + Inpainting 手順③
ControlNet + Inpainting 手順③

<手順3>

マスク部分をどう描き替えたいのか、
プロンプトで指定します。

ControlNet + Inpainting 手順④〜
ControlNet + Inpainting 手順④〜

<手順4>
ControlNetタブの画像入力欄に画像を入力します。<手順1>で入力した画像と同じものを入力します。

<手順5>
Enableにチェック、PreprocessorとModelにOpenPoseを選択します。

<手順6>
「Generate」ボタンをクリックします。

実際に生成した画像はこちらになります。

元画像1
元画像1
コラ画像1
コラ画像1
元画像2
元画像2
コラ画像2
コラ画像2

ポーズは変わらず、服だけ変更することに成功しています。
下の画像は右手もマスクしましたが、OpenPoseで手の形も固定できていますので、
違和感なく生成できています。

以下に注意点や気づきを載せていますので参考にしてください。

Tips
  • Denoising strengthで元画像の保持率を決める
    0:元画像を保持、1:プロンプトを優先
  • 生成しやすいようにマスクする
    マスクは体にして体を描き直す(Inpaint masked)
    顔をマスクしてマスク以外を描き直す(Inpaint not masked)
  • 顔以外をマスクすると髪が伸びがち
    顔マスクでマスク以外描き直しか、プロンプトでshort hairにするとよい。
  • 一度ポーズ画像を作成した場合、ControlNet画像に元画像ではなくポーズ画像を入力するのもよい。その際はPreprocessorにnoneを指定する。
    元画像からポーズ画像を抽出する処理を省略できる。
  • 手の生成は苦手なのでなるべく手はマスクしない方がよい。
    ただOpenPoseで手の形も固定できる。
  • 服の影が残る可能性があるため、余裕がある限り大きめにマスクするとよい。
  • お気に入りの服LoRAと併用するのもよい

まとめ

OpenPose + Inpaintingでコラ画像を生成することに成功しました。
今回生成した画像と元画像を切り貼りすることで妄撮のような画像も作ることができます。

ヒトの想像力、探究心は無限大です。
OpenPose + Inpaintingだけでなく、いろいろな技術を組み合わせることで
もっとジョイフルな画像生成ライフを送れるかもしれません。
みなさんもいろいろお試しあれ。

あと、OpenPoseでまで指定できるようになれば、さらに精度は上がりそうですね!

コメント

  1. sh より:

    マスクした部分の元の色が反映されてしまいます。対処法はありますか?

    • trunten より:

      Masked contentパラメータを変更すると良いです。
      おそらくoriginalで設定されていますので、fillにすると良くなるかもしれません。

      • sh より:

        ありがとうございます🙇‍♀
        試してみます
        マスクした部分の彩度が薄くなってしまうっていうのもよくあるんですがそれが関係しているのでしょうか?

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