業界・業務から探す
導入目的・課題から探す
データ・AIについて学ぶ
News
Hakkyについて
ウェビナーコラム
◆トップ【AI・機械学習】
LLMの出力比較Bard Extensions(拡張機能)ClaudeGitHub CopilotとはGrokLLMエージェントデザインパターンまとめ生成AIの速度比較AIによる画面操作生成AI比較複雑なタスクを解決するAgentic AI設計戦略と応用例
Hailuo AI
AI

執筆者:Hakky AI

【 лиц.D固定】StableDiffusionでポーズだけ変更する裏技

tip
記事のポイント
  • シード値固定で顔と衣装を維持しつつ、ControlNetとOpenPoseでポーズを精密に制御。
  • プロンプトを具体的に記述し、ポーズ、表情、背景を指示して画像の品質と一貫性を向上。
  • ControlNetとOpenPose連携で、複数人物のポーズ制御や背景との調和を実現。

はじめに

Stable Diffusionで生成される人物やキャラクターのポーズを、顔や衣装を固定したまま変更したいと思ったことはありませんか?ControlNetとOpenPoseを活用することで、それが可能になります。

本記事では、Stable Diffusion特定の人物ポーズのみを調整するテクニックを解説します。顔、衣装、背景を固定しつつ、理想のポーズを実現するための具体的な手順やプロンプトのコツを紹介します。

これらのテクニックを活用することで、イメージ通りの画像を生成し、作品のクオリティを向上させることが可能です。

Stable Diffusionでポーズ変更が難しい理由

Stable Diffusionでポーズだけを変更したいのに、顔や衣装、背景が変わってしまうのは、シード値の変更やプロンプトの曖昧さが原因です。これらの要素を理解し、適切に制御することで、より意図したポーズ変更が可能になります。

シード値変更による影響

Stable Diffusionで画像を生成する際、シード値は生成される画像の初期ノイズパターンを決定する重要な要素です。シード値を変更すると、画像全体の構成が大きく変わり、ポーズだけでなく顔、衣装、背景も予測不能な形で変化する可能性があります。

これは、シード値が画像のすべての要素に影響を与えるため、意図しない変化を引き起こす主な原因となります。意図しない変化を防ぐためには、シード値を固定することが重要です。シード値を固定することで、初期ノイズパターンが一定に保たれ、同じプロンプトを使用した場合、画像の一貫性を維持できます。

例えば、特定のキャラクターのポーズを変更したい場合、まず元のキャラクターを生成した際のシード値を記録しておきます。次に、ポーズを変更するプロンプトを追加し、同じシード値を指定して画像を生成することで、顔や衣装を維持したままポーズのみを変更することが可能です。

シード値の固定は、特にキャラクターのバリエーションを生成する際に有効です。例えば、同じキャラクターに異なる衣装を着せたり、異なる背景で表示させたりする場合にも、シード値を固定することで、キャラクターの顔や体型を一定に保つことができます。

また、ControlNetなどの拡張機能を使用する際にも、シード値の固定は重要です。ControlNetは、参照画像に基づいて画像を生成する機能ですが、シード値が固定されていない場合、参照画像とは異なる画像が生成される可能性があります。シード値を固定することで、ControlNetの効果を最大限に引き出し、より正確な画像生成を実現できます。

Stable Diffusionで意図した画像を生成するためには、シード値の役割を理解し、適切に管理することが不可欠です。シード値を固定することで、画像の一貫性を保ち、より高度な画像生成技術を活用することができます。

プロンプトの曖昧さによる影響

Stable Diffusionにおいて、プロンプトの曖昧さは、生成される画像の品質と一貫性に大きな影響を与えます。プロンプトが不明確な場合、AIは解釈の余地が大きくなり、結果として顔、衣装、背景などが意図したものとは異なる画像が生成される可能性が高まります。

例えば、「人が歩いている」というプロンプトだけでは、どのような人物が、どのような服装で、どこを歩いているのかが不明確なため、AIは多様な解釈を行い、毎回異なる画像を生成してしまいます。

