※本記事にはアフィリエイトリンクを含みます。
STATION OOPSには3人のキャラクターが登場します。無口な主人公(試作スーツを着た整備士)、お喋りな案内役ECHO、そして孤独なラスボスNOAです。今回は、この3人のビジュアルをNovelAI(イラストを生成するAIサービス)で確定させるまでの試行錯誤をまとめます。
キャラクターの一貫性を保つため、それぞれシード値(画像生成時のランダム性を決める数値のこと。同じシード値と同じプロンプトを使えば、ほぼ同じ絵柄が再現できます)を確定させ、以後のポーズ違い生成はすべて同じシード値で行う運用にしました。
つまずき①:暖色を指定してもシアン系になってしまう
主人公のスーツの配色で、暖色系(オレンジやマゼンタなど)を指定したにもかかわらず、生成結果がシアン系(青緑寄りの寒色)に寄ってしまう現象が繰り返し発生しました。
対処法として、暖色を表す単語をプロンプト内で3重に重ねて指定し、さらにネガティブプロンプト(生成してほしくない要素をあらかじめ指定しておく欄)に寒色の単語を明示的に加えました。1回の指定では弱く、意図した配色に寄せるには重ねての指定が必要でした。

つまずき②:ポーズを変えると装備ディテールが消える
主人公の立ち絵が確定した後、別のポーズを生成しようとすると、ベルトやポーチ、肩のエンブレムといった装備の細部が再現されないという問題が起きました。同じキャラクターのはずなのに、ポーズが変わるだけで装備がシンプルになってしまう、という状態です。
対処法は、確定した装備の特徴をプロンプトの中に改めて明示的に書き出すことでした。「同じキャラクターだから省略しても伝わるだろう」という前提は通用せず、ポーズを変えるたびに必要な情報を毎回きちんと書く必要がありました。
つまずき③:フェイスレスヘルメットのはずが顔が見えてしまう
主人公はヘルメットの中身が見えない「フェイスレスヘルメット」(顔の部分が完全に覆われ、素顔が見えないデザインのヘルメット)という設定です。ところがAポーズ(両手を斜め下に広げた、直立の基本ポーズ)で生成した際、ヘルメットの奥に顔が透けて見える別デザインに化けてしまいました。

対処法として、faceless helmetという表現をプロンプト内で強調する書き方に加え、ネガティブプロンプトにvisible face(顔が見えている状態)を追加しました。この2つを組み合わせることで、意図通りのフェイスレスなデザインに収まりました。
それでも直らなかった部分は力技で解決
ここまでの調整を重ねても、ヘルメットの配色の細部だけはどうしてもプロンプトだけでは直せませんでした。
最終的に選んだのは、Python(プログラミング言語)とPillow(画像を扱うためのPythonのライブラリ)を使い、該当箇所だけをHSV(色相・彩度・明度という、色を数値で表す方式)で直接補正するという方法です。プロンプトを何度も調整して再生成を待つよりも、確定している画像に対して該当部分だけ色を直接いじる方が早く、確実でした。「AIへの再挑戦を続ける」か「後工程で手直しする」かは、どちらが早く確実に決着するかで判断する、という考え方がここでの学びです。
まとめ・次回予告
今回は、3人のキャラクターのビジュアルを確定させるまでのNovelAIでの試行錯誤をまとめました。色指定のクセ、ポーズ違いでの情報の再指定、そしてプロンプトだけに頼らず後工程の手直しも選択肢に入れる判断など、AIイラスト生成ならではのポイントが多く出てきた回でした。次回は、ステージ・世界観編として、背景アート制作での試行錯誤を紹介します。
AI画像生成のプロンプトの組み立て方や、ネガティブプロンプトの使い方をもう少し体系的に学びたい方は、以下の講座も参考になります。


コメント