【解説】同一キャラ画像複数生成方法(プロンプト例あり) (Pixiv Fanbox)
Content
1.はじめに
この記事では、キャラの一貫性を確保しながら複数の画像を生成することを目的としています。
例えば、次のものです。
複数画像に渡って、キャラ特徴が一貫していると思います。
このために私が行っていることについて、解説していきます。
2.解説
基本的な方向性としては、なるべく詳細なプロンプトでキャラ特徴を固めて、それでも難しい部分はコラ加工していきます。
具体的な手順は次の通りです。
手順①:キャラ特徴用プロンプト作成
キャラ特徴を表現する詳細なプロンプト(より具体的な意味を持つDanbooruタグを優先して使用)を作り、キャラ特徴がなるべく固定されるようにします。
# プロンプト(キャラ特徴部分)
(<規制ワード> plump otoko no ko),
black beret, hair bobbles, silver hair, low twintails, pink eyes, pink necktie, white collared shirt, suspenders,
long puffy sleeves, pleated skirt, black legwear
プロンプトが思いつかない場合は、画像からプロンプトを生成する機能を使ってみるのが良いと思います。
例えば、Stable Diffusion web UI(AUTOMATIC1111版)のimg2img画面にはInterrogate DeepBooruボタンがあります。
このボタンでは、その画面に置いた画像からプロンプトを逆算し、プロンプト欄に設定します。(背景などのキャラ属性以外の記述もあるので、それは必要に応じて省きます)
また、キャラ用のLoRAモデルを使用する場合でも、私の場合は詳細なプロンプトを作っています。
例えば、次のものです。
https://www.pixiv.net/artworks/110903850
# プロンプト(キャラ特徴部分)
(oyamamahiro), huge ahoge, very long hair, pink hair, hair intakes, brown eyes, neck ribbon, blue jacket, collared shirt, flat chest, pleated skirt, blue skirt, <規制ワード> otoko no ko
その上でプロンプトに、体の部位(例:testicles)やカメラアングル(例:from below)、アクション{例:squatting}や場所{例:indoors}を加えて、txt2imgを繰り返します。
※縦横比によって出やすい構図、出にくい構図があります。うまくいかない時には、縦横比を変えてみるのも一つの手です。
私の場合は後述の手順②で加工するのであまり気にしていないのですが、部位ごとの色を厳密に適用させたい場合は、次の拡張機能を使わせてもらうのが良さそうです。
※各単語の適用範囲を限定できる拡張機能です。例えば、「black hair, brown eyes, 」と指定した場合、brown(茶色)はeyes(目)にかかりますが、実はhair(髪)にもかかることがあります。そのような意図せぬ適用を防ぐことができます。
手順②:コラージュと色塗りによる加工
# プロンプト
(<規制ワード> otoko no ko:1.2), plump,
black beret, hair bobbles, silver hair, low twintails, pink eyes, pink necktie, white collared shirt, suspenders,
long puffy sleeves, pleated skirt, black legwear, no panties, penis,
open mouth, arm support, against wall
BREAK
2boys, yaoi anal sex, doggystyle, cum in ass, ejaculating while penetrated, ejaculation, ass grab,
outdoors, alleyway, concrete, faceless muscular dark-skinned male, pants
ある程度はプロンプトでキャラ特徴を固定できますが、上の画像のように色々と違う場合もあります。
その場合は、txt2img画像をコラ加工し、それをもとにimg2imgします。
このテクニックは以前別の場所で記事を書いたので、そちらを参照してください。
手順③:高解像度化
求める構図になったら、解像度を上げます。
解像度を上げることで、細かい部分にも描きこみが入るようになります。
解像度上げの方法として、私の場合は次の二つをよく使っています。
③-A ほぼ完成形の場合
手順②まででほぼ完成形のものが出来上がった場合は、前の記事で紹介させていただいたControlNet/Tileで行います。
③-B そうではない場合
img2img画面にて、次の拡張機能を使用して解像度を上げます。
この時には何度か実行して、画像ガチャとすることが多いです。
※アップスケーラーは高めのPCスペックを必要とする機能ですが、この拡張機能を使うことで必要量を下げられます。
※ライセンスがCC BY-NC-SA 4.0となっていますが、Readmeの注意文を読む限りは、生成画像にはそのライセンス適用はされないようです。
私が使うときには、次のような設定をしています。
■Tiled Diffusion
Enable Tiled Diffusion:ON
Upscaler:R-ESRGAN 4x+ Anime6B
※アップスケーラーごとに特徴があるらしいですが、未検証です。
Scale Factor:倍率
※元画像の縦横両方で指定の倍率まで解像度上げされます。
■Tiled VAE
Enable Tiled VAE:ON
3.おわりに
前は、3Dキャラクターを使用してキャラ特徴を固めていました。
以前の記事もその例です。
以前の記事ではControlNetも使用していますが、それを使わなくても、元画像としての3Dキャラクター画像があるだけで固定力が違います。
ただ、3Dキャラクターを作るのも、それを操作してポージングさせるのも、手間ではあります。
その結果として、上のような手順になっているこの頃です。
(おわり)