← Back to スタジオ真榊

Pixiv Fanbox

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

Published 04/10/2024, 01:14:38 AM · Edited 05/06/2025, 10:42:22 PM

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


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



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


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


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



目次

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

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

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

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

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

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

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

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

  ③インペイント

  ④プロンプトを作る

 (④’ バイブストランスファーを使う ※省略可)

  ⑤テスト生成

  ⑥プロンプト修正

  ⑦本番生成

4.さまざまな「同キャラ別カット」タグ

5.一貫性保持のコツ(TIPS)

6.加筆で一貫性を「加える」

7.応用:顔を先に作って全身を描き足す

終わりに


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

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


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

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

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


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


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


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


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


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


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

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


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



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

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


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


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


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

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

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


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



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

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

顔が描かれるサイズが小さいとうまく一貫性保持ができませんので、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」タグを使って背景ありで出力しています。


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



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

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


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


①LoRAを作る

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

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

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

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


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

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


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

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


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


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


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

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


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

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

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


③インペイント

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

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



④プロンプトを作る

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

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


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


PP:1woman,multiple views, turnaround,housewife,open mouth,mature female,casual wear,small breasts,skinny,accessories,standing,cowboy shot,40years old,open mouth,tsurime,long hair,detailed eyelashes,looking to the side, hair pulled back,shiny skin,beautiful black hair, solo,{{{hair intakes}}},detailed eyes,flat eyes,newest, collarbone, facing viewer, [[ai-generated]],{{{amazing quality, very aesthetic}}},sketch,[[[smile]]],forehead, v-shaped eyebrows


④’ バイブストランスファーを使う(※省略可)

より顔立ちを似せたい場合、キャラクターの顔部分を大きく生成した画像をバイブストランスファーで読み込ませるとよい。その場合、抽出情報はMAXの1、参照強度は0.15~0.5程度にする。強すぎると参照画像と同じ表情・画角になってしまうので、出したいカットによって調整しよう。

また、切り出した画像のサイズが小さいと、生成画像がその特徴に引っ張られて低劣になってしまうことがあるので注意したい。


⑤テスト生成

準備ができたらテスト生成してみよう。このように、イメージボードと同じキャラをプロンプト指示に従って生成してくれるはず。

これはバイブストランスファーの参照強度が0.6と強かったため、smileプロンプトを無視してangry表情になってしまっているケース。


何度か生成を繰り返すと…


このように、よく似たキャラを生成できることが確認できる。


ただ、よくみると髪の分け目がなかったり、まつ毛の感じがちょっと違ったり、細かい違いが感じられる。チェリーピックなしで並べるとだいたいこれくらいの「保持力」で、全然違うときもあれば大当たりというときもある。(右下はおしとやかな感じで大外れ)

Opusプランを契約している場合は、0Anlasで生成できる「普通(横型)」サイズで何度か生成結果を確認してみて、本番は大サイズ(横型)で生成するとAnlasを節約できる。




⑥プロンプト修正

お手本であるイメージボードと違うものが生成されがちな場合、まずはプロンプトを修正する。バイブストランスファーの印象が強すぎて同じようなカットになっている(例えば、参照させた顔が怒り顔なせいで、smileと指示しているのに眉をしかめてしまう)と感じたら、参照強度を弱めると良い。


また、実はイメージボード生成時から流用していたプロンプトが一貫性保持の邪魔をしてしまうこともある。例えばもともとあった「tsurime」や「gray T-shirt」「mature female」「40 years old」といったプロンプトにNAIが反応して、「イメージボードのキャラよりツリ目にしよう」「イメージボードの服を別のグレーに変更しよう」「もっと年上に見えるようにしよう」と試みてしまうらしい。


極端なことを言えば、容姿タグほとんどなしの「1girl」でもNAIは似せてくれるので、あまりプロンプトは盛りすぎない方がよい。こちらは「1woman,multiple views, turnaround, [[ai-generated]],{{{amazing quality, very aesthetic}}},sketch」のみで生成したケース。変にプロンプトを盛らなくてもちゃんと似せることができている。


今回はうまく「まんなか分けインテーク」な前髪が再現できなかったり、あまり笑顔らしい絵が出にくかったので、「angry,asymmetrical bangs」をネガティブに入れるなどして調整した。


⑦本番生成

