見出し画像

How to Generate Attractive Images of Pretty Girls with AI Vol.2

ー 生成AIを使って、魅力的な女の子の画像を生成する方法 その2ー

【1】 はじめに
 今回は、女の娘の衣装を指定するプロンプトについてご紹介します。様々な衣装を指定することができますが、プロンプトの書き方にコツが必要なものや、不思議と認識されないものもあります。そうした様々の衣装の指定方法について、実際のプロンプトの記述を交えながら進めていきます。

【2】 目次
1 衣装の設定方法
2 具体的な指定プロンプト
  ① 学生服
  ② 体操服
  ③ 水着
  ④ チアリーダー
  ⑤ テニスウェア

今回の協力者ちゃん


【3】 本編
 1 衣装の設定方法
 画像生成AIで衣装を指定する方法は大きく2つあります。
一つは、モデルの性情(例えば、学生とかテニス選手)で指定する方法、
一つは、着せたい衣装について記述する方法です。

 それでは、プロンプトに記述してみましょう。なお、今回使用するプロンプトは以下の通りです。

【積極的プロンプト】
(((1girl))), ((best quality)), ((masterpiece)), ((ultra-detailed)), (illustration), (detailed light), (an extremely delicate and beautiful), (beautiful detailed eyes), (sunlight), ((extremely light)), ((extremely clothes)),


※ここに衣装に関する要素を記述します。

wavy_medium_hair, (((dark_brown_hair))), (((medium_length_hair))),
(((deep_orange_eyes))),

((whole_body)), aged_14_to_17,
(((condescending expression))), mischievous_smile, (((extra slender_shape))), ((extra adorable)),

(((standing on the ground in school))),

((extraordinarily thin thighs)))

【消極的プロンプト】
(embedding:unaestheticXLv31:0.8), low quality, watermark, lowres, (((((bad anatomy))))), text, error, extra digit, fewer digits, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry, missing arms, big breasts, head_wings, dutch angle, furrowed brow raised eyebrows, looking away, thin, petite, Skirt lift, ((smile)), (((ugly))),(((duplicate))),((morbid)),((mutilated)),mutated hands,(((poorly drawn hands))),blurry,((bad anatomy)),(((bad proportions))),extra limbs, cloned face,(((disfigured))),((((missing arms)))),(((extra legs))),mutated hands,(((((fused fingers))))),(((((too many fingers))))),(((unclear eyes))),(Mutant hand:1.3),(mutated fingers:1.5 ),(Mutant legs:1.3),(mutation, poorly drawn :1.2),lowres, bad anatomy, bad legs,bad hands, text,error, missing fngers,extra digt ,fewer digits,cropped, wort quality ,low quality,normal quality, jpeg,artifacts,signature,watermark, username, blurry, bad feet,artist name,bad anatomy,bad hands,bad body,bad proportions,worst quality,low quality, (((((six fingers))))), (((((three legs))))), ((((wrong anatomy)))), (((((cat ears))))), (((((cat tail))))), (((fat shape))), (((transparent clothes))), (((front view))),

① 制服

 まずは、モデルの性情を指定する方法です。該当箇所に、
school girl, と記述します。school_girl, としてもよいでしょう。生成すると次のような画像が得られるはずです。

school_girl, standding on the ground in school,

 制服に見えないわけではないですが、一般的に学生服として連想されるデザインという意味では少し違和感があるかもしれません。日本の制服といえば、やはりブレザーかセーラー服で合って欲しいものです。また、ベストを着用した姿というのも需要があることでしょう。そこで、以下に、1)ブレザー、2)ベスト、3)セーラー服のそれぞれについて指定するプロンプトをご紹介します。

1) ブレザー:school blazer, 
 blazerでも認識されるのですが、blazerは本来「燃え盛る炎」という意味の英単語なので、しばしば炎をまとった姿が秒されることがあります。school_girl, と併記しておくと比較的安定するのですが、school_blazer と指定するのが良いように思います。では、プロンプトに記述してみましょう。なお、経験則上、衣装に関する要素は重みを3くらいつけるとよさそうです。

(((school blazzer)))