このような事態を避けるためには、プロンプトを具体的に記述することが重要です。例えば、「20代の女性が、赤いワンピースを着て、公園の遊歩道を歩いている」のように、人物、服装、場所を具体的に指定することで、AIはより明確な指示を受け、意図した画像を生成しやすくなります。

プロンプトを具体的に記述する際には、以下の点に注意すると効果的です。

  • まず、人物の特徴を詳細に記述します。年齢、性別、髪型、目の色、服装などを具体的に指定することで、AIはより正確な人物像を把握できます。
  • 次に、背景を具体的に記述します。場所、時間帯、天候などを指定することで、AIはよりリアルな背景を生成できます。
  • さらに、ポーズや表情を具体的に記述します。例えば、「笑顔で手を振っている」「座って本を読んでいる」のように、具体的なポーズや表情を指定することで、AIはより意図した画像を生成できます。

プロンプトを具体的に記述することで、Stable Diffusionはより正確な画像を生成し、ポーズ変更の際にも顔や衣装が変化するリスクを大幅に軽減できます。プロンプトの曖昧さを解消し、具体的な指示を与えることが、Stable Diffusionを効果的に活用するための鍵となります。

要素曖昧なプロンプトの例具体的なプロンプトの例
人物人が歩いている20代の女性が、赤いワンピースを着て、公園の遊歩道を歩いている
背景(指定なし)公園の遊歩道、昼間、晴天
ポーズ/表情(指定なし)笑顔で手を振っている

ポーズ変更のための必須知識

Stable Diffusionで理想のポーズを実現するには、ControlNet、OpenPose、シード値固定に関する知識が不可欠です。これらの要素を理解することで、顔や衣装を固定しつつ、ポーズのみを意図通りに変更できます。

ControlNetとは

ControlNetは、Stable Diffusionの機能を拡張する強力なツールであり、画像生成プロセスをより細かく制御することを可能にします。ControlNetは、特にポーズ、構図、深度マップなどの特定の条件に基づいて画像を生成する際に役立ちます。

他の画像生成AIとは異なり、ControlNetは既存のStable Diffusionモデルに統合できるため、追加のトレーニングなしで、より詳細な制御が可能になります。例えば、ユーザーが提供するポーズに基づいて人物の画像を生成したり、特定の構図を維持しながら新しい画像を生成したりできます。

ControlNetは、Stable Diffusionの柔軟性を高め、より創造的で精密な画像生成を支援する重要な役割を果たします。ControlNetを活用することで、プロンプトだけでは難しかった、一貫性のある高品質な画像生成が実現できます。ControlNetは、画像生成AIの可能性を広げる画期的な技術と言えるでしょう。

OpenPoseとは

OpenPoseは、人物のポーズを正確に推定するための技術であり、画像や動画から人間の関節の位置を検出し、それを骨格として表現します。この技術は、Stable Diffusionにおいて、生成される人物のポーズを制御するために活用されます。

OpenPoseを使用することで、ユーザーは特定のポーズを指示し、AIはその指示に従って画像を生成できます。例えば、OpenPoseエディターで作成したポーズをStable Diffusionに適用することで、希望通りのポーズの人物画像を生成できます。

OpenPoseは、深層学習アルゴリズムに基づいており、様々な姿勢や角度からでも正確にポーズを推定できます。OpenPoseは、画像生成AIにおけるポーズ制御の精度を高め、より自然でリアルな人物画像の生成に貢献しています。OpenPoseを活用することで、ユーザーは自分のアイデアをより忠実に画像として表現することが可能になります。

シード値固定の重要性

Stable Diffusionにおけるシード値とは、画像生成の初期状態を決定する数値です。シード値を固定することで、同じプロンプトを使用した場合、常に同じ結果が得られるようになります。

これは、顔や衣装を固定してポーズのみを変更したい場合に非常に重要です。シード値を固定しない場合、わずかなプロンプトの変更や再生成によって、顔や衣装が大きく変わってしまう可能性があります。

