キャラクターembeddingの技術プライマー:内部アーキテクチャ

AI動画スタックにおけるキャラクター一貫性システムが内部でどう動いているかをエンジニア向けに解説。アーキテクチャ、設計判断、失敗モード、未解決の研究課題。

·9 min read·technical

本記事はエンジニア向けです。AI動画ツールを構築または評価しているリサーチャー、ML実務者、開発者を想定しています。キャラクター一貫性が重要である非技術的な概観を求めるなら、完全ガイドから始めてください。

ここでは、現代のAI動画スタックにおいてキャラクターembeddingシステムが実際にどう動いているかを解説します。アーキテクチャ、設計判断、失敗モード、そして我々がまだ解いていない未解決問題をカバーします。

問題定義

生成動画モデルMとキャラクターCが与えられたとき、Cを参照するプロンプト系列p_1, p_2, …, p_nの任意のp_iに対して、生成出力すべてがCの同一性を保持するような手続きを設計したい。

ナイーブなアプローチ — すべてのプロンプトにキャラクター記述を含める — は失敗します。なぜなら拡散サンプリングは確率的で、プロンプトはカテゴリーを記述するのであって同一性を記述しないからです。各生成は記述に合致する有効キャラクター分布からの抽選であり、抽選を跨いで同一性がドリフトします。

記述ではなく、特定の学習済み同一性に対してモデルの出力を条件付けする方法が必要です。

アーキテクチャ

現代のキャラクター一貫性システムは6つのコンポーネントから成ります。

1. 特徴抽出       — 参照から同一性embeddingを生成
2. ストレージ      — embeddingをcharacter_idに紐づけて永続化
3. ネガティブプロンプト合成 — ドリフトカタログから自動でnegative_promptを構築
4. コンディショニング注入   — embeddingをモデルのコンディショニングに注入
5. 生成           — コンディション付きモデルで拡散サンプリング
6. 一貫性検証      — 事後の類似度チェック、必要なら再生成

順に見ていきます。

1. 特徴抽出

キャラクターのアップロード時に、参照画像に対して複数の専門モデルを実行します。

これらを連結(またはアテンションで統合)して、高次元のキャラクターembedding e_Cを得ます。総次元数は通常1500〜3000です。

なぜ1つではなく複数のモデルか?同一性は単一エンコーダでは完全に捉えられない複数の軸を持つからです。顔エンコーダは「これは同じ顔か?」に強いですが体型には盲目です。ボディパーサーは顔の細部に盲目です。CLIPは意味的な外観に強いですが細かい同一性を失います。連結することで直交的なカバレッジが得られます。

トレードオフ:抽出パイプラインが複雑になるとアップロード時の計算コストが増えます(業界の多くのシステムでは〜30〜90秒)。コンシューマー向けツールならOK。高スループットパイプラインでは、アップロード時に一度embeddingを事前計算し、生成時に参照できます。

2. ストレージ

各キャラクターは(character_id, embedding_vector, metadata)として保存します。メタデータには以下を含みます。

ストレージは通常ベクターデータベース(Pinecone、Qdrant、Weaviate)またはカスタムインデックス構造です。ルックアップは高速である必要があります — 100ms未満 — なぜなら毎回の生成で発生するからです。

プライバシー機微なデプロイメントでは、embeddingをテナント単位の鍵で暗号化保存できます。抽出は一方向関数(embeddingから参照画像は復元できません)ですが、実在の人物を扱うシステムでは、embeddingをPIIとして扱うことが正しいデフォルトです。

3. ネガティブプロンプト合成

これがシステムの非自明な部分であり、エンジニアリング作業の大半が存在する場所です。

我々は共通ドリフトモードのカタログを維持しています — 数千件の生成にわたって観測されたカテゴリカルな失敗タイプです。各モードに対して、その失敗を抑制する対応するnegative_promptフラグメントを持っています。

業界カタログの例:

ドリフトモードネガティブプロンプトフラグメント
目の色シフト(茶 → 緑)「green eyes, hazel eyes」(参照が茶色の場合)
顎ライン狭窄「narrow jaw, weak chin, soft jawline」
生え際後退「high hairline, thinning hair, receding hairline」
肌色暖色化「warm skin tone, golden complexion」(参照がクールトーンの場合)
非対称化「asymmetric face, uneven features」
目の間隔シフト「wide-set eyes, close-set eyes」

