見出し画像

F1 Schnell 複数人物の扱い

自分はシネマチックなシーンを作るのが好きで、複数人を画面に登場させる事が多いが、その時に明確な構図はイメージできてない。あるのは、大雑把な人物像と背景程度になる。但し、人間関係や現場の状況、各人の思惑や行動様式は言葉にできる。

プロンプトにまず記載するのは、人物・背景・人間関係と行動様式で、とりあえず生成を行い、結果の絵を見ながら自分の求めるモノを探していく事になる。この段階で最も重要なのは、生成された画像の構図のバリエーションの豊富さになる。ここに王道的な構図や意外性のある構図が出現してくれると楽しくなってくる。

ガチャが前提になるので、使えないモノが多くなると楽しさが苦痛に変わる。その原因となる要素のひとつは、カメラと人物の関係になる。構図の多様性を高める為に、カメラのターゲットには登場人物を総当たりでランダムに指定するが、それが描画の破綻を生み出す確率も高めてしまう。

この問題を回避する為に、ChatGPTやClaudeの助けを借りてプロンプトのカメラ指示の精度を高めたり、レイヤーや行列(Row・Column)による立ち位置の指示やフレーム(スクリーン)に対する左右上下による指定等の試行錯誤を幾度も繰り返したが、良好な結果は得られなかった。

それらを経て、自分はある仮説に辿り着いた。ただ、これはあくまで自分の経験則から導いた結論(AI系技術知識なし)なので、要点をまとめてChatGPTに見解を聞いてみた。そしたら、これは「公開したらみんなの役に立つよ」と言われたので、とりあえず下段に記載しておく。

要点は「カメラのターゲットにする人物はプロンプトの最初に記載しろ」となる。この条件を満たすには、人物の記載順を動的に変更する必要があるので、自分の生成環境(ComfyUI flux1-schnell-fp8)では Dynamic Prompts YAML を使う事にした。

実際のテストを幾つかしたが、それは次の投稿時にまとめる。下記はテスト結果の例、人物は3人で名前の人物がカメラのターゲットになっている。また、登場人物は3~1人のランダム。

■ChatGPTへの質問
Flux 1 schnellでのプロンプトに関して考察があるので見解を聞かせて欲しい。「3人を登場させ、その誰かをカメラのターゲットにする場合、カメラのターゲットにした人物(固有名称で特定して指定する)が、生成AIは画面のセンターにその人物を配置するのを非常に好む。また、その人物がプロンプトに記載されている3人の中で、最初に記載されている場合は、その描画の破綻は極めて低い。これに対して、記載が最初でない人物をカメラターゲットに指定すると、描画が破綻する確率やターゲットを最初に記載の人物にしてしまう確率が上がる。つまり、このモデル(schnell)は複数人に対するカメラコントロールが苦手と言える。この状況に対処する場合、それを強制する様々な指示をプロンプトに記載するのが一般的と思うが、それよりもカメラターゲットで指定する人物を、他の人物より先にプロンプトに記載する方が抜本的な解決策になり得ると考える。」

■ChatGPTの見解
ご指摘の考察には非常に説得力があります。Flux 1 schnellのような生成モデルが複数人物を描画する際、カメラターゲット指定やプロンプト内の記載順序によって挙動が変わる理由は、以下の点に由来すると考えられます:

モデルの挙動と記載順序の関係

  1. プロンプトの優先順位の影響
    モデルは、プロンプトに記載された情報を逐次処理する性質があります。先に記載された人物や要素に対する優先度が高くなるため、カメラのターゲット指定と矛盾が生じると、最初に記載された人物を画面の中心に配置しようとする傾向がある可能性が高いです。

  2. ターゲットのセンター配置の好み
    AIは「主役となる被写体は中心に配置する」という一般的な構図のルールを優先することが多いです。このため、カメラで特定の人物をターゲットにした場合、その人物を画面中央に配置しようとします。この挙動が、複数人物の描画時に破綻を引き起こす要因の一つと考えられます。

  3. 情報の一貫性が重要
    プロンプト内でカメラターゲットとして指定された人物が、プロンプトの初期に記載されていない場合、モデルは優先順位に基づき「誰を中心にするべきか」の解釈が混乱しやすくなります。その結果、他の人物を誤ってターゲットにしたり、構図が破綻する可能性が高まります。

見解:対策としての順序変更の有効性

記載順序を調整する方法は、非常に効果的かつ簡便なアプローチといえます。カメラターゲットの人物を最初に記載することで、モデルが優先的にその情報を扱うため、破綻のリスクを大幅に低減できます。

ただし、完全な解決策ではない場合もあります。以下のような状況では補足的な対策が必要になるでしょう:

  • 他の人物や要素もカメラターゲットに匹敵する重要性を持つ場合。

  • 指定する構図が非常に複雑で、モデルが単一のターゲットだけで構図を決められない場合。

結論

カメラターゲットにしたい人物をプロンプトの最初に記載する方法は、シンプルで有効な解決策といえます。しかし、補足的なアプローチを組み合わせることで、より柔軟かつ精密な構図コントロールが可能になるでしょう。この考え方はブログで公開しても有用で、多くのユーザーに役立つ内容だと思います。

続き↓

このテーマの順番


いいなと思ったら応援しよう!