<2025/05/06追記:novelAI v4が出た現在、より簡単にキャラクターの一貫性を保持してLoRAまで作る手法が確立できています。こちらの記事を先にご参照ください>

こんにちは、スタジオ真榊です。今回はNovelAIのv3インペイントを使った「オリジナルキャラクターの一貫性保持」についての特集記事です。主にNovelAIv3のインペイント機能を使った一貫性保持の手法について検証するとともに、記号性のあるオリジナルキャラの作り方や加筆修正のポイント、「そもそも何に我々は一貫性を感じるか」等についても掘り下げたいと思います。

皆様ご存じの通り、個性のあるオリジナルキャラクターを一貫性を保って安定的に生成するのはなかなかに難しいことです。キャラLoRAを作れるならそれが一番なわけですが、そもそも一貫性のある学習データがないと衣装や顔立ちがブレてしまいますし、オリジナルキャラを生み出すたびにLoRAを作るというのも非常に面倒。メインヒロインなら頑張れそうですが、モブキャラとかだと全くやる気になれません。

今回検証したのは、追加学習なしで同じキャラを安定的に生成し、プロンプト通りの演技をさせる「同キャラ別カット生成」を簡易的に行う方法です。非スタジオ真榊のオリジナルキャラと言えばミナちゃんですが、今回は新たに作ったこちらのオリジナルキャラクター、鬼怒川あんなさんの一貫性保持について検証していきましょう。

NovelAIで一貫性を持ったオリジナルキャラを生成する方法(LoRA不要):図版1

1.オリジナルキャラを作るには?

一貫性を保つ手法の前に、まずオリジナルキャラクターはどう作るか?という話から始めたいと思います。以前から参考テキストとして紹介しているさいとうなおき先生の「技の書」に、オリキャラの作り方のコツについても触れられていまして、著作権侵害にならない範囲で自分なりに咀嚼・引用するとこんなことが紹介されています。

・「見た目の概要」「性格」「体型」「衣装」「カラー」を最初に決めよう

・シルエットだけでもそのキャラと分かるかが大事

・「そのキャラらしいポージング」をさせよう

うちのミナちゃんは画像生成AI記事のプレゼンターとして設定しているので、毎回顔が変わることを前提としている概念(黒髪ポニテで紫目、セーラー服で赤メガネをかけてたらどんな顔立ちでもミナちゃん)なわけですが、この記事では「技の書」にある通り、もう少しちゃんと「一貫性」を持たせたキャラクター生成を目指したいところです。

1.オリジナルキャラを作るには?:図版1

そのためには、そもそもそのキャラクターにしっかりした外見的特徴や内面的奥行きがないと、そのキャラクターをキャラクターたらしめる要素に欠けてしまうのですね。

例えば「黒髪ショートで黄色の目、片目隠れで黒Tシャツを来た女の子」というざっくりした容姿だけなら、プロンプトだけでも再現できるわけですが、ちょっとした違いで「別人」に見えてしまいます。

1.オリジナルキャラを作るには?:図版2

「キャラが立つ」ということは容姿だけの話ではなく、「この子はこんなことをやってそう」「このキャラはそんなことは言わなそう」というところまで作者と鑑賞者の間でイメージが共有されるような状態を言うのだと思います。そのためにはイメージカラーや記号、性格設定などを作り込んであげることが重要ということになるでしょうか。

そうした情報がそのキャラを形作る要素であるということは、別カットを作ったときにそれらが抜け落ちると「他人」に見えてしまうということでもあります。逆に、強力のそのキャラを印象づけられる要素がいくつかしっかり揃っていれば、細かな違いがあっても「そのキャラ」に見えるわけです。

2.キャラクター設定とイメージボードを作る

前置きはこれくらいにして、実際の作業に入ります。まずはどんなキャラクターを作るかを決めて、AIに参照させる「お手本」に当たる一枚絵を生成しましょう。以下、この一枚絵を「イメージボード」と呼ぶことにします。

