Stable DiffusionのControlNet の OpenPoseモデルによる出力の違いを比較します。
Stable DiffusionでContorlNetでOpenPoseを利用して画像の出力ができますが、OpenPoseには複数のモデルがあります。
また、SDXLでは意図したような出力にならないこともあります。この記事では、OpenPoseのモデルごとの出力を比較し、どのような違があるかを調査します。
OpenPose Editorでポーズを作成します。今回は下図のポーズを作成します。OpenPoseの適用状況がわかるように、画面に右下にポーズをつけたキャラクターを配置しています。
ポーズの画像を保存します。
txt2imgで、ControlNetに先ほど作成したOpenPoseのポーズ画像を読み込みます。
Modelを選択します。SDXLの代表的なOpenPoseのモデルは以下の6つがあります。
それぞれのモデルの出力結果を確認します。
プロンプトとモデルは以下を利用します。
出力結果は下図です。
ControlNetを無効にして、OpenPoseを利用しない場合の生成結果です。
OpenPoseの設定がほとんど反映されていないように見えます。
右下の形状がOpenPoseのポーズを若干反映しているように見えます。元の出力カラーより若干黄色みがかかります。
右下にOpenPoseのポーズを反映したキャラクターが生成される場合があります。
キャラクターが生成されない場合は、ポーズに似たオブジェクトが生成される場合もあります。
中央にもキャラクターが生成され2キャラになる場合もあります。
元の出力カラーより若干黄色みがかかります。
右下にOpenPoseのポーズを反映したキャラクターが生成されます。キャラクターが生成されない場合もあります。
元のカラーより紫色がかる傾向があります。
OpenPoseのポーズを反映し、右下にキャラクターが生成されます。中央にもキャラクターが生成され2キャラになる場合もあります。
元の出力カラーより赤みがかかります。
OpenPoseのポーズを反映し、右下にキャラクターが生成されます。中央にもキャラクターが生成され2キャラになる場合もあります。
元の出力カラーより赤みがかかります。
SDXLのOpenPoseではモデルにより反映に差があります。また、OpenPoseを適用しない状態と出力カラーの傾向が変化する場合も多いです。
余白部分(特に中央)にキャラクターを描画してしまう場合が多いです。使用しているモデルの影響もあるかもしれません。
Stable Diffusion 1.5の動作確認です。
txt2imgで、ControlNetに先ほど作成したOpenPoseのポーズ画像を読み込みます。
Modelを選択します。SD1.5の代表的なOpenPoseのモデルは以下の2つがあります。
プロンプトとモデルは以下を利用します。
出力結果は下図です。
ControlNetを無効にして、OpenPoseを利用しない場合の生成結果です。
OpenPoseのポーズを反映し、右下にキャラクターが生成されます。中央にもキャラクターが生成され2キャラになる場合もあります。SDXLの場合と異なり色味の変化は少ないです。
OpenPoseのポーズを反映し、右下にキャラクターが生成されます。中央にもキャラクターが生成され2キャラになる場合もあります。若干彩度が落ちる印象があります。
SD1.5のほうがOpenPoseが反映されたイメージが生成されやすい印象です。出力画像の色見の変化も少ない印象です。
余白部分にキャラクターを描画してしまう場合はありますが、SDXLよりは少ないです。