見出し画像

Stable Diffusion Prompt (呪文)攻略

1週間ほどStable Diffusionで遊びまくった結果、自分の望んでいるような画像を格段に高い確率で生成させられるようになったので攻略法を紹介します。

どれぐらい攻略したかというと、「少女終末旅行のような画像」を生成したいと思ってPromtを用意し、Stable Diffusion Demoの4枚生成で1度生成、Promptを修正した2回目でこれが出せるぐらいになりました。

a Detailed Illustration of Cityscape, Overpass Highway, Back View of Girl in Oreimo Style, Olive Drab Military Long Coat, Military Helmet on Black Short Hair, Kettenkrad, Abandoned City, A Few Huge Trees, Broken Skyscaper, Bush and Glass, Summer Sky, Aerial View, Makoto Shinkai Movie Background

コツはStable Diffusionがどういう言葉をどう学習しているかの傾向を把握する事、発現の優先順位を理解する事です。遺伝的アルゴリズム(ニューラルネットワーク)学習データに従ってPromptの持つ要素を考慮し、要素の足し引きを行って行きましょう。

Stable Diffusionの得意不得意

基本的にStable Diffusionはイラスト特化画像生成AIではないので、アニメや漫画のようなキャラクターは不得意です。実際の人間よりも顔のパーツの多様性が大きく、人間のような敏感で柔軟な顔専門の優先的な認知の仕組みが必要とされるからです。

安定して出力させたい場合、顔が大きく映る構図( a Portrait of や Face )を指定するのは必須です。その次にリアル系のイラストを目指すという手があります。

a Digital Illustration of Face of Girl, Beautiful Female Face, Aesthetic Anime Eyes, Realistic Detailed Illustration, Deviantart Illustration, Cute, Kawaii, Epic(たぶん)
これぐらいのリアル系の絵柄は安定して生成されます。

また、明確に似た傾向を持つ学習先に絞ったPromtを渡すのも効果的です。しかし、ほとんどの場合で面白みのない画像が生成されます。

Portrait of a Girl, Love Live! School Idol Project Anime Character
これなら福笑いをやったほうが創造的です。

Stable Diffusionの学習内容の把握

まずPromptを使って狙った画像を生成させる前に、Promptに使う言葉についてStable Diffusionがどう学習し、どう実際に画像に発現するのかを確認すると楽になります。

Promptで使う単語一つや一文だけで生成させた場合の結果を確かめましょう。例えばHelmetだけではこのように軍隊のヘルメットよりもバイクのヘルメットやスポーツ用のヘルメットになってしまいます。

Hemet

背景にHighwayを指定するつもりなので、道路→乗り物→バイクと想起させるPromptでは軍隊のヘルメットにはなりません。
そこでハッキリと軍隊のヘルメット"Military Helmet"に変えてみましょう。

Military Helmet

イメージ通りの軍隊のヘルメットの画像が生成されました。

このようにPromptに対するAIの学習内容と発現傾向を調べ、使用者がその言葉に持つイメージと生成画像に発現しやすいイメージのすり合わせをするのが大切です。中には言葉を変えないとAIがイメージする画像を生成してくれないものも少なくありません。これは複数の意味を持つ言葉複数の単語で表される概念になればなるほどよく起きます。

※追記(22/9/1)
Promptに対してどのような学習をしているのか、自ら試さなくても知る事が出来そうなサイトがいくつかあると知ったので

Lexica 
StableDiffusionで他のユーザーが生成した画像が、生成に使用したPromptとセットで公開されているサイト。
ClipFront
学習に使われたデータセット(Promptで参照される画像)が検索できる。

Promptの並べ方(例:構図)

まず、コンマで区切られた文内では文章としての意味に近い認識をしているようです。例えば少女を写したい時はGirlを主語にします。

Girl in Cityscape
(街の風景にいる少女)

しかし、この場合は”遠くから写した少女”と指定しても、あまり小さくなりません。全身が画面内に入らない場合も多く、少女が中心の構図になります。全身を写し、画像の中心から外しすには”風景”を主語にして、そこに”少女がいる”を付け足します。

Cityscape in Girl
(少女のいる街の風景)

カメラアングルによる構図の指定

ここにカメラアングルを指定する事で、より画像の構図を変える事も出来ます。

Cityscape in Girl Aerial View
(見下ろし視点)
Cityscape in Girl Low Angle
(見上げるような視点)
Cityscape in Girl Overhead View
(ちょっと見下ろす視点)
Cityscape in Girl Over the Shoulder Shot
(肩越し視点)

