画像生成AIのプロンプトの書き方と、コツをご紹介します。
プロンプトの書き方は主に、Stable Diffusion での内容となりますが、TensorART など Stable Diffusion ベースのツールでもほぼ同じ使い方ができます。
プロンプトとは、AIに対して指示やリクエストを与えるための「文章」や「テキスト入力」のことを指します。
Stable Diffusion など画像生成AIの場合、プロンプトは生成したい画像の特徴やスタイルを具体的に記述したものです。つまり、「どんな画像を生成してほしいか」を伝える役目があります。
この記事での「プロンプトの書き方 コツの解説」は初心者向けの内容ではありますが、後半は中級者の方にも役立つ情報になっているかと思います。
では、画像生成AIのプロンプトのコツと書き方を、わかりやすく解説していきますね!
スポンサーリンク【プロンプトの構成を知ろう】
プロンプトの基本構造を知っておくと覚えやすいと思います。
構造というと難しそうですが基本は「3つ」です。
「品質系プロンプト」
「コアプロンプト」
「描きたいものの要素プロンプト」
を順番に「英単語」で書いていけばOKです。
英単語のあとには「,」(半角カンマ)を付けて、次の英単語と区切りましょう。英単語と英単語の間の「半角スペース」は入れても入れなくてもよいです。
(画像生成AIサービスによっては日本語に対応しているものもあるので、英語が苦手な方は日本語対応の画像生成AIサービスを使うのもアリです)
↓例としてはこんな感じ。
best quality, masterpiece, best quality, masterpiece, Ultra detailed, insanely detailed, beautiful,
1girl,
Desert, black hair, long hair, show your forehead, collared shirt, hat, upper half of body shot,
上の一行が品質系プロンプトで、次がこの絵のメインで描きたいもの、あとは描きたいもの要素のプロンプトを単語で書いただけのものです。
↓できた画像がこちらになります。アニメ系のモデル(チェックポイント)を使いました。
プロンプトの意味は、
最高の品質、傑作、最高の品質、傑作、超詳細、めちゃくちゃ詳細、美しい、
1人の女の子、
砂漠、黒髪、ロングヘア、おでこ見せ、襟付きシャツ(Yシャツのこと)、帽子、上半身ショット、
そこまで難しくない内容ですよね?
一応、Stable Diffusionではプロンプトの区切りを改行をしても大丈夫なので、慣れないうちは改行してもよいかと。
では、基本構造について、ひとつずつ解説していきます。
◆はじめに品質系プロンプトを入れる
まずは、画像生成AIに「綺麗に描いてね」「美しい傑作を描いてね」とお願いします。
「絵を描くならそんなの当たり前じゃん!」と思うかもしれませんが、良い絵=綺麗な絵 という訳でもないので基本、描いてもらう際には品質系のプロンプトを記述しましょう。
必ず最初に記述しないとだめなわけではありませんが、ある程度 画像生成に慣れてくるとテンプレ(決まったワード)になってくるため、プロンプトの頭に記述する方が多いようです。
とりあえず、この辺りの品質系プロンプトを入れて画像生成してみてください。
品質系プロンプトの例:
best quality, masterpiece,best quality, masterpiece, Ultra detailed, insanely detailed, beautiful,
意味は、「最高の品質、傑作、最高の品質、傑作、超詳細、めちゃくちゃ詳細、美しい」となっています。
他にも、もっとたくさんのプロンプトを強調を加えて記述することもありますが、上記のプロンプトは必要最小限入れておきたいプロンプトとなります。
基本は、モデル(チェックポイント)によって絵柄を決められるように出来ていますが、より写真のように描きたい場合は「photorealistic」、アニメ風に描きたい場合は「anime style」などの言葉を品質系プロンプトとして使う場合もあります。
これらは無理に入れなくてもよいですが、「画風をコントロールするプロンプトもある」ことを知っておくとよいと思います。
また、モデル(チェックポイント)によっても、推奨される品質系プロンプトが変わってきます。これは慣れてきてからでよいので、より綺麗に描きたくなったらモデルに適したプロンプトも調べてみてください。
◆主役となるコアプロンプトを入れよう
コアプロンプトとは描きたい絵の中心となるもののことです。
「人」や「動物」「風景」、「抽象的なイメージ」など画像のテーマとなるものを記述します。
人物だったら「1girl(一人の女の子)」などがよく使われます。
◆女性の例
1girl,:一人の女の子
female around 20 years old,:20歳くらいの女性
mature female,:成熟した女性
◆男性の例
1boy,:一人の男の子
man,:男
male,:男性
男性はモデルによっては学習データが足りず生成されにくいらしいです。プロンプトに男性要素を追記、ネガティブプロンプトに女性を表す単語を記述することで男性の絵が生成されやすくなります。
必要に応じて男性が描きやすいモデルに変更してみるのもおすすめ。
動物や風景も描くことができます。モデルによっては想像上の生き物なども描けるので是非、遊んでみてください。
「ドラゴン」と入力で巨大な竜が!
「ケルベロス」と入力したら出てきたのが…おまえケルベロスなのか!?※生成する度に変わります
風景画や抽象画のプロンプトは、描きたい絵のイメージがちゃんとAIに伝わるようになるべく細かく、具体的に書くとよいでしょう。
◆描きたいものを具体的な表現で入れよう
続いて、「描きたいものの要素プロンプト」を書き入れます。ここがプロンプトの一番難しいところでもあり、面白いところでもあります。
プロンプトは曖昧な表現ではなく、「色」「スタイル」「構図」などを詳しく具体的に書きましょう。
例えば、女性を描く場合、髪型、髪色、肌の色、目の色、表情、スタイル(体つき)、衣服、構図、ポーズなどがあります。
さらに、背景、風景、季節、アングルなどを入れることで、思い通りの絵に近づけます。
足りない部分は生成した画像を見てから、徐々に足していけばOK
初心者の方は、まずはここまでやってみて、楽しみながら画像生成に慣れていきましょう。難しいことを一気に覚える必要はありません。
意外と、画像生成のやり方をまったく知らないという人は多いので 正直、「画像が生成できるようになるだけでもすごいこと」です。
プロンプトの書き方には法則やコツもあるので、ここからじっくり解説していきます。描きたいものが書けなくなってきたら参考にしてみてくださいね。
【プロンプトの強調、順序、BREAK構文】
プロンプトの書き方には法則があります。せっかくなので、これらは覚えておきたい項目となります。
◆プロンプトを強調する方法
プロンプトを「強調」することで、そのプロンプト内容が描かれやすくなります。
強調の仕方はツールにより異なりますが、Stable Diffusionベースのサービスでは、半角括弧 () でプロンプトを囲みます。※ツールによっては {} の場合もあり。
例:(light brown hair),
強調してもうまく反映されない場合は、括弧で閉じた状態で「:1.1」と数字を打ち込むことで「1.1倍の強さ」となり、さらに強調することができます。
例:(light brown hair:1.1),
ただし、数字を大きくしすぎると生成画像が破綻しやすいので、1.1~1.9ぐらいで止めておくのがおすすめ。2.0以上はキツイかも。
例:(High quality:1.1),(Ultra detailed:1.2),(best quality:1.2),
括弧は複数のプロンプトをまとめて閉じることも可能です。
例:(High quality:1.1, Ultra detailed:1.2, best quality:1.2),
逆にプロンプトの要素を弱めるときは、数字を0.9以下にしてみてください。例えば背景に写したいけど、そこまで強調したくないものを描くのに便利。
例:(light brown hair:0.9),
これらの括弧を使った「強調」を使うだけでも、かなり描きたい絵が描けるようになりますよ!
◆優先したいプロンプトは先に記述しよう
Stable Diffusionのプロンプトは、基本的に先に記述する単語が優先され、後ろの単語は優先度が下がります。
「順に優先される傾向がある」とのことですが、体感では「それほどかなぁ?」とも思います。しかし重要な要素は先に書いた方がよいとされています。
なので、うまくいかない場合は、描いてもらいたい内容のプロンプトを先に記述(前のほうに記述)するようにしてみてください。
◆BREAK構文の使い方
Stable Diffusionでの「BREAK構文」は、プロンプト内で特定の要素の影響を強めたりできます。
「BREAK」という言葉をプロンプト内に差し込むことで、BREAK 直後のプロンプトの影響を高めることができます。※正確には BREAK 直後からのプロンプトの影響
※BREAKは大文字で記述してください(小文字だと通常のプロンプトだと認識される)。
プロンプトが長くなる場合、基本的にはあとのプロンプトの影響度が弱くなってしまいます。
そのため、ある特定の要素を強めたい場合に「BREAK」を使い、区切りを付けつつその後のプロンプトの影響度を高めることができます。
使い方は、プロンプトとプロンプトの間に「BREAK」を入れます。
BREAK直後のプロンプトは、「先頭のプロンプトと重みづけが同じになる」ため、描きたいけど描かれないプロンプトの前に入れると効果が出やすいです。
また、当然その後に続くプロンプトにも影響が出るので、内容が似たプロンプトを整理して、ある程度区切りのよい場所で使うのがよいとされています。
ちなみに、「a cat, a dog,」だけだと「猫と犬」がうまく描かれないですが、
「a cat, BREAK a dog,」とすることで重みづけが均等になり、猫と犬が描かれやすくなるという理屈らしいです。
うまく行かない場合のほうが多い気がするので使いこなすのは難しいのかも?
【ネガティブプロンプトを入れる】
ネガティブプロンプトとは、生成する画像に含めたくない要素や避けたい特徴を指定するためのプロンプトです。
ネガティブプロンプトは、「ネガティブプロンプト欄」に記述しましょう。
TensorARTなど、一部の画像生成AIサービスでは、最初からいくつかのネガティブプロンプトが入力されているので便利。
ネガティブプロンプトを使うことで、画像の品質を向上させたり、不要な要素を排除したりすることができます。
◆ネガティブプロンプトの例
EasyNegative,low quality,worst quality,out of focus,nsfw,
意味:EasyNegative、低品質、最悪の品質、焦点が合っていない、職場での閲覧は不適切、
最初の「EasyNegative」とは、Stable Diffusionの拡張機能のひとつで、ネガティブプロンプトをまとめて格納してあるファイルを呼び出す魔法の言葉だと思ってください。
また、描きたい画像に適したネガティブプロンプトが存在する場合もあるため、それを調べることも重要です。
関連記事:生成画像に文字(テキスト)が入ってしまう場合の消す方法
【プロンプトのコツを紹介】
最後に、プロンプトの書き方のコツをご紹介します。
プロンプトのコツはたくさんありますので、筆者が特に重要だと感じたものを中心に紹介していきますね。
◆学習されていないものは描けない
画像生成AIはいろんなことを学んでいますが、学習できていないものは描けません。あまり学習出来ていないものも描きにくいです。
モデル(チェックポイント)によって得意分野は異なります。
なので、画像生成AIなら何でも描けるかというとそんなことはなくて、やはり知らないものは描けないんですよね。
もちろん、そうならないようたくさんの情報を与えてなんでも描けるようにはしているのでしょうが、それでも描きにくいものはあります。そんな時は LoRA や Control Net など拡張機能を使って補完してあげましょう。
とはいえ、意外と「これは無理だろう?」というものが、ちゃんと描けちゃったりすることも多いので、モデルを変えたりプロンプトを変えたりしていろいろ試してみることが大事になってきます。
◆プロンプトでは別の英語を使うことがある
基本、プロンプトは英語で書くことになるため翻訳機能を使って書いている方も多いでしょう。
しかし、一般的に翻訳される英語と、画像生成AIでうまく生成される英語が同じとは限りません。
例えば、「後ろから」の英語で「from back」という言葉がありますが、後ろ姿を描きたいのに顔がこちらを向いてしまう場合が多いです。
顔をこちらに向いてほしくない後ろ姿を描きたいときは「from behind」のほうが描かれやすいです。
同じ言葉でも、画像生成AIでは異なる描き方をする場合があるので、うまくいかない場合は諦めずネットで検索してみるとよいでしょう。
けっこう有益な情報を発信している方が多いので、「ああ、この英単語を使えばいいのか!」と気付かせてもらうことができます。
「こっちの英語を使ったほうがうまく描けた」なんてことはけっこう多いので是非、違う言葉でも試してみてくださいね。
◆色が他の部分に影響を与えることがある
最初に具体的なプロンプトで書くべきだと言いましたが、あまり「色」の指定をしすぎると、影響が強い色が他の部位に影響を与えることがあります。
例えば、人物を描くときに「赤い髪」「白い肌」「青い目」「黄色いシャツ」「黒いズボン」「緑の建造物」と色をたくさん指定すると、色が指定した場所以外に色移りしてしまいます。
特に目の色は他の指定色に影響を受けやすい印象があるので注意。
色の指定はなるべく、表現したいものだけに抑えて、他の部分は出来る限り色指定せず、「デフォルトで出やすい色」を使ってあげると綺麗に仕上がります。
色を指定しなくても決まった色で描かれやすい部位はあります。そこを見極めながら他の部分の色を決めていくとよいでしょう。
また、Stable Diffusionの拡張機能で「CutOff」というものがあるそうです。筆者は使っていませんが色指定にこだわる方にはよさそうな機能です。
◆単語と文章、どっちがよい?
この記事では「英単語」で描けばOKと説明してきましたが、英語の文章でも問題なく画像生成できます。
では、単語と文章のどちらがいいのかというと、どちらにもメリットはあるようです。
単語はひとつひとつの単語の影響度が強い傾向があるようです。
文章だと、全体のバランスを考えて描く傾向が強いようです。
これは様々な条件が噛み合って効果が出るため、どの状況でもそうなるとは限りません。
おそらくですが、画像生成AIに「こんな画像を描いて」と頼んだ時、単語だけ並べられたら「全部、入れなきゃ!」と思うでしょうし、文章ならイメージを読み取って「情報の取捨選択をしよう」と思うのではないかと考えています。
どちらがよいかは描きたい絵によって異なりますが、例としては単語は人物、文章は風景なども含めた絵画に向いているのかな?と思いました。
【まとめ】
今回は、画像生成AIのプロンプトの書き方と、そのコツについて解説してきました。
当然、1記事では書き切れない内容のため、基本的なことと、筆者が重要だと思った点をピックアップして紹介させていただきました。
足りない部分もたくさんあるでしょうが、初心者の方が抑えておきたいポイントは書けたと思います。
この記事が、画像生成AI、Stable Diffusionや、TensorARTなどの画像生成サービス利用の役に立てたら嬉しいです。
最後までお読みくださりありがとうございました。
(*´▽`*)ノ
【あわせて読みたい関連記事】
・TensorART 使い方(プロンプト書き方/各種設定)
・TensorART ADetailer 使い方(表情の変え方)
スポンサーリンク
コメント