一貫性のあるキャラクターを生成できるようになったら、本番生成。Anlasをもったいぶらず消費して、よい出来のものができるまでガチャしよう。

髪型や服の形状をよく観察して、イメージボードと違う部分はないか(耳は出ているか隠れているか、半袖が長袖になっていないか)じっくりチェックしておく。もし袖の長さや髪型など細かい点が違っていた場合は、生成物を再びimg2imgで読み込み、直したい部分をインペイントしてしまえばOK。


ここまでが基本的な「同キャラ別カット」の生成方法です。原理としては非常に単純で、続きを上手に連想できるV3インペイントの力を借りて、キャンバス上の空きスペースに参照画像とそっくりなキャラを描いてもらおう、という手法ですね。


次からは、応用テクニックを紹介していきます。


4.さまざまな「同キャラ別カット」タグ

さきほどはmultiple viewsタグを使いましたが、「表情集」を意味するexpressionsタグを使うとこのようなことができます。


これはどうやったかというと、上の段の3枚がイメージボードで、残り6つ分のスペースを空けておき、そこにexpressionsタグで表情バリエーションを生成させたものです。


「同キャラのさまざまな〇〇」を学習しているNovelAIタグは他にもあり、違った結果を狙うことができます。プロンプトの冒頭(1girlの次あたり)に使い、{{{}}}で強調すると安定します。


ただ、どのプロンプトを使うかより、どんな「空白つきイメージボード」を用意したかの方が影響力が強いことは覚えておきましょう。こちらは「expressions」を使用していますが、表情集にはならず、「multiple views」と大差ない生成結果となっています。顔がたくさん配置された「お題画像」があれば、AIはどんなプロンプト指示を受けても残りのスペースにも顔をたくさん描きがちです。うまく意図通りの画像が生成できるように誘導する必要があります。


使えそうなタグで私が把握しているものは以下の通り。


multiple views オススメ!

複数画角。「同キャラ別カット」を出す基本タグと考えています。三面図系のタグと違って必ずしもさまざまな画角にならないので使い勝手が良いのが特徴。「同キャラ別ポーズ」「同キャラ別衣装」「同キャラ別表情」などさまざまなシチュエーションに使える。


expressions / expression chart オススメ!

表情集。「同キャラ別表情」を出す基本タグ。たいていバストアップか顔のアップが多く並ぶので、イメージボードも全身図より顔のアップの方がベター。smileやcry、angryなど、出したい表情をこまごま指示してもよいが、そうするとどれかに偏りがち。何も指示しないほうがバラエティのある表情が出る感じがします。


reference sheet/character chart/ character sheet

キャラクター設定資料。「同キャラ別表情・別画角」が出やすい。白黒やデッサンが混じることがあるので「monochrome,unfinished,sketch」あたりをネガティブに入れると良いようだ。衣装や装備だけのカット、カラーチャートなどが入ることもある。


before and after

ビフォーアフター。学習元が「キャラ画像/NSFWシーン」であることが多いので、そうした画像にしたいときに入れると良い。キャラクターを保持したNSFW生成の手法については次回に譲ります。


three views/ turnaround オススメ!

キャラクター三面図。前・後ろ・横からの3枚の画像が出やすく、ポーズもTポーズなど設定画風になる。「straight-on,from behind,from side」と組み合わせると良い。

turnaroundは三面図や前面・背面図がランダムで出る(失敗することもある)

空きスペースが足りないと、このように「二面図」になりがち。何が生成されるかは、やはりイメージボードによるということがわかります。


variations

バリエーション。同キャラのバリエーションから学習しているので、一貫性保持ではなく別衣装(何らかの別パターン)が出ることもある。alternate costumeタグもあるが、AIは概念を理解しない(同じキャラクターの別衣装を注文されているとは理解できない)ので、あまり効果は期待できない。


character pose sheets

ポーズ集。これまでに挙げたタグとさほど差はなく、キャラ設定画っぽいものが出る。ポーズ差分を出したい場合は、これを使うというよりもキャラクター設定資料系のタグと具体的ポーズ(sittingやwaving handなど)を組み合わせた方がよさそう。


dakimakura

抱き枕。意外と「同キャラ別ポーズ」の学習をしている。当然横たわったポーズになりやすい。


chibi inset