(((school_blazer))), school_girl,

 一気に、日本で観られた制服姿になります。rear_view を付けて後ろ姿も確認してみましょう。

(((school_blazer))), school_girl, (((((rear view))))),

 生成には揺れがあるので、生成タイミングが違うと同じ指定でも制服の色や微妙な姿形が変わることがあります。今回もスカートがオレンジのタータンチェックから、黒のプリーツに変わっています。しかし、いずれにせよ後ろから見てもばっちり日本の学生の制服姿です。スカートが短すぎる気がしますが、これはAIの認識です・笑。

 では、「紺のブレザーにオレンジのプリーツスカート」としたい場合はどうすればいいでしょうか?生成ごとに多少揺れるのは仕方ないとしても、幾分かの一貫性を保ちたい需要もあるはずです。
 その場合は、より詳細に、例えば、

navy_school_blazer and an_orange_brief_pleated_skirt
といったように指定します。実際に書いて出力してみましょう。

(((navy_school_blazer and an_orange_brief_pleated_skirt))), school_girl,
(((navy_school_blazer and an_orange_brief_pleated_skirt))), school_girl, (((((rear_view))))),

 まずまず衣装の一貫性が維持されませした。色々見えてしまいましたが気にしてはいけません。なお、上述のプロンプトの指定で、ブレザーとスカートの色が反対に出力された方がいらっしゃるかもしれません。アンダースコア(_)を使って修飾関係を明示的に示していても、色の指定をAIは迷うことがあります。こればかりはこちらでできることはないので、AIがより賢くなるのを待つしかないようです。

2) ベスト:school vest,
 ベストは school vest, で指定することができますが、日本の高校などでよくみられるようなベストとは異なり、ヨーロピアンなかちっとしたデザインのものがよく生成されます。Japanese を加えると行けそうですが、そうすると今度は全体の雰囲気やデザインが一気に着物化するので、当たりを引くまで粘る必要があると言えるかもしれません。ただ、Rivera の場合、1出力に7.8円程度かかりますから、ある程度の妥協は必要になります。

 では、school_vest と記述して見ましょう。

(((school_vest))), school_girl,
(((school_vest))), school_girl, (((((rear view)))))

 いい感じに出力されました。リボンの色もオレンジで揃っており、当たりの生成であるといえると思います。
 なお、ベストの色とスカートの色を個別に指定したいときは、次のようなプロンプトを試します。

navy_school_vest and an_orange_pleated_skirt,

navy_school_vest and an_orange_pleated_skirt,

 スカートがオレンジというよりはオレンジと紺のツートンになってしまいましたが概ね指定通りに出力されました。実は衣装やアクセサリーの色は、キャラクターの髪色や瞳の色にも強く影響される(AIは全体としての色調のバランスを採ろうとする)ため、完全に思い通りにならない場合が多いです。試すなら、

navy_school_blazer, orange_pleated_skirt,
などと書く方法が考えられますが、ぴたっとは決まらないことが多いです。

3) 続いてはセーラー服の指定です。
 セーラー服は、sailor_suit, または middy_uniform としていますが、経験則上は salor_suit and a_skirt とするのが確実なように思います。入力・生成してみましょう。

(((sailor_suit and a_brief_pleated_skirt))), school_girl,
(((sailor_suit and a_brief_pleated_skirt))), school_girl, (((((rear view))))),

 まずまずいい調子で出力されました。今日は exposed 指定はしていないので、見えてしまっているのはAIの仕業です。
 セーラー服の上にベストを身に付けている姿というのはとてもかわいらしいのですが、残念ながら僕のプロンプティング能力では安定的に再現できませんでした。運よく生成されることもあるのですが、1回約7.8円の運ゲームはなかなかに厳しいものがあります。

② 体操服
 それでは、制服はこれくらいにして体操服に進みましょう。実はこれはかなり指定が難しくなかなか思うような服装を生成させられません。どのような体操服を着せたいかによっても指定方法が随分違うのですが、基本は体操着+ブルマの組み合わせだと思うので、それを安定的に生成する方法に挑戦しています。
 体操服は、英語で、gym_suit, と指定します。sports_ware, ではまったく見当はずれになるのでご注意ください。

