画像生成でポーズだけを変えたい!って時ありますよね?
そんな時にStable Diffusionでポーズを変える方法がいくつかあります。
今回は、その方法を実際に検証しながら解説していくので、ぜひ参考にしてみてください。
※Stable Diffusionの基本的な使い方については、以下の記事で解説しています。
Stable Diffusionでポーズだけ変更する方法は?
Stable Diffusionでポーズだけ変更する方法は、2つあります。
①呪文(プロンプト)で指定する
②ControlNetのOpenPoseという機能を使う
この2つの方法について詳しく解説していきます。
Stable Diffusionでポーズを変更する方法①:プロンプト
呪文(プロンプト)で変更する際には、シード値を固定する必要があります。
このシード値と特定の呪文(プロンプト)を固定し、ポーズを追加することで、画像のポーズを変更することができます!
手順はこんな感じです。
①自分の好きな被写体を画像生成する
②シード値を固定する
③指定したいポーズを呪文(プロンプト)に入力する
①自分の好きな被写体を画像生成する
Stable Diffusionを使って、モデル参考サイトやプロンプト参考サイトなどを見ながらご自身で好きな被写体を生成してください。
②シード値を固定する
生成結果からコピー&ペーストして入力するか、seedの項目にあるリサイクルアイコンをクリックすると生成した画像のシード値が入力されます。
※Seed値について詳しく知りたい方は、以下の記事を参考にしてください!
③指定したいポーズを呪文(プロンプト)に入力する
これで、被写体は変えないままポーズだけ変えることができます!
コツとしては、固定する要素を細かく指定することです。
眉毛・目の形・唇の厚さ・体形などを詳しく指定することで、より元の被写体に寄った画像を生成できます!
また、反映されていない要素にさらに重みをつけることで、再現性も高まります。
続いて、この方法を基に実際にポーズだけ変えてみましょう!
【検証】プロンプトを使って実際にポーズを変えてみた!
呪文(プロンプト)でポーズだけを変える方法をおさらいしましょう。
①自分の好きな被写体を画像生成する
②シード値を固定する
③指定したいポーズを呪文(プロンプト)に入力する
では、実際に作っていきましょう!
①今回はこちらの被写体を使います。
(Action-packed:1. 2), (Professional: 1. 2), (Corporate: 1. 1), (Polished: 1. 1), (Confident: 1. 1), (Sophisticated: 1. 1), mixed-race woman in her mid-twenties, dressed in a tailored professional attire, (looking directly at the camera: 1. 2), standing confidently in front of a large window in a modern office building, (head to mid-thigh shot: 1. 1), (well-lit: 1. 1), (clean: 1. 1), (sharp: 1. 1), (sleek: 1. 1), (minimalist: 1. 1), (chic: 1. 1), (contemporary: 1. 1), (professional demeanor: 1. 1), (business-like: 1. 1), (approachable: 1. 1), (stylish: 1. 1), (elegant: 1. 1), (composed: 1. 1), (competent: 1. 1), (successful: 1. 1), (career-oriented: 1. 1), (confident smile: 1. 1), (focused gaze: 1. 1), (dynamic: 1. 1), (inspiring: 1. 1), (motivating: 1. 1).
この呪文(プロンプト)の中で、残しておきたい特徴はそのまま使い回します。
②次に、シード値を固定します。
生成結果からコピー&ペーストして入力するか、seedの項目にあるリサイクルアイコンをクリックすると生成した画像のシード値が入力されるんでしたね。
または
この方法でシード値を固定します!
③指定したいポーズを呪文(プロンプト)に入力する
今回は、『腕を組んでいる』ポーズにしたいので、呪文(プロンプト)に“she has her arms crossed(訳:彼女は腕を組んでいる)”を入力します!
『Generate』ボタンを押して生成すると…
良い感じにポーズだけ変更できましたね!!
呪文(プロンプト)でポーズだけ変更するときはこんな感じで生成してみてください。
- Stable Diffusionのプロンプトの見本が知りたい
- 画像生成が思ったようにできない
- 色々なプロンプトを探したい
Stable Diffusionでポーズを変更する方法②:ControlNet
ControlNetは、Stable Diffusionの拡張機能ツールです。
デフォルトとしてStable Diffusionには設定されていないので、自分で別途追加する必要があります。
ControlNetのツールを使用することで、ポーズを指定して変更することができるようになります!
ControlNetのインストール方法
ControlNetのインストール方法については、以下の記事で詳細に説明していますので、ぜひご覧ください!
ControlNetでポーズだけ変える方法
つづいて、ControlNetでポーズだけ変える方法について解説します。
ControlNetでポーズだけ変える方法をまとめると、以下の手順になります。
①ポーズを変えたい人物画像を用意
②Stable Diffusionに【OpenPoseEditor】をインストール
③【OpenPoseEditor】で取りたいポーズを決める
④出来たものをControlNetの画像欄にドラッグ&ドロップ
⑤『PNG into』でポーズを変えたい画像をドラッグ&ドロップ
⑥『Send to txt2img』をクリック
⑦『Generate』で生成完了!
少し手間がかかる作業ですが、慣れれば簡単にできます!
【検証】実際にポーズを変えてみた!
先程説明した使い方をもとに、ControlNetを使ってポーズを変えてみます!
ControlNetを使うときは、こちらのノートブックでも簡単に利用できるので是非使ってみてください。
①ポーズ元の画像は、こちらを使います。↓
こちらの画像は、PromptHeroから引用してきたものです。
②Stable Diffusionに【OpenPoseEditor】をインストールします。
1.『Extention』の『Install from URL』をクリック
2.URLの欄に、“https://github.com/fkunn1326/openpose-editor”を入力
3.『Install』をクリック
4.『Installed』を開いて、openpose-editorがインストールされているか確認
5.確認できたら、『Apply and quite』でStable Diffusionを再起動したら完了!
この方法でインストールしてみてください。
※もっと詳しい解説が見たい!という方は、以下の記事を参考にしてください!
③【OpenPoseEditor】で取りたいポーズを決める
1.『OpenPoseEditor』をクリック
2.変えたいポーズを棒人間に取らせる(関節部分を動かせます!)
3.『Send to txt2img』をクリック
今回は、右手を上に挙げたポーズを指定しました。
④出来たものがControlNetの画像欄にドラッグ&ドロップされているか確認
1.ControlNetの画像欄に、OpenPoseEditorで作ったポーズの画像がドラッグ&ドロップされているか確認
2.『Enable』をクリック(ControlNetを有効にするため)
3.Preprocessorを“none”に、Modelを“control_openpose-fp16[9ca7cc5]”にする
⑤⑥『PNG into』でポーズを変えたい画像をドラッグ&ドロップ
1.『PING info』を開く
2.画像欄に、ポーズを変えたい元画像をドラッグ&ドロップ
3.『Send to txt2img』をクリック
元画像を生成した際の呪文(プロンプト)がそのまま入力されるため、ほぼ同じ人物をもう一度生成できます。
⑦『Generate』をクリックで画像生成
1.呪文(プロンプト)やシード値がちゃんと入力されているか確認して、『Generate』をクリック
2.指定されたポーズに変更された画像が生成されます!
※『Sampling method』は“DPM++ 2M SDE Karras”にすると綺麗に画像生成できます。
最終的に出来上がった画像がこちらです!
服装など少し変わってしまった部分もありますが…ポーズは指定したものに変更できましたね!
呪文(プロンプト)などをさらに細かく指定すると、元画像により近いものが生成できるので、是非チャレンジしてみてください!!
ControlNetを使用するときの注意点
非常に便利なControlNetですが、OpenPoseなどは商用利用不可のものがあります。
有料のライセンスを取得すれば可能になります!
OpenPose は非営利目的で無料で利用できます。
CMU-Perceptual-Computing-Lab/openpose
と公式ページに書いてあるので、注意しましょう。
また、使用できる範囲はプリプロセッサやモデルによって異なるため、公式ページのライセンスなど確認が必要になります。
※ControlNetの商用利用については、以下の記事で解説しています。
まとめ
いかがでしたでしょうか?
今回説明した内容をまとめると、以下のようになります。
画像生成の際に、ポーズだけを変更する方法は、
・①呪文(プロンプト)で、シード値を固定してポーズを変更
②ControlNetのOpenPoseを使ってポーズを変更
・ControlNetはライセンスがないと商用利用できない
特にControlNetは、機能がたくさんあるため全てを把握するのは非常に難しいですが、画像の修正、ポーズの指定など、出来ないことがないほど機能が充実しているたくさん練習してみると良いですよ。
再現性を高めるためには、呪文(プロンプト)などで調整を加えることが必要なため、思い通りの画像生成には粘り強さが大切です!
是非紹介した方法でさまざまなポーズを試してみてください!
- Stable Diffusionのプロンプトの見本が知りたい
- 画像生成が思ったようにできない
- 色々なプロンプトを探したい