表情差分を作ろう!
概要
人物の表情差分を作るトリッキーな方法を解説します!
どういう状況で使うの?
表情差分を作成する一般的な方法はインペイントを使う方法が主流です。
https://qiita.com/itohdaigo/items/3fc0e0c6647aac04f74f
https://qiita.com/itohdaigo/items/3fc0e0c6647aac04f74f
こちらの画像を具体例としてやってみます。
※特に注意書きがない場合は私の自作画像です。
彼女を起こして怒らせてしまった感じの表情差分を作ってみましょう!
まずは記事にあるようなインペイントを試してみます。
プロンプトに"angry"を足して強度を調整したりseeeで生成ガチャを軽く回してみました。
怒っていると言えばそうかも知れませんが、ちょっと上手く行っていません…
そんなときに試して見る価値があるトリッキーな方法を紹介します。
どんな方法?
この方法はControlNet v1.1以降のinstruct Pix2Pixを使うのがポイントです。
instruct Pix2Pixとは?
instruct Pix2PixはControlNetで指定した画像に対してプロンプトの指示に合うような画像を生成するものです。
※プロンプトが生成したい画像の描写ではなく元画像に対する指示になっている点に注意してください。
例えば、家の画像に対してプロンプト「make it on fire(燃え上がらせろ)」で生成すると元画像の家が燃えたような画像を生成してくれます。
画像に何が写っているかはControlNetで指定した画像がAIに教えてくれるので、instruct Pix2Pixにおけるプロンプトは元画像に対する指示にフォーカスしている点がミソです。
実際にやってみよう!
txt2imgでプロンプトを"make her angry"のみ、ネガティブプロンプトは元画像のままとして他の設定は元画像のものを指定します。
※ seedも固定
次にControlNetにinstruct pix2pixを設定します。
モデル名が分かりづらいですがcontrol_v11e_sd15_ip2pです。
生成してみるといい感じに怒ってる画像になりました!
しかし、顔以外も変わってしまっているので表情差分としては不適切です。
ここからはちょっと手間がかかります。
怒らせた画像から顔領域を切り抜いて、元画像に貼り付けて位置合わせします。
※ 私はMacなのでプレビューの投げ縄で領域選択してコピーし、貼り付ける画像にペーストしています。
よく見ると貼り付けたときの境界線と色味の差が気になります。
最後にControlNetなしの通常のインペイントでなじませます。
※ Resize modeはJust resize、Denosing strengthは0.3ぐらいにします。
貼り付けた領域を含むようにマスクしてインペイントします。
これで綺麗に表情差分が作れました!
注意点
この方法は万能薬ではありません。表情差分が上手く作れないときに試す選択肢の一つとして持っていると表現に幅が出せます!
上手く行った・行かないがあれば是非コメントしてください!
この記事が気に入ったらサポートをしてみませんか?