シード値は、Stable DiffusionのUIで簡単に設定できます。例えば、生成設定の「Seed」という項目に特定の数値を入力することで、シード値を固定できます。シード値を固定することで、顔や衣装の一貫性を保ちながら、様々なポーズを試すことが可能になります。シード値の固定は、Stable Diffusionで意図通りの画像を生成するための基本的なテクニックの一つです。

顔と衣装を固定したポーズ変更の具体的な手順

ここでは、Stable Diffusionで顔や衣装を固定しつつ、ポーズのみを変更するための具体的な手順を解説します。シード値の固定からプロンプトの調整、ControlNetの活用まで、各ステップを詳細に説明します。

シード値の確認と設定

Stable Diffusionで生成される画像のシード値を確認し、固定する手順を解説します。シード値を固定することで、ポーズを変更する際に顔や衣装の一貫性を保つことが可能です。

まず、画像を生成後、生成に使用されたシード値を確認します。多くのUIでは、生成履歴や画像情報にシード値が表示されています。次に、同じシード値を指定して画像を生成することで、同じ構図、顔、衣装で画像を生成できます。

シード値を固定するには、Stable DiffusionのUIでシード値を入力する欄に、確認したシード値を入力します。通常、シード値の横に「-1」と表示されている場合が多いですが、この部分に任意の整数を入力することでシード値が固定されます。

例えば、最初に生成した画像のシード値が「12345」だった場合、この値を入力して生成することで、同じキャラクターと衣装で別のポーズの画像を生成できます。シード値を固定する際は、他の設定(プロンプト、ネガティブプロンプト、ステップ数など)も同じにすることで、より安定した結果を得られます。

シード値の固定は、キャラクターの一貫性を保ちながら、様々なポーズを試す上で非常に重要なテクニックです。シード値を活用して、理想のポーズを追求しましょう。再現性の高い画像生成を可能にするために、シード値の管理は不可欠です。

プロンプトによるポーズ指示

プロンプトによるポーズ指示は、Stable Diffusionで意図したポーズを生成するために不可欠です。ここでは、具体的なポーズ指示の記述例と、プロンプトの工夫で表現力を高める方法を紹介します。

まず、基本的なポーズ指示として、「standing」、「sitting」、「running」などがあります。これらの単語をプロンプトに含めることで、大まかなポーズを指定できます。

より具体的なポーズを指定するには、「a woman sitting on a chair with her legs crossed」のように、詳細な説明を加えます。また、ポーズに関する単語だけでなく、「looking at the camera」、「smiling」、「waving hand」などの表情や動作に関する指示も加えることで、より表現豊かな画像を生成できます。

プロンプトの工夫として、ポーズに関する単語の組み合わせや、強調構文の活用が挙げられます。例えば、「dynamic pose: a man jumping in the air」のように、「dynamic pose」という単語を加えることで、より躍動感のあるポーズを生成できます。

また、「(a woman dancing:1.2)」のように、特定の単語を強調することで、その要素がより強く反映されます。ネガティブプロンプトも活用しましょう。例えば、意図しないポーズが生成される場合は、「bad pose」、「distorted pose」などをネガティブプロンプトに加えることで、改善できます。

プロンプトを工夫することで、より自由度の高いポーズ変更が可能になります。様々なプロンプトを試して、理想のポーズを追求しましょう。

ControlNetによるポーズ制御

ControlNetは、Stable Diffusionの機能を拡張し、より高度な画像制御を可能にするツールです。特に、OpenPoseと連携することで、人物のポーズを正確に制御できます。

ControlNetの設定は、Stable Diffusion Web UIからControlNet拡張機能をインストールすることで行えます。インストール後、Web UIにControlNetのタブが表示されます。

ControlNetを使用するには、まず、ポーズを制御したい画像をアップロードします。次に、ControlNetのプリプロセッサから「OpenPose」を選択し、「Generate」ボタンをクリックします。これにより、画像から人物のポーズが抽出され、OpenPoseのスケルトンが表示されます。このスケルトンを編集することで、ポーズを調整できます。