基本的にコンマで区切られた文単位で頭の言葉ほど優先順位が高くなります。

初めに大写ししたいものは風景なので都市風景”Cityscape”で、細かく描かれたイラスト調”Detailed Illustration”を指定します。
次に”Cityscape”だけでは建物ばかりになって寂しいので高架道路”Overpass Highway”を足します。
次に画面に写したい少女を加えます。ここで顔の生成が苦手な事を考慮して後ろ姿”Back View”、アニメ調で低等身にしたいので俺妹風”in Oreimo Style”とします。
少女を指定したら次に少女についてのPromptを付け加えます。外見やポーズなどを指定します。今回はOD色のロングコート”Olive Drab Military Long Coat”、軍ヘルメット”Military Helmet”を付けます。
後は優先順位の低い遠景を指定します。初めに大きな物を指定し、そこに含まれる小物を指定していきます。隠れてしまっても良いもの、無くても良いものほど後ろに並べます。今回は廃墟になった街”Abandoned City”と指定し、巨木”Few Huge Trees”や壊れた高層ビル”Broken Skyscaper”、草むら”Bush and Glass”と付けます。雲のある空にしたいので夏空”Summer Sky”で景色は完成です。最後に画風として新海誠作品の背景"Makoto Shinkai Movie Background"と指定すればOKです。

a Detailed Illustration of Cityscape, Overpass Highway, Back View of Girl in Oreimo Style, Olive Drab Military Long Coat, Military Helmet, Black Short Hair, Abandoned City, Few Huge Trees, Broken Skyscaper, Bush and Glass, Summer Sky, Aerial View, Makoto Shinkai Movie Background

Promtの修正

更に結果を見てPromptの問題点を探り、修正します。

a Detailed Illustration of Cityscape, Overpass Highway, Back View of Girl in Oreimo Style, Olive Drab Military Long Coat, Military Helmet, Black Short Hair, Abandoned City, Few Huge Trees, Broken Skyscaper, Bush and Glass, Summer Sky, Aerial View, Makoto Shinkai Movie Background

結果を見ると半分はヘルメットを被っていません。
おそらく、HelmetとGirlの関連度が低く被っているものという認識が薄いようです。そこでヘルメットを被っている事を強調したPromptにします。

a Detailed Illustration of Cityscape, Overpass Highway, Back View of Girl with Military Helmet in Oreimo Style, Olive Drab Military Long Coat, Black Short Hair, Abandoned City, Few Huge Trees, Broken Skyscaper, Bush and Glass, Summer Sky, Aerial View, Makoto Shinkai Movie Background
なお"Kettenkrad"は学習されていなかったので削除した。

格段にヘルメットを被った画像が生成されやすくなりました!こんな調子で発現させたいものとそうでもないものの優先順位を変更していきましょう。

オススメな言葉

  • Digital Illustration Anime :アニメ調デジタルイラスト

Anime単体はアニメのカットシーン的な画面エフェクトがついたり、ベタなアニメ塗りになりやすい。

  • Portrait of ~ :肖像画、証明写真風

同様の構図を指定する Bust Up Shot of ~ に比べて、他の意味を含まない言葉で安定性が高い。

  • Aesthetic Anime Eyes :芸術的なアニメ目

格段に綺麗なアニメ目の発現率が上がる。Anime を抜けばリアル風にも。
目のハイライトの発現率が低い場合は Highlight Spot ~ in Aesthetic Anime Eyes などでハイライトがある事を強調する。

  • Beautiful Anime Face +表情 :綺麗なアニメ顔

  • Detailed Painting Landscape +風景 :詳細な風景画

  • FGO :FGO

露出の多い美少女キャラを生成したい時のマジックワード。

  • Honkai Impact :崩壊3rd

メカ少女を生成したい時のマジックワード。

  • AzurLane :アズールレーン

スタイルの良い美少女キャラを生成したい時のマジックワード。

  • Kantai Collection :艦これ

落ち着いた色味の制服美少女キャラを生成したい時のマジックワード。

  • Pixiv Illustration :Pixivのイラスト

いい感じ描き込まれたキャラクターイラストになりやすいマジックワード。

  • Chibi, Nendoroid, Bobblehead, Gochiusa Face, ~Painting系 :デフォルメ

ねんどろいどボブルヘッドで写真成分が強くなるため、Painting系を多重に入れてになりやすくしている。通常のアニメ顔指定は崩れやすいので、強めのデフォルメで覚えているごちうさ風の顔を指定し、安定性を上げている。

