ボブで紫の髪の子がいるとします。もう一人、似た系統のキャラクターもいるとします。
これでAIは悩みます。そして衣装が入れ替わります。
29話ぶんのAIアニメを作る中で、一番苦労したのがこれでした。キャラクターの一貫性です。
先に結論
- 三面図(キャラクターシート)だけでは足りない
- シートの中に キャラクターの名前と身長を入れる
- カラーパレットをちゃんと付ける
- JSONでキャラクターIDを管理し、シートと一緒に読み込ませる
- 別途、バストアップのターンアラウンド+表情差分を4K一枚にまとめる
- これでかなり言うことを聞くようになりました
三面図だけだと、何が起きるか
キャラクターシート(三面図)を作ること自体は、いまでも有効です。モデルがマルチモーダル化した現在でも、参照画像として効きます。
ただし三面図だけだと、同じ系統のキャラクターに引っ張られます。
冒頭の例がまさにそれで、ボブ同士でAIが悩んで、衣装が入れ替わる。スタイルが近い、身長が近い、髪型が近い——そういう条件が揃うと、色まで変わってしまうことがあります。
つまりキャラクターシートの本質は、「キャラクターの"差分"をどれだけ読み込ませられるか」なんです。似ているキャラを区別する情報が足りていないと、混ざります。
やったこと① シートに名前と身長を入れる
まず、キャラクターシートの中に、キャラクターの名前と身長を書き込みました。
マルチモーダルなモデルは、画像の中の文字も読みます。だからシートそのものに識別情報を持たせる。
身長を入れておくと、複数キャラが並ぶカットで比率が崩れにくくなります。
やったこと② カラーパレットを付ける
シートにカラーパレットをちゃんと付けます。
髪、目、肌、衣装の主要色。これを色見本として画像内に置いておく。
「紫の髪」と書くより、色そのものを見せる方が確実です。
やったこと③ JSONでIDを管理して、一緒に読ませる
そしてJSONでキャラクターIDを管理し、シートと一緒に読み込ませます。
JSONの中には、こういう情報を紐付けておきます。
- キャラクターID
- キャラクターシートのファイル名
- 氏名
こうすると、「このIDのキャラは、このシートの人物である」という対応が明示されます。
プロンプトで説明するのではなく、IDで縛る。これが一番効きました。
やったこと④ ターンアラウンドと表情差分を、4Kで1枚に
これが最近の標準形です。2種類のシートを用意します。
① キャラクターパレット 三面図+表情の寄り+カラーパレット
② 参照用シート バストアップのターンアラウンドイメージ+表情差分を、4K画質で1枚にまとめる
なぜ4Kかというと、フルHDの4倍の面積があるからです。
つまり1枚の中に、フルHDでも耐えられる画質で全身が入り、表情差分もそれなりの解像度で入る。参照画像として渡したとき、細部まで見てもらえます。
これはやってて良かったと思っています。
それでも揺れは残る
正直に書くと、揺れが完全になくなったわけではありません。
ただ、以前は本当にひどかった。スタイルが近い、身長が近い、髪型が近い——それだけで色が変わる。いまはかなり抑えられているという感覚です。
LoRAについて:たぶん、なくなっていく
「LoRAを使えばいいのでは」と思う方もいると思います。実際、LoRAが一番効くのはその通りだろうと思います。
ただ、私はキャラクターLoRAは今後なくなっていく技術ではないかと考えています。
理由は2つあります。
① 作るのに労力とスペックが必要
学習環境を用意するのが単純に大変です。RunPodのようなクラウドGPUを使う方法もありますが、接続するまでが非常に面倒でした。
一度使えるようにしても、外すとポッド自体を捨てることになり、やり直しが毎回発生する。AIスクールのカリキュラム制作で「RunPodでComfyUIを使う形を組んでくれ」と依頼されて着手したのですが、結局その方式は諦めました。
② 代替できるようになってきた
ターンアラウンドイメージなどをきちんと作れると、生成の精度がかなり上がります。 つまり、この記事で書いた方法で相当なところまで行ける。
ただし、これはキャラクターLoRAに限った話です。カメラワークや、トーン・ニュアンスを付けるLoRAは、なくならないと思っています。あれは別の役割を持っています。
まとめ
- 三面図だけでは、似た系統のキャラに引っ張られる(ボブ同士で衣装が入れ替わる)
- シートに 名前と身長を入れる
- カラーパレットを付ける(「紫の髪」と書くより色を見せる)
- JSONでIDを管理し、シートのファイル名と氏名を紐付けて一緒に読ませる
- バストアップのターンアラウンド+表情差分を、4Kで1枚に
- キャラクターLoRAは、たぶん要らなくなっていく(カメラワーク系は残る)
キャラが変わってしまうのは、プロンプトが悪いのではなく、区別する情報が足りていないことが多いです。