OpenPoseとの連携では、スケルトンの各関節をドラッグすることで、ポーズを自由に変更できます。また、ControlNetの「Control Type」を調整することで、ポーズの制御強度を調整できます。「Control Type」を「My prompt is more important」に設定すると、プロンプトの指示がより強く反映され、「ControlNet is more important」に設定すると、OpenPoseのスケルトンがより強く反映されます。

ControlNetを活用することで、プロンプトだけでは難しい複雑なポーズも正確に再現できます。OpenPoseとの連携により、直感的なポーズ制御が可能です。積極的にControlNetを活用して、理想のポーズを生成しましょう。精度の高いポーズ制御を実現するために、ControlNetの設定を理解することが重要です。

Control Type効果
My prompt is more importantプロンプトの指示がより強く反映
ControlNet is more importantOpenPoseのスケルトンがより強く反映

Hakkyの機械学習プロダクト開発支援とは | 詳細はこちら

ControlNetとOpenPoseを活用したポーズ変更の応用

ControlNetとOpenPoseを組み合わせることで、複数人物のポーズ制御や背景との調和など、より高度なポーズ変更が可能になります。

複数人物のポーズ制御

Stable DiffusionのControlNetとOpenPoseを活用することで、複数人物のポーズを個別に制御し、より複雑な構図の画像を生成できます。

複数人物のポーズ制御は、OpenPose Editorを使用し、各人物のポーズを調整することで実現可能です。各人物のポーズを調整する際には、自然な配置になるように工夫しましょう。例えば、会話をしている人物同士であれば、互いに向き合うようにポーズを調整します。ダンスをしている人物であれば、動きがシンクロするように調整すると、より自然な画像が生成されます。

具体的な手順としては、まずOpenPose Editorで各人物の骨格を調整し、ControlNetの画像欄にドラッグ&ドロップします。次に、プロンプトで各人物の役割や関係性を記述します。例えば、「pose: two people shaking hands」や「pose: couple dancing together」といったプロンプトを使用することで、具体的なポーズを指定できます。

ControlNetの設定では、OpenPoseモデルを選択し、PreprocessorをNoneに設定することで、OpenPose Editorで指定したポーズが正確に反映されるようになります。複数人物のポーズを制御する際には、各人物の配置や視線、手の位置などに注意を払うことで、より自然で魅力的な画像を生成できます。特に重要なのは、各人物のポーズが互いに矛盾しないようにすることです。例えば、ある人物が別の人物を指差している場合、指の方向と視線が一致するように調整する必要があります。また、背景との調和も考慮することで、より完成度の高い画像を生成できます。

背景との調和

Stable Diffusionで生成する画像の完成度を高めるためには、背景と人物のポーズが調和していることが重要です。背景に合わせたポーズを調整することで、より自然で違和感のない画像を生成できます。

例えば、穏やかな風景を背景にする場合は、リラックスしたポーズが適しています。一方、都会の街並みを背景にする場合は、活動的なポーズが合うでしょう。

背景との調和を図るためには、プロンプトに背景に関するキーワードを追加することが効果的です。例えば、「background: serene landscape」や「background: urban cityscape」といったキーワードを使用することで、背景の雰囲気を指定できます。また、ControlNetの画像欄に背景画像を追加することで、より具体的な背景を指定することも可能です。

背景画像を追加する際には、人物のポーズと背景の構図が調和するように調整しましょう。例えば、人物が風景を見ている場合は、視線の先に風景のポイントとなる要素を配置すると、より自然な画像になります。背景と人物の調和を意識することで、Stable Diffusionで生成する画像の品質を大幅に向上させることができます。特に、風景写真やポートレート写真など、背景が重要な要素となる画像では、背景との調和が不可欠です。背景に合わせたポーズやプロンプトを工夫し、より魅力的な画像を生成しましょう。

ポーズ変更時のトラブルシューティング

Stable Diffusionでポーズ変更を行う際、顔や衣装の崩れ、意図しないポーズになるなどの問題が発生することがあります。ここでは、これらの問題に対する具体的な対処法と、よくある質問とその解決策を紹介します。

顔や衣装の崩れを防ぐ