ちびキャラと通常頭身のキャラクターが同居しているイラストにつくdanbooruタグ。ちびキャラ化させることができるが、大きい頭身のキャラも一緒に出てしまうので扱いがちょっと難しい。chibi only,deformed,big headなどと組み合わせ、後述する手法でインペイント領域を小分けにすると良いようだ。



5.一貫性保持のコツ(TIPS)

よく似たキャラを生成するコツは「イメージボードはできるだけプレーンな表情・画角のものを選ぶこと」「余計なタグは入れないこと」「空きスペースとプロンプトの組み合わせで、何を生成してほしいかAIに伝えること」あたりですが、他にもいくつか安定的に同キャラ生成を行えるテクニックがあります。


(1)良く似たものができたらイメージボードに加えてしまう

何度か生成しているうちに、これはよく似ているなと思える「同キャラカット」が出るはずです。そうしたら、その画像をイメージボードやバイブストランスファーに加えることで、一貫性をさらに安定させることを狙いましょう。

例えばこのように、「1536x1024px」キャンバスの右側に新たなカットを配置してしまうわけです。(※スペースが足りなかったので、左のカットは背景を削除してあります)


あとは、このように残った真ん中部分をインペイントすればOK。


感覚的なものかもしれませんが、「お手本」が二つに増えたことで、より安定性が増すようです。この例はどれも正面からですが、別画角のものを用意するとより良い結果になりそうです。




バイブストランスファーは先日からマルチ入力に対応しましたので、顔立ちも複数バイブストランスファーすると良いでしょう。その場合、各参照強度は0.15~0.2程度まで弱めた方が良いようです。

イメージボードに参照図を加えすぎると、インペイントする生成スペースが小さくなってしまい、画質が下がるので、バランスを見ながら作っていきましょう。



(2)表情集の出し方について

さきほどの例ではmultiple viewsタグで「同キャラ別カット」を出しましたが、「同キャラ別表情」はexpressionsタグで出すことができます。顔のアップ(またはバストアップ)が並ぶ画像から学習しているので、正方形のキャンバスを九等分し、イメージボードの顔の切り抜きを複数置いて、残りのスペースに表情集を出すことを狙うとよいようです。


これも、うまくいったものは残していくと、さらに生成の安定度が強まります。例えば残り8マスで生成したものの中でよいものがあったら、それを新たなimg2img元にし、このように残り7マスをインペイントすればよいわけです。


ただ、下の6マス分を全部埋めるとこんな感じになってしまうので…


インペイント範囲をこんな感じにしますと…


意図した感じに寄せることができます。出したい表情がある場合は「smile」とか「surprised」とかを入れても良いですね。さきほど紹介した「chibi inset」でちびキャラ化させるときも、この要領でインペイント範囲を小分けにすると等身大キャラが出にくいです。



【コラム】枠線を作ってみた

さきほどの応用で、初めからインペイント用の枠線を引いてみるのはどうかとやってみました。たとえばこのような感じ。


インペイント範囲をこの枠線の中にすることで、「それぞれにお手本のようなものが収まるのかな」とAIが連想しやすくなると思ったのですが、むしろそれぞれの生成サイズが狭まってしまい、あまり思ったような結果にはなりませんでした。


やはり枠線を引くより、このような感じでインペイント範囲を分けた方が…


狙った結果を出しやすいようです。




6.加筆で一貫性を「加える」

以上のような手法を使えば、AIでかなりのところまでにじり寄ることが可能ですが、細かな違いは必ず生じてしまいます。特に服装を買えたり、別の表情をさせたりした場合、別人に見えてしまうことは多いです。


そうした違いを乗り越えて(ごまかして)同じキャラクターだと感じてもらうテクニックとして、「属性を加筆してしまう」という手法があります。


といっても全く難しい話ではなく、「全部のバリエーションの目尻にほくろを描き足したら同一人物に見えるよね」程度のことです。八重歯(skin fang)を作ったり、耳にピアスをちょんと描き足したりするだけでも、記号の力でだいぶ「同キャラ」に見せることができます。


たとえばこのイラストではTシャツの胸に「DEATH」と描き足したのですが、これは「別のページに登場したときと同じ服を着てるから同じキャラ」という誘導と同時に、「元パンクロッカーの奥さん」という記号を強める狙いもあります。