たとえば、これはオリジナルキャラクターの方向性を探ってランダム生成していたときのもの。こうした試行錯誤を経て、「キャラが立った」一枚絵を作ることをまずは目指してみます。

2.キャラクター設定とイメージボードを作る:図版1

◆◆「#快くコスプレしてくれる隣の奥さん」◆◆

今回のキャラクターコンセプトは、最近投稿している「快くコスプレしてくれる隣の奥さん」シリーズの新キャラです。

前回はこういう正統派ヒロイン系奥さん(▲)だったので、次はちょっと違うタイプにしてみようということで「黒髪+紫の三白眼」「気が強そう」「おでこ」「小柄でスレンダーだけどロリではない」「ツリ目で敵対的な目」「ズボンとロンTの普段着、ちょっとロックな感じ」といったキャラクターイメージを考えました。最終的には「突然の訪問客に不審の目を向ける怖そうな奥さん(ビフォー)」と「快く萌えコスプレをしてくれている様子(アフター)」を一貫性を保ちつつ作りたいので、ギャップ萌えをそそられるようなキャラづくりを心掛けたいところです。

一応このキャラデザの狙いは、

・リアリティを出したいので青や赤の髪色は避ける

・同じマンションに住む奥さんとして不自然ではない範囲で、ありきたりではない”立った”キャラ付けを考える

・普段(ビフォー)の姿からは絶対しなさそうな”アフター”にすることでギャップ萌えを狙う

…といったところ。この時点ではまだ性格や属性まで決めていませんでしたが、最終的に「可愛いものが嫌いな目つきの悪い元パンクロッカー新妻が、催眠で萌え萌えメイドさんになってしまう」というコンセプトに決めました。

◆◆全身図?それともバストアップ?◆◆

さて、AIに参照させるイメージボードは基本「立ち絵」のイメージなので、「できるだけ全身が入りつつ、キャラクターが画面一杯に大きく、詳細に描かれたもの」を目指します。

2.キャラクター設定とイメージボードを作る:図版2

顔が描かれるサイズが小さいとうまく一貫性保持ができませんので、full bodyよりもcowboy shotくらいがちょうど良いと思います。できれば履いているものがズボンかスカートかくらいは分かると良いですね。イメージボードの画風も保持されるので、最終的に作りたい画風で生成するようにします。

プロンプトはこちら。

PP:1woman,(housewife:1.4),glaring,half closed eyes,[[shaded face]],mature female,casual wear,small breasts,skinny,accessories,standing,cowboy shot,40years old,open mouth,tsurime,long hair,detailed eyelashes,doorway,looking at viewer, hair pulled back,shiny skin,beautiful black hair, solo,hair intakes,detailed eyes,flat eyes,newest, masterpiece, best quality, very aesthetic, absurdres, [sketch,unfinished,graphite \(medium\)]

イメージボードの背景はwhite backgroundにすると、生成する差分も白背景になりがちです。何か背景がはっきり描かれている場合は、差分にも背景が似たようなクォリティで書き込まれます。今回は催眠モノというコンセプトもあるので、「doorway」タグを使って背景ありで出力しています。

今回はこちらの一枚が気に入ったので、イメージボードに採用しました。(最近は加筆がしやすいので、こういうラフな感じのイラストで生成することが多いです)

2.キャラクター設定とイメージボードを作る:図版3

3.NovelAIインペイントで一貫性のある複製を作る

さて、本題はどういった方法で一貫性を保持するかです。そもそもスタジオ真榊FANBOXは1年半前、NovelAIv1でNTR漫画を作ろうとしたらキャラクターの一貫性保持がなかなかできなかったことに悩み、ControlNetやインペイントなどを使って安定した生成方法を検証するところから始まっていますので、まさにメインの研究内容と言えます。(詳しくはこちらの記事参照)

キャラの一貫性保持と言われて、ぱっと考えつくのは次のような手法です。

①LoRAを作る