使える語彙

以下は発現を確かめたものです。

画材・画風

Sketch :写生画:
Drawing :線画(写生画より細かい) 
Illustration :イラスト(線画と絵画の中間)
Painting :絵画(塗り中心の絵)
Portrait :肖像画、バストアップ構図
Landscape :風景画、風景
Background :背景

Cut Scene :映像作品のワンシーン(媒体の画面効果が付随しがち)
Detailing Oil Painting :描き込まれた油絵
Realistic Digital Painting :リアル風CGイラスト
Thick Coating Painting :厚塗りイラスト
Rough Sketch :ラフ線画
Rough Drawing :ラフ画(塗りもある)
Anime Art :アニメ塗りイラスト

Concept Art :コンセプトアート風(塗りもあるラフ画)
Pop Art :ポップアート(派手な色使い、ベタ塗り)
Cartoon Animation :カートゥーン風(Cartoonだけだと風刺漫画風に)
Pixel Art :ドット絵風(直線や直角が増え、コントラストの効いたものへ)

風景画、背景画の画風の指定

ジブリ作品風: Studio Ghibli Movie Background
細田守作品風: Mamoru Hosoda Movie Background
新海誠作品風: Makoto Shinkai Movie Background

キャラクターのスタイル

Chibi :デフォルメキャラ
Furry :ケモノキャラ
Anime Character :アニメ的なキャラ

アングルの指定

Low Angle :下から見上げるアングル
Overhead View :頭の上からの見下ろしアングル
Aerial View :空からの見下ろしアングル
Over the Shoulder Shot :肩越しのアングル

写し方の指定

Long Shot :遠くから写して
Full Body Shot :全身を写して(生き物限定のLong Shot)
Waist Up Shot :腰から上を写して
Bust Up Shot :胸より上を写して
Close Up Shot :近づいて写して
Isometric View :等角図、いわゆるクォータビュー

レンズ・ピントの指定

Bokeh :被写体以外をぼかして
Fish Eye Lens :魚眼レンズ
Wide Angle Lens :広角レンズ(横幅のある画像を生成しないと無意味)
Telephoto Lens :望遠レンズ

身体

Beautiful Face :綺麗な顔
Irises :瞳孔
Aesthetic Eyes :綺麗な目
Hair :髪(全体)
Bangs :前髪
Bob Bangs :ぱっつん前髪
Pigtail Hair :ツインテール
Smile :口を閉じて笑う、笑顔
Laugh :口を開けて笑う

服装

Seifuku :学校制服(ブレザー型のが強い)
Track Briefs :ブルマ
Competition Swimsuit :競泳水着
Thigh Highs Stockings :ニーハイソックス
Wrinkled~ :しわのある~

メカ

Robot :人間大のロボット
Mech :巨大ロボット
MobileSuit :ガンダムのMS風(かなりカラフル)
BattleTech :バトルテック風(無骨なデザインのロボ)

マジックワード

Pixiv Illustration :キャライラスト(Pixivだけだと発現しにくい)
Bishojo :美少女キャライラスト(描き込み多め)
Senpai :学生キャラ
Otaku :アニメ風のイラスト(アマチュア・ファンアート強め)
Zettai Ryouiki :ニーソックス(焦点が太ももへ)

ゲーム編

Arknights :アークナイツ(青黒制服の美少女キャラと武器)
Girls Frontline :ドールズフロントライン(赤黒制服の美少女キャラと武器)
Granblue Fantasy :グラブル(ファンタジー衣装のキャラ、厚塗り風)
Kantai Collection :艦これ(落ち着いた色味の美少女キャラ)
Idolmaster :アイマス(アイドルキャラ、カードイラスト風)
LoveLive :ラブライブ(アイドルキャラ、アニメのワンシーン風)
Fate Grand Order :FGO(黒マントと鎧やドレスを着たキャラ、露出あり)
FGO :上記のものよりもファンアート的、キャラにクローズアップしたもの
Honkai Impact :崩壊3rd(赤白SFメカスーツ美少女)
AzurLane :アズレン(ドレスにニーソ、胸のある白髪の美少女、露出あり)
PowerPuff Girls :パワーパフガールズ
Touhou Project :東方プジェクト(独特の衣装の少女、帽子)
Persona4 :ペルソナ4(ビビッドな色合いのスマートなキャラ)
Yosuga no Sora :ヨスガノソラ(銀髪の美少女)
Nekopara :ネコぱら(ネコ耳紫ロングヘア美少女)
GRISAIA Phantom Trigger :グリザイア(青髪で黒系衣装の美少女)
Aokana :蒼の彼方のフォーリズム(紫ロングヘアの白紺制服美少女キャラ)