・年齢を揃える

あとは、身体的特徴が同じでも、カットによって年齢が違って見えることがあります。これは「顔の長さ」や「顔面に対して目が占める比率」「目と鼻と口を結ぶ三角形のかたち」が同一でないせいであることが多いです。


こちらはプロンプト内に初回生成時の「mature female,40years old」が残っていたせいで、左のお手本に対し年齢が上がってしまったケース。

プロンプトを精査して一貫性を保つのも有効ですし、これまでも説明してきたゆがみツールをつかったテクニックで、できるだけイメージボードと同じ比率・距離になるように調整してからimg2imgアップスケールすると、一貫性をより強めることができます。


・目のデザインを揃える

特に重要なのが目のデザインで、ここが大きく変わるとどうやっても別人に見えてしまいます。大きく表情をゆがめたとき(驚きや怒りなど)、同じキャラに見えないことが多いのはこのためかなと思います。そういうときはイメージボードの瞳やまつげのデザインに「特徴を足して」、できるだけ同じキャラに見えるようにすると効果的でしょう。やりすぎるとヘンですが、特徴的なハイライトの色や瞳孔の形状などで個性を付与できます。

パワ子はこの瞳孔じゃないと・・・


・鼻の表現を揃える

忘れがちですが、鼻の表現も一貫性保持に役立ちます。

このように鼻周辺を周囲の肌色で塗りつぶして、影かハイライトを特徴のあるかたちに描いてみると良い感じになります。クリスタでの塗り方は「新規レイヤーをつくり”乗算”モードに→周囲の肌色をスポイトし、少し暗く赤めの色で影を塗る→濃さを透明度で調整」でOKです。


いずれにせよ、重要なのは「足す属性は簡単に描き足せるものにしておく」ということです。AIでも手描きでも再現が面倒な記号は選ばないことをおすすめします。髪飾りや衣装のマークといったものは一度素材を作ってしまえば簡単に足せるので、最初に作ってしまうのも良いでしょう。ちなみに、ミナちゃんの制服の胸もとについている「ひいらぎマーク」はこうした狙いで作ったものです。(よく入れるのを忘れる)


7.応用:顔を先に作って全身を描き足す

キャラクタ-の一貫性が最も感じられる部位は、当然ながら「顔」です。前述の通り、全身の一貫性を保とうとするとキャンバスに対する顔の比率が下がってしまうジレンマがありますが、次のような手法でうまく回避することができます。


①まず、こちらのイメージボードの首から上部分を切り抜きます。せっかくなので新キャラ奥さんに変えてみました。

できれば、image2imageアップスケールでできるだけ高精細にしておくとよいでしょう。さきほどまでのスケッチ風タッチだと違いが分からないので、アニメ調に変えてやってみます。いつも通り画面の左側に大きく配置し、右側で「同キャラ別表情」を作ります。

②角度や視線を変えたい場合は「straight-on」や「looking〇〇」などを使って演技をつけましょう。顔のアップですから、「multiple views」と「face」「close-up」といったタグを使います。ここでは、怒っている顔が一気に無表情になる感じを出しました。


③イメージ通りの顔ができたら、今度は切り抜き前のイメージボードに戻って、次の画像のように画像を配置します。


④あとはこのように、インペイント機能で顔を避けるようにしてマスクし、これまで解説した手法で「同キャラ別カット」を生成すればOK。


こんな感じで、顔周辺は意図した表情・角度を保持しながら、狙った別カットを作ることができます。

通常の方法に比べてちょっと手間が掛かるのがネックですが、ビフォーアフターもののように一貫性保持と演技の両立が重要な場合は選択肢に入ってくるかなと思います。


特に、前述の方法でたくさん表情のストックを作っている場合、この方法を使えば表情を固定したまま(つまりそっくりな顔が確約されている状態から)思った通りの服装やポーズにできるわけです。



例えばこちらの例。前述の表情集テクニックで下2段にembarrassedな表情を作りました。プロンプトはこんな感じです。

PP:1woman,{{{expressions,multiple views,embarrassed,blushed}}},housewife,open mouth,casual wear,tsurime,long hair,purple eyes,detailed eyelashes,shiny skin,beautiful black hair, solo,{{{hair intakes}}},detailed eyes,flat eyes,newest, [[ai-generated]],{{{amazing quality, very aesthetic}}},sketch,forehead,from side, variations, nsfw,seductive