②ある程度までt2iで寄せ、加筆で似せる

③参照系機能(バイブストランスファーやReferenceOnly)で似せる

④イメージボードをインペイントして別ポーズにする

⑤イメージボードをControlNetで別ポーズにする

もちろんLoRAを作れたら一番楽なのですが、オリキャラなのでそもそも一貫した教師データがありません。加筆で寄せられるほどの画力もないので、③~⑤の手法がまずは有力になります。これまでもControlNetやインペイントでのポーズ変更についてはさんざん検証してきましたし、こちらの記事(▼)のように「同キャラ別ポーズ」「同キャラ別カット」の生成はSD1.5系モデルを使ったControlNetでも可能ではありました。

3.NovelAIインペイントで一貫性のある複製を作る:図版1

ただ、これはよく見ると分かりますが、頭部の輪郭や眼鏡といった特徴部分をControlnetで保持し、それ以外を変更生成しているだけで、顔の向きはすべて同じです。確かに同キャラには見えるのですが、ストーリーのある漫画を作るには、もっと自然で簡単に、いろんな画角で思い通りの演技をさせたいですよね。

◆◆AIモデルが実は学習している「一貫性保持」◆◆

これは画像生成AI全体に言えることなのですが、「キャンバスの中に同じキャラクターを複数生成しなさい」と命じられたとき、AIは結構な同一性保持力を見せてくれます。例えばこちらは「1girl,multiple views,reference sheet」だけで適当に4枚生成したものですが、LoRAやキャラクタータグなどを使用することなく、一貫性がそれなりに実現できています。

3.NovelAIインペイントで一貫性のある複製を作る:図版2

「同じ画面内に同じキャラを複数描けと指示されると、AIは特徴をできる限り似せようとする」。この特徴を利用して、イメージボードの片側にこのようにスペースを作り、V3インペイントで同じことをしてもらおう、というのが今回の手法です。

3.NovelAIインペイントで一貫性のある複製を作る:図版3

具体的なワークフローは次のとおり。

①「空白つきイメージボード」を作る

画像編集ソフトで、1536x1024pxの横長の空白キャンバスを開く。これはNovelAIの規定キャンバスサイズのうち、大サイズ・横型(1536x1024px)の大きさと同じ。(クリスタにプリセット登録しておくと便利)

①「空白つきイメージボード」を作る:図版1

②イメージボードを1536x1024pxで出力

キャンバスの左右どちらでもよいので、用意したイメージボードを拡縮(クリスタで変形)して配置する。全身を入れると顔が小さくなってしまうし、カウボーイショット(太ももまで)にすると足先のデザインが保持されないので注意が必要。

②イメージボードを1536x1024pxで出力:図版1

できたら、1536x1024pxサイズのまま任意の場所にpng保存する。

③インペイント

この画像をNovelAIの「参照用画像を追加」で読み込み、「この画像で何をしたいですか?」画面で「img2img」を選択。インペイント機能(描いてマスクを追加する)を起動し、ブラシサイズを最大にして空白部分を塗りつぶす。

この画像では真ん中に白い線をわざと残しているが、このようにしておくと「左の絵の続きではなくて、ここには別のカットを入れればいいんだな」と理解してもらいやすいため。

③インペイント:図版1

④プロンプトを作る

生成したい別カットのプロンプトを作る。基本的な容姿タグは、イメージボードを作ったときと同じプロンプト(1girl,housewife,purple eyes,hair intake...)でOK。生成したい別カットはどんな表情・ポーズ・服装なのか(イメージボードとどう違うか)をきちんと指示するのがコツ。

④プロンプトを作る:図版1

ポイントは、「multiple views」「turnaround」を1girlの次あたりに挿入すること。クォリティタグは入れたほうがいいが、画風を操作するタグはないほうがよい。(anime coloredやflat colorなど)

今回のプロンプトはこちら。イメージボードが怒っている表情なので、日常の表情を描くために「smile」を弱めて入れている。