アニメ・漫画編

Violet Evergarden :ヴァイオレット・エヴァーガーデン(透明感のある作画)
DARLING in the FRANXX :ダリフラ(制服を着た男女やメカスーツ)
K-ON :けいおん(楽器を持った制服キャラ、CDジャケット構図)
Gochiusa :ごちうさ(デフォルメの強い顔、ヘッドドレスとフリルドレス)
YuruYuri :ゆるゆり(紺、白、ピンクの短髪美少女、ピンク白衣装)
Madoka Magica :まどマギ(ピンク髪の魔法少女)
Precure :プリキュア(カラフルな魔法少女)
Strike Witches :スト魔女(猫耳を付けた黒系制服美少女)
 Jewelpet :ジュエルペット(低等身の獣人少女キャラ、混じってる)
Miss Kobayashi's Dragon Maid :メイドラゴン(メイド服を着た巨乳美少女)
Fate kaleid liner Prisma Illya :プリズマイリヤ(水色ピンク髪と発光効果)
KILLlaKILL :キルラキル(赤と黒の髪の女性キャラ、シンプルな塗り)
LittleWitch Academia :LWA(シンプルな画風の魔女)
GurrenLagann :グレンラガン(赤いロボット、決めシーン構図)

ラノベ・小説編

KonoSuba :このすば(青いマントの男女キャラ)
SwordArtOnline :SAO(武器を持った黒白制服のアニメ調短髪キャラ)
ReZero :リゼロ(淡い色やピンクの髪のアニメ調少女)
Kino's Journey :キノの旅(帽子をかぶった軍服で短髪のアニメ調青年)
Toradora :とらドラ(頭身低めの美少女キャラ、カットシーン風)
Hyouka :氷菓(黒髪の美少女と男子、綺麗な背景)
Oreimo :俺妹(低等身キャラ、ヘッドドレスとドレス)

キャラ編

SuperSonico :スーパーそに子(横幅のあるヘッドホンを付けた巨乳美少女)
ReZero Rem :レム(ハネの少ない青い髪の美少女、片目隠れ難しい)
ZeroTwo :ゼロツー(赤髪の美少女、他のキャラもまじりがち)
Asuna :アスナ(ロングヘアのオレンジ髪の美少女)
Hatsune Miku :初音ミク(ミントグリーンツインテールの美少女)

使えない言葉

学習データに収録されていないか、学習しているが弱く発現しにくいもの、そのほか。

商業的な活動をしていないイラストレーター名は学習されていません。
また、商業的に活動しているとしても、ある程度世界的に有名でないと発現は確認できません。

Genshin Impact :原神
Blue Archieve :ブルーアーカイブ
PrincessConnect Redive :プリコネR
Idolmaster ShinyColors :シャニマス(Idolmasterの他の要素に負ける)
Sailor School Uniform :セーラー型学校制服(海兵士官学校の軍服すら出る)
School Swimsuit :スクール水着(海外に無い概念なので)
Atelier Ryza :ライザのアトリエ(Gameを付けるとゲーム画面は出る)

Eroge :エロゲー(露出の高い巨乳美少女キャラ、高確率で規制)
Hentai :エロイラスト(学習しているようだが100%規制)
Ahrgao :アヘ顔(学習しているようだが100%規制)

最後に

リコリス・リコイルっぽい画像を目指して誕生した屍の山。

Promptで指定した事がきっちりと認識され、結果に発現する事を確認したならば、後は生成を繰り返して綺麗に発現したものが生成されるのを待つしかありません。これは運でガチャです。

瞳にハイライトを描き足し、綺麗に再現できずにノイズになっていた眉と鼻を描き直しただけ。

究極的に数をやるぐらいなら、惜しい画像を人間が加工するのが最適です。
絵を描く事が出来なくても、出来の良い画像をトリミングして合成する事は誰にでも出来るはずです。
Stable Diffusionの先輩画像生成AIであるDALL・E2の公式ドキュメントにもそう書かれています。

※追記
絵描きでもあり情報系出身現プログラマーとして、一般人があまりに画像生成AIの仕組みについて理解できていない、勘違いをしている事に苛立ちを覚えるので、啓蒙のために仕組みついて解説するnoteを別に書く予定です。


この記事が気に入ったらサポートをしてみませんか?