中から好みの1枚(右下)をチョイスして、このように縦長キャンバスに配置し、顔以外全体をインペイント範囲に指定します。(全部いったん雑に塗りつぶしてから、消しゴムボタンを使って顔部分を削りだす方が早いです)


あとはこの表情に合わせたいイラストプロンプトで生成するだけです。顔部分の一貫性は既に保たれているので、よほどプロンプトを間違えない限りは一貫性が保持されます。





終わりに

そんなわけで、かなり長くなりましたが、ここ最近研究しているのはこういった感じの内容です。慣れるとクリスタとNAIとForgeを起動したままパッパッと作業できるので、こうした2コマものならさほど時間を掛けずに作ることができるようになってきました。

実際にNSFWの続きも作ってみましたが(リンク先18禁注意)、LoRAなしでサクサク同キャラ別カットを作れますし、成人向けシチュエーションの自由度も高いので本当に楽しいです。加筆がもう少し上手になったら、もっと同キャラに見せることができるのではないかなと思いますが、むしろ特徴のあるキャラクターを作るほうが実は難しいのですよね。シルエットだけで誰か分かるミオリネさんや初音ミクさんはあらためてすごい。


次回はNSFW画像のメイキングについて、セリフや擬音入れ、モザイクや海苔(黒ベタ・白ベタ)の入れ方も含めて解説していくつもりです。


それでは皆様、また近いうちに。スタジオ真榊でした。









Attachments (54)

SkXEI54wCCGHL1REIQrmxPlE.png

SkXEI54wCCGHL1REIQrmxPlE.png

MFUihtPyKsMLkXnfJyD1OYio.png

MFUihtPyKsMLkXnfJyD1OYio.png

aKoTfa9oQv0I0s2zQliPJqZY.png

aKoTfa9oQv0I0s2zQliPJqZY.png

hyD6gl8gyTNYFa739I42cH4D.png

hyD6gl8gyTNYFa739I42cH4D.png

SJ9eXD4koVCF2mfiR7NNLkb2.png

SJ9eXD4koVCF2mfiR7NNLkb2.png

dFr8lkosCYT8k3gL66leDo4O.png

dFr8lkosCYT8k3gL66leDo4O.png

pM2t2ohij63SZ8SNTho9oBil.png

pM2t2ohij63SZ8SNTho9oBil.png

u717YlFYGyNZxEiIJ0mdmCpD.png

u717YlFYGyNZxEiIJ0mdmCpD.png

uFq60jAhTFJwTTEaiND6KJnZ.png

uFq60jAhTFJwTTEaiND6KJnZ.png

BI2xm0KKuySBTQUmDTM2jt7t.png

BI2xm0KKuySBTQUmDTM2jt7t.png

tFlF4RXjk8WbIgiADDseoJRU.png

tFlF4RXjk8WbIgiADDseoJRU.png

CruStjEhzpMiJK77hqtHiFpV.png

CruStjEhzpMiJK77hqtHiFpV.png

YPTd7uZYJBnMILDbzDOB58oW.png

YPTd7uZYJBnMILDbzDOB58oW.png

K7ZN13Hp6t1f7kQEeYHZrIJT.png

K7ZN13Hp6t1f7kQEeYHZrIJT.png

yRlpaCSNVzMIGzHMhjbytiqx.png

yRlpaCSNVzMIGzHMhjbytiqx.png

9LutSRh8ta3oXaT6OJ1n86DN.png

9LutSRh8ta3oXaT6OJ1n86DN.png

2QzsjSJJKfZfI3lelm8hVGb3.png

2QzsjSJJKfZfI3lelm8hVGb3.png

rk2FiMmVknR41ngJZBEVqXEZ.png

rk2FiMmVknR41ngJZBEVqXEZ.png

o5XNm96OhKuTsR42i04r8lOC.png

o5XNm96OhKuTsR42i04r8lOC.png

3DcPoRMYp2wDwcxVfV7lBHV4.png

3DcPoRMYp2wDwcxVfV7lBHV4.png

MEDWEeSTSwiRvhdfM5jRhFGM.png

MEDWEeSTSwiRvhdfM5jRhFGM.png

hhYLb8vcOYcnE1gQnnAwT0cX.png