このカタログを構築するにはラベル付きデータが必要です。業界の多くのチームはパブリックなAI動画ツール(Runway、Pika、Sora等)からの〜10,000件の生成に、現れたドリフトモードをラベル付けしました。クラスタリングにより〜30の異なるモードが生まれ、観測ドリフトの〜85%をカバーしています。

各生成において、システムは:

  1. キャラクターの参照属性を取り出す
  2. 各属性の「反対」を計算する(例:参照に濃い目があれば、反対は薄い目)
  3. 関連するドリフト抑制因子を組み立てたキャラクター単位のネガティブプロンプトを構築する

結果として、プロンプトのみの生成より遥かに強いコンディショニング信号が得られます。

4. コンディショニング注入

動画モデルによってコンディショニングの受け方は異なります。

業界の多くのチームの経験では、APIレベル注入は参照画像ベースより遥かに効果的ですが、ほとんどのパブリックAPIはこの深さのアクセスを露出していません。利用可能なAPI表面で作業する中で、強力なネガティブプロンプトと参照画像エンコードされたembeddingを組み合わせることで、APIレベル注入の80〜90%まで到達できることがわかっています。

これが、基盤モデルを制御していなくてもキャラクター一貫性レイヤーを構築する意味がある理由の一部です — パブリックAPIが既に露出しているコンディショニング表面には、有意なヘッドルームが存在します。

5. 生成

標準的な拡散サンプリングですが、コンディショニングが以下の組み合わせになります。

生成コストはバニラ生成のおよそ1.0〜1.2倍です。限界費用は小さいです。

6. 一貫性検証

生成後、別の同一性モデル(通常はステップ1で使用したものと同じ顔エンコーダ)を出力に対して実行します。出力の同一性embeddingと元の参照embeddingの間のコサイン類似度を計算します。

閾値:通常0.85のコサイン類似度。閾値以上なら出力は受理されます。閾値以下なら、より厳しいコンディショニング(高いネガティブプロンプト重み、強いembedding注入)で再生成をトリガーします。

これは平均で〜5〜10%の生成コストを追加し(ほとんどのショットは初回でパス)、最悪のドリフトケースがユーザーに到達するのを防ぎます。

うまく機能するもの、しないもの

うまく機能するもの:

より難しいもの:

未解決の研究課題

この領域で取り組んでいるなら、解決を見たい課題は以下の通りです。

  1. 状態バリアント不変量。同一性不変な顔構造を捉えつつ、任意の状態変換を許容する正しい学習表現とは何か?
  2. サンプリング中のアクティブドリフト検出。現在の一貫性チェックは事後的です。拡散プロセス中にドリフトを検出し、サンプリング途中で補正できるか?
  3. 暗黙対明示的な同一性のトレードオフ。キャラクター単位の小さなLoRA訓練がembeddingベースのコンディショニングを上回るのはいつか?境界はどこか?
  4. マルチキャラクター相互作用モデリング。2つのロックされた同一性だけでなく、ショット間で保持される関係性ダイナミクスをどう捉えるか?
  5. 同一性の不確実性定量化。モデルが同一性について不確かなとき、自信を持ってドリフトする代わりに、その不確かさを表面化できるか?

これらに取り組んでいてノートを比較したいなら、Juyingのチームは本気で関心があります。連絡ください。

ビルダーへの実用的なアドバイス

自社プロダクトにキャラクター一貫性レイヤーを構築するなら、3つのアドバイスがあります。

1. ネガティブプロンプトカタログから始めること。これが最高インパクト・最低コストの勝ち筋です。APIレベルのモデルアクセスは不要 — ネガティブプロンプトはどのパブリックAPIも露出しています。1週間かけて1000生成にラベル付ければ、大半のドリフトをカバーするカタログが手に入ります。

2. 事後検証を過小評価しないこと。単純な「類似度0.85未満なら再生成」ループを追加するだけで、最悪10%の失敗をキャッチし、知覚品質が劇的に向上します。利用可能な90/100 → 95/100品質ブーストの中で、最も安価です。

3. ストレージに早期投資すること。キャラクターembeddingを永続アセットとして扱うことは、複利で効く設計上の洞察です。正しいプリミティブを一度構築すれば、すべての将来の機能(スタイルロック、シーンライブラリ、アセット再利用)が自然に拡張されます。

関連記事

この領域で構築していて話したいなら — info@juying.art