AI関連

Stable Diffusionでポーズを自在に操る方法!プロンプトのコツを解説

Stable Diffusionを使って画像生成をしていると、
「思った通りのポーズにならない!」と悩んだことはありませんか?

特にキャラクターのポーズを指定するのは難しく、何度プロンプトを調整してもランダムなポーズになってしまうことも。

この記事では、Stable Diffusionでポーズをしっかりコントロールする方法を解説します!

基本的なプロンプトのコツから、ControlNetを使った高度な方法まで紹介するので、ぜひ参考にしてください。

Stable Diffusionでポーズを指定する基本的な方法

まずは、Stable Diffusionでポーズを指定する際の基本的なテクニックを紹介します。

1. プロンプトにポーズの説明を加える

Stable Diffusionのプロンプトには、ポーズを説明する単語を入れることで、ある程度コントロールできます。

例:立って腕組みをしているキャラクター

a girl standing with arms crossed, detailed face, anime style  

例:座っているキャラクター

a boy sitting on a chair, looking at the camera, detailed background  

このように、"standing"(立っている)"sitting"(座っている)などの単語を入れると、ポーズを反映しやすくなります。

2. ポーズ指定のプロンプト一覧

以下の表に、よく使われるポーズ指定のプロンプトをまとめました。

ポーズプロンプト例
立ちポーズa girl standing, full body, looking at the camera
腕を組むa boy standing with arms crossed, confident expression
腰に手を当てるa woman standing with hands on hips, looking sideways
片足を上げるa man standing on one leg, playful pose
座るa girl sitting on a chair, legs crossed, smiling
あぐらをかくa man sitting cross-legged, meditative pose
膝をつくa woman kneeling on the floor, looking up
ジャンプa boy jumping in the air, dynamic pose
ダンスa girl dancing with arms raised, joyful expression
振り向くa woman turning around, looking over shoulder
前かがみa man leaning forward, focused expression

このように、ポーズを詳細に指定することで、より狙った構図の画像が生成されやすくなります。

ControlNetを使って自由自在にポーズを指定する

Stable Diffusion単体では、細かいポーズを完全にコントロールするのは難しいですが、ControlNetを使うことで正確に指定できます。

ControlNetとは?

ControlNetは、画像の構造を指定してStable Diffusionで反映させる拡張機能です。

特に「OpenPose」を使うと、スケルトン(骨組み)を指定して、思い通りのポーズにすることができます。

OpenPoseを使ったポーズ指定の手順

  1. ControlNetをインストールする
    • AUTOMATIC1111のWeb UIを使っている場合、「Extensions」からControlNetを追加できます。

ControlNetをインストールする手順は下記を参考にしてください!

  1. OpenPoseのスケルトン画像を用意する
    • 「Depth-Anything」や「PoseMy.Art」などのツールを使うと、好きなポーズのスケルトン画像を作れます。
    • 自分で適当なスケルトン画像を描いてもOK!
    • Civitaiなどからダウンロードする。
  2. ControlNetでOpenPoseを適用する
    1. 生成したい画像のプロンプトを入力
    2. ControlNetの設定で「Enable」をONにし、「Preprocessor」を「none」、「Model」を「control_openpose」に設定
      ※OpenPoseのモデルデータをダウンロードしていない場合はHugging Faceから行う
    3. 用意したスケルトン画像をアップロード
  3. 画像を生成する
    • これで指定したポーズのキャラクターが出力されるはず!

ControlNetを使うと、プロンプトだけでは難しかったダイナミックなポーズも自由に作れるので、ぜひ試してみてください。

ポーズ指定の精度を上げるための追加テクニック

ポーズをより正確に指定するための補助的なテクニックも紹介します。

1. Negative Prompt(ネガティブプロンプト)を活用する

望ましくないポーズを避けるために、Negative Promptを使いましょう。例えば、

negative prompt: sitting, hands in pocket

これにより、「座っている」「ポケットに手を入れる」ポーズを避けることができます。

2. 画像を参考にする(img2img)

もし特定のポーズを再現したい場合、img2img機能を使うのも手です。

元となるポーズの画像を読み込ませて、スタイルだけ変更することができます。

3. LoRAを活用する

特定のポーズを学習させたLoRAを使うと、特定のポーズの再現率が上がります。

例えば、戦闘ポーズやダンスポーズなどをLoRAで学習させておけば、簡単に指定できるようになります。

まとめ

Stable Diffusionでポーズを指定する方法を解説しました!

まとめると、

  • 基本のプロンプトでポーズ指定(standing, sitting, arms crossedなど)
  • 詳細なポーズワードを活用(looking up, kneeling, leaning forwardなど)
  • ControlNetのOpenPoseを使うと自由にポーズを設定できる
  • Negative Promptやimg2imgで精度を上げる
  • LoRAを使うと特定のポーズが再現しやすい

この方法を試せば、思い通りのポーズでStable Diffusionの画像を作れるようになります!

ぜひいろいろな手法を試して、理想のポーズを実現してくださいね!

-AI関連
-,