hhYLb8vcOYcnE1gQnnAwT0cX.png

pM2cUXMWii9U6Bj8TBIpdWCM.png

pM2cUXMWii9U6Bj8TBIpdWCM.png

Puw36bCIZWEG31YXTEjVMfs2.png

Puw36bCIZWEG31YXTEjVMfs2.png

ex5vUib6lrmXnjkMRnWDJbxW.png

ex5vUib6lrmXnjkMRnWDJbxW.png

YLOCAoGjG9bdLdtuJ3diQRRW.png

YLOCAoGjG9bdLdtuJ3diQRRW.png

12bx1ilPvuV0hk1pmpZu5Dx3.png

12bx1ilPvuV0hk1pmpZu5Dx3.png

N16TxpIUrxOW5U3ye0gW4cxk.png

N16TxpIUrxOW5U3ye0gW4cxk.png

TZf5ldF4fbVVXGxeZyzZC8Kw.png

TZf5ldF4fbVVXGxeZyzZC8Kw.png

ckRa3v4mPnPW3DTJmUUWZqcM.png

ckRa3v4mPnPW3DTJmUUWZqcM.png

nxSNONNCTsJ2bOlCppDkSusq.png

nxSNONNCTsJ2bOlCppDkSusq.png

UzIyZLSiWo0MK9sB4xAsVMNZ.png

UzIyZLSiWo0MK9sB4xAsVMNZ.png

z9U5wL8qowlrEE9ZLSslQSeb.png

z9U5wL8qowlrEE9ZLSslQSeb.png

Y4OmYlCesT4nk0wNZfrRMGF5.png

Y4OmYlCesT4nk0wNZfrRMGF5.png

52d2lMIRieYuHSwK9yh7Sv7i.png

52d2lMIRieYuHSwK9yh7Sv7i.png

7JShchb6B4qzsuMoZe9cempw.png

7JShchb6B4qzsuMoZe9cempw.png

7nNyqqmXNQNTCtMgKVr3elbJ.png

7nNyqqmXNQNTCtMgKVr3elbJ.png

dQGtN7bPUgLTnu8PiFxXa6P1.png

dQGtN7bPUgLTnu8PiFxXa6P1.png

CUedCsiMmc1KlNgZBO35Q6DU.png

CUedCsiMmc1KlNgZBO35Q6DU.png

pfK0OcEaerE3JK8RHQzZKTCg.png

pfK0OcEaerE3JK8RHQzZKTCg.png

XJqqWYxm5esVRctnpehm0ext.png

XJqqWYxm5esVRctnpehm0ext.png

Xds6ctKiEK7TBqZEpNA1Cmu4.png

Xds6ctKiEK7TBqZEpNA1Cmu4.png

BjtbPTLgOIBoHWMDcw4rmw1q.png

BjtbPTLgOIBoHWMDcw4rmw1q.png

1Tf9tEWqnlQkexPnRuQxK078.png

1Tf9tEWqnlQkexPnRuQxK078.png

et6BooofDgKpeOpT9eJEWlZi.png

et6BooofDgKpeOpT9eJEWlZi.png

gBcHp49k5j9n9TepzBTfmhzk.png

gBcHp49k5j9n9TepzBTfmhzk.png

CDksKSimzD57j8LmfeuOlhO6.png

CDksKSimzD57j8LmfeuOlhO6.png

lfBbmGQc1PkdLv99dR1IZZ2p.png

lfBbmGQc1PkdLv99dR1IZZ2p.png

PVUkfqCnkg2cJx43WPQXIlxf.png

PVUkfqCnkg2cJx43WPQXIlxf.png

WH2XOh6L8ibZRf0l5ZDEc0nW.png

WH2XOh6L8ibZRf0l5ZDEc0nW.png

IHTqImbGKiNRZw9VYMzzKUgL.png

IHTqImbGKiNRZw9VYMzzKUgL.png

gBOIvzB13uJucRw1TRsXHPpw.png

gBOIvzB13uJucRw1TRsXHPpw.png

YVX9jMhcPIOGV362WMWuherj.jpeg

YVX9jMhcPIOGV362WMWuherj.jpeg

qzqjmcuVn9Et7vq71HEgvN0Z.png

qzqjmcuVn9Et7vq71HEgvN0Z.png