Stable Diffusionで人物のポーズを変更する際、顔や衣装の崩れはよくある問題です。この問題を解決するためには、いくつかのポイントがあります。

まず、シード値の固定を再度確認してください。シード値が固定されていない場合、生成される画像が毎回異なり、顔や衣装が安定しません。次に、プロンプトを調整します。プロンプトに具体的な指示を追加することで、顔や衣装の崩れを抑制できます。例えば、以下のようなプロンプトを使用します:face details, perfect face, beautiful face, detailed eyes, detailed skin, original character

また、ネガティブプロンプトも活用しましょう。ネガティブプロンプトにdeformed face, distorted face, ugly face, bad faceなどを追加することで、顔の崩れを効果的に防ぐことができます。さらに、ADetailerプラグインを使用すると、顔の詳細な修正が可能です。ADetailerを導入し、顔の検出と修復を行うことで、より自然な結果を得られます。

ControlNetのtileモデルを使用することも有効です。tileモデルは、画像の細部を保持しつつ、全体的な整合性を保つことができます。これにより、顔や衣装の崩れを最小限に抑えながら、ポーズの変更が可能です。これらの対策を組み合わせることで、顔や衣装の崩れを大幅に軽減し、より高品質な画像を生成できます。

意図しないポーズの修正

Stable Diffusionで意図しないポーズが生成される場合、プロンプトの具体化とControlNetの設定見直しが重要です。

まず、プロンプトをより具体的に記述します。例えば、「腕を上げる」だけでなく、「右腕を肩の高さまで上げる」のように、具体的な指示を加えることで、意図したポーズに近づけることができます。また、ポーズに関するキーワードを複数追加することも有効です。例えば、「dynamic pose, action pose, fighting pose」などを追加することで、より多様なポーズを生成できます。

次に、ControlNetの設定を見直します。OpenPoseを使用している場合、ポーズの検出精度が低いと、意図しないポーズが生成されることがあります。ControlNetのpreprocessor設定で、OpenPoseの精度を調整し、より正確なポーズ検出を試みてください。

また、ControlNetのweight設定も重要です。weightが高すぎると、ControlNetの指示が強くなりすぎて、画像全体の自由度が失われることがあります。逆に、weightが低すぎると、ControlNetの効果が十分に発揮されません。適切なweightを見つけるために、0.5から1.0の間で数値を調整し、最適な値を見つけましょう。

さらに、ControlNetのモデルを変更することも有効です。例えば、ControlNet-V1-1-fp16-pose.safetensorsの代わりに、より新しいバージョンのモデルを使用することで、ポーズの検出精度が向上することがあります。これらの対策を講じることで、意図しないポーズの生成を減らし、より理想的な画像を生成することができます。

対策詳細
プロンプトの具体化「腕を上げる」を「右腕を肩の高さまで上げる」のように具体的に記述
ポーズに関するキーワード追加「dynamic pose, action pose, fighting pose」などを追加
ControlNetのpreprocessor設定OpenPoseの精度を調整し、より正確なポーズ検出を試みる
ControlNetのweight設定0.5から1.0の間で数値を調整し、最適な値を見つける
ControlNetのモデル変更ControlNet-V1-1-fp16-pose.safetensorsの代わりに新しいバージョンのモデルを使用

おわりに

この記事では、Stable Diffusionで顔や衣装を固定しつつポーズだけを変更するテクニックをご紹介しました。ご紹介したControlNetやOpenPoseなどのツールを活用することで、よりイメージ通りのイラスト制作が可能になります。

もし、これらの技術をあなたのプロジェクトにどのように応用できるかお困りでしたら、ぜひHakkyの機械学習プロダクト開発支援サービスをご検討ください。お客様のニーズに合わせた最適なソリューションをご提案いたします。

tip
お知らせ

articleを参考にすると、特定の人物のポーズのみを調整したいというニーズをお持ちの方が多くいらっしゃいます。 Hakkyでは、ControlNetなどの最新技術を活用し、お客様の理想のイメージを形にする機械学習プロダクト開発を支援いたします。


関連記事

参考文献

2025年06月15日に最終更新
読み込み中...