(((gym_suit))), school_girl,
(((gym_suit))), school_girl, (((((rear view))))),

 まずまずの出力になりました。しかし、本当は白の体操着に紺かエンジのブルマーが典型ですよね💦。いろいろ試してみましたが、なかなか到達できません。また、欧米の女子の体操着といえばレオタードなのか、すぐレオタードっぽいデザインにしようとしたり、今生成した後姿がそうであるように、光沢感のあるレオタードの質感で表現しようとします。こればかりはなかなかいい方法がありません。
 なお、ブルマについては、そのまま bloomer / bloomers, と指定してもうまくいきまん。それは、欧米の bloomer / bloomers, はかぼちゃパンツのような衣装を指すからです。とにかく、gym_suit, とか school_gym_suit, とかで頑張ってみるしかなかったりします。

③ 水着
 これもブルマー体操着と並んで、なかなか思うように生成できません。ビキニなどの私的な娯楽用の水着は割と簡単なのですが、いわゆるスクール水着の指定は運任せなところが少々あります。
 とりあえず、英語で水着は bathing_suit, なので、これを school_bathing_suit, と指定して試してみます。

(((school_bathing_suit))), school_girl,
(((school_bathing_suit))), school_girl, (((((rear view))))),

 フロントビューでは新型スクール水着を得ることができましたが、rear_view, を付けただけでもうスクール水着ではなくなりました。こういう難しさがあります。更に、新型ではなく旧型にたどり着こうと思うと工夫が求められます。
 比較的うまくいくのは、old か former をつけてみることです。すなわち、
old_school_bathing_suit, あるいは、former_shool_bathing_suit, とします。

former_shool_bathing_suit,
(((old_shool_bathing_suit))), school_girl,

 残念ながら、今回の試行では、どちらの指定も外れました。新型の白が出てきてしまっています。色は簡単に指定できますから、旧型にたどり着くには運が必要ということになりそうです。
 ちなみに、同じ指定で当たりを引いたこともあります。

当たり
スカート付きの大当たり

 もしかすると、
old_type_Japanese_bathing_suit_for_elementary_school_pupils,
小学生向けの以前の日本式水着、とかやると安定するかもしれません。ご興味あれば試してみてください。

④ チアリーダー
 チアリーダーの衣装は、体操着やスクール水着に比べるとずいぶん簡単に指定できますが、他の課題を抱えます。というのはチアリーダーにはぽんぽんがつきものですが、AIはこれが手にもって使うものであるという理解が甚だ不十分で、かつ、写真などではポンポンが宙に舞っていることも多いため、ものすごく不自然な場所にポンポンが多数出現することがあるのです。これもAIの認識なのでなかなか手の打ちようがないのですが、消極的プロンプトに「ポンポン」を加える方法は奏功するかもしれません。ただ、ちょっと調べたのですが、「ポンポン」を英語で何というのが一番適当か、そこで躓いてしまいました💦。
 なにはともあれ、チアリーダーの衣装は、cheerleading uniform, と指定します。

(((cheerleading uniform))), school_girl,

 わりとサクッと生成されます。今回はポンポンの不自然さが比較的抑えられた画像を得ることができました。しかし、後ろの街路樹に見えるオレンジの物体は間違いなくポンポンです。

(((cheerleading uniform))), school_girl, (((((rear view))))),

 前後の姿について一貫性を持たせるためには多少プロンプトに工夫が必要かもしれません(スカートを別に指定するなど)が、基本的にはある程度狙い通りの画像を生成できます。ここでの課題は間違いなく不自然なポンポンが現れた時にそれをどうするか、だと思います。

⑤ テニスウェア
 一見、これも典型的なスタイルが決まっているのでチアリーダーの衣装と同様にさくっと生成できそうですが、ある意味では今日ご紹介した中で一番骨が折れる衣装かもしれません。
 まず、英語でテニスウェアは tennis_cloth, ですが、そもそもこれが上手く認識されません。試しにやってみると、

(((tennis_cloth))), school_girl,

 こうなるのでせす。いいところのお嬢様がご自宅でテニスをするのかもしれないような、一般的なテニスウェアとはずいぶん異なる印象の衣装が生成されます。そこで、school_girl, を tennis_player, に変えてみることを思いつきました。以下がその結果です。

(((tennis_cloth))), tennis_player,

 すこし近づきますが、それでもまだ違います。それで色々試してみました。

(((tennis_uniform))), tennis_player,
(((tennis_wear))), tennis_player,
(((tennis_uniform, with_a_pleated_skirt))), tennis_player, (((((rear view))))),

 前から観た姿はまずまずよく知られたテニスウェアを得ることができましたが、後姿を生成しようとするとなぜかAIはスカートを脱がそう、脱がそうとします。それで仕方なく、プリーツスカートのプロンプトを加えましたが、その場合は白でいいのに敢えて色を変えてみたりと、AIはテニスウェアの後姿についてなにか一家言あるのでしょうか?不思議です。
 いずれにしましても、前から見た姿であれば、なんとか安定的にテニスウェア姿を生成できることが分かりました。ただこれにも問題があり、テニスラケット二刀流が頻繁に起こります。消極的プロンプトを上手く活用するなどの工夫が必要になるかもしれません。

 さて、テニスウェアといえば、白の上下のそろいもさることながら、その下が重要だったりしませんでしょうか・笑。そう、いわゆるアンダースコートです。フリフリのアンダースコートはテニスウェアを代表するパーツであると言って過言でない(過言です💦)ですが、結論から言いますと、AIにこれを生成させることはできませんでした。もうちょい、みたいなところまではいけるのですが、肝心の多段フリフリをAIに生成してもらうことはできませんでした。

 アンダースコートは、underware_for_tennis_skirs, と表現します。単数形でも大丈夫です。これを使うと変哲もない白いパンツが生成されるのですが、それでは楽しくないのでフリフリを付けたいわけです。そこで、
many_layered_frilled_underware_for_tennis_skirts, というプロンプトを考案してみたのですが、残念ながら不発でした💦。多層フリルのついたテニススカート(英語ではスコートではない)用の下着、という意味なので、これを文字通りAIが解釈するだけで、仮にAIがアンダースコートを知らなかったとしても生成できそうですが、前述のとおり上手くいきませんでした。下着の両脇にフリルをつけたりはしてくれるのですが、いわゆる背後のふりふりにはなりませんでした。今回は不適切画像を載せる予定がないので、どのように出力されたかは割愛しますが、先ほどご紹介したプロンプトは機能するはずだと思いますので、もしよければいろいろ変えながら試してみてください。many_layered を multiple_layered とかにするともう少し解釈してくれるかもしれません。あるいは underware_with_clustered_frill_on_back_side_for_a_tennis_skirt とかでしょうか?ロマンはあります。

 以上、制服、体操着、スクール水着、チアリーダーユニフォーム、テニスウェアをRiveraで生成した女の子に着せるためのプロンプトを検証してきました。ポーズの指定ほどではありませんが、これ!という衣装をピンポイントで着せるのは結構骨が折れたりします。アンダースコートを描画するプロンプトをご存じの方がもしいらっしゃいましたら是非教えてください。僕もなんとか生成できないか試行錯誤をしていきたいとおもっています。

 ここまでお付き合いいただきましてありがとうございました。本稿が皆様の画像生成AIライフのお供として少しでもお役に立つことがありましたら、望外の幸せです。今回はけしからん系画像はほぼ全くありません。もし、ポージングとの兼ね合いでそうした画像にもご興味がおありでしたら、拙著、How to Generate Attractive Images of Pretty Girls with AI をご覧ください。けしからん画像を掲載することが目的ではありませんが、ポージング指定に関するプロンプトを取り扱っている関係で、けしからん画像が100枚くらいあります(無料部分にはありません)ので、十分に注意して閲覧いただければと思います。

 画像生成AIの制御はまだまだ奥深く、僕程度の初心者ではほとんど大したことはできませんが、しかし生成AIの可能性を信じてこれからも邁進していきたいと思います。

2024年1月11日 著者記す

今日はありがとうございました。いろんな衣装を試してくださいね ♡


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