【初心者向け】Stable Diffusionのプロンプトガイド!!!
こんにちは、画像生成AIでひたすら猫のイラストを生成している じょじお(@jojio‗illust)です。
超初心者向けのStable Diffusionのプロンプトガイドを作りました。
これからAI画像生成を始めたい方のお役に立てたら嬉しいです。
- Stable Diffusionの各種モデルユーザー
- NovelAIユーザー
- にじジャーニーユーザー
▲AI画像の大量ファイルをプロンプトと一緒に簡単に整理する方法はこちら。
▲素材に関連する英単語100個以上まとめました。
▲すべてのプロンプト関連記事はこちらにまとめています。
▲Midjourneyユーザー向け。専用Discordサーバーを作って画像生成作業を効率化する方法。
プロンプト(呪文)とは?
プロンプト(呪文)とは、AIに「描いてほしい絵の内容を伝えるために書く文章」です。
例えば「デニムジャケットを着た女性」の絵を描いてほしいときは、それをプロンプト独自の書き方で文章にしてAIに伝えると、AIはそれっぽいものを生成してくれるわけです。
魔法のように絵ができることからか呪文と呼ぶこともあります。
プロンプトという言葉は、画像生成AIに限らず、ChatGPTなどの他のジェネレーティブAIで広く使われる言葉です。
プロンプト(呪文)の構文
プロンプトは、描きたいものを英語で書くだけです。
英語が苦手な方は身構えてしまうかもしれませんが安心してください。文法は気にする必要ありませんので翻訳ツールやChatGPTがあれば誰でも作れます。
AIは、受け取ったプロンプトを一旦最小限の単語に分解します。このため、プロンプトは単語ベースで並べて書いていくことが基本です。動詞や形容詞などを含めることもあります。それぞれの単語は「, 」(カンマと半角スペース)で連結していきます。
プロンプト(呪文)の例
実際に、「赤い髪の少女がたくさんの観衆の前でストリートライブを開き、ギターを弾いている。」というイメージをテーマに、プロンプトを書いてみます。
- 長文:A girl with red hair plays the Guiter in a street live performance in front of many spectators.
- 単語:A girl, playing guitar, red hair, street live performance, many spectators
上記のプロンプトは、文章ベースで書いたプロンプト(上)、単語ベースで書いたプロンプト(下)の例です。両者は書き方は異なりますがほぼ同じ結果の絵が生成できます。単語の順番を変えても同様です。このように書き方を変えてもAIはある程度はこちらの意図を汲みとってくれます。
ただし、広く使われているのは単語ベースの書き方です。あまり長い文章は意味を理解してもらいにくい傾向にあります。
単語の順番も自由に書いて大丈夫ですが、最初に書いたワードほど、優先的に扱われ、後ろに書いたワードほど、無視されやすいと言われています。
まとめますと、最低限、次の4つだけ理解していれば絵を生成できます。
翻訳ツールを使えば誰でもできるので安心してください。
- 英語で書く
- 単語ベースで書いていく
- 「, 」カンマと半角スペースで区切って連結する(例:a girl, short hair, in park)
- 最初に書くワードほど優先的に扱われやすい。
プロンプトエンジニアリングのベストプラクティス
プロンプトを作る作業をプロンプトエンジニアリングと呼ぶことがあります。
プロンプトエンジニアリングには、いろいろなアプローチの仕方があり、答えはありません。
何故かというと、AIがどんな絵を生成するかは実際に試してみないと誰にもわからないからです。モデルによっても推奨されるプロンプトの組み方があります。トップ術師さんのプロンプトを見ても、プロンプトの組み方は人それぞれの方法があることがわかります。
つまり、基礎的な知識を頭に入れたら、あとはトライアンドエラーを繰り返すしかないということです。
私は基礎的な考え方の習得に、まずはStable Diffusionの本家が公開するプロンプトガイドラインを読んでみました。
本家Stable Diffusion(Stability AI社)のプロンプトガイドラインとは?
本家Stable Diffusion(Stability AI社)が運営するDream Studioでは、プロンプトガイドラインが公開されています。
このプロンプトガイドラインでは、プロンプトをいくつかの要素に分解して理解します。コアプロンプト、スタイル、アーティスト、 仕上げ(Finishing touches)の4つです。
Dream Studioプロンプトガイド – Stability AI(読むには無料のアカウント登録とログインが必要です)
この考え方はとても分かりやすいです。ただ、実際にプロンプトを組んでみるとわかるのですが、最近の2次元絵を生成できるモデルでは、もっとたくさんの言葉を使うことが多いです。
そこで、私なりにこの4つをもう少し細分化して7個にしてみました。
この記事ではその7個を紹介します。
プロンプト(呪文)に含まれる要素
私はプロンプトを7つの大きな要素に分割してみました。1つずつ解説していきたいと思います。
プロンプトに含まれる7要素
1.品質、2.コアプロンプト、3.追加要素、4.背景、5.スタイル、6.構図、7.照明やフィルタの7つに分割してみました。
これらの要素に決まった順番はなく、書き方は人それぞれです。ただ、「1.品質系ワード」だけは一番先頭に書くのが一般的です。
1~7の要素をすべて使うこともありますし、2.コアプロンプトと5.スタイルしか使わないこともあります。
項目 | 項目に含まれる要素 | ワード例 |
---|---|---|
1.品質 | クオリティ | masterpiece, best quality |
2.コアプロンプト | 被写体 | a girl(少女) beautiful forest Landscape(美しい森の風景) |
3.追加要素 | 小物 ヘアスタイル 衣装 表情 | smart phone, scarf long hair, twin tail, pony tail school costume, maid costume smile, looking away, looking at viewer |
4.背景 | 背景 場所 | black background, white background outdoor, indoor, school, book store |
5.スタイル | 油絵 水彩 セル画 | oil painting watercolor chibi realistic Concept art Pencil drawing |
6.構図 | ショットサイズ ショットアングル | close-up shot, middle shot, long shot high angle, |
7.照明とフィルタ | ライティング 時間 色 | daylight, moody lighting midnight, midday |
- 決まった順番はなく、人それぞれの順番で使われている。
- 全部使ってもいいし、使わなくてもいい。
- 品質呪文だけは最初に書くことが一般的(理由は不明)。ただスタイルによっては使わない方がいい場合もある。
1.品質(クオリティ)呪文
品質ワード(品質呪文)は、画像の全体的な品質を決定するために使用する言葉です。品質呪文と呼ばれることがあります。
2次元系のモデルでは、加えるだけで画像の全体的なクオリティがあがります。
言葉が与える具体的な影響としては、「書き込みの詳細度UP」や、「一枚絵としての印象度UP」などがあります。
大項目 | 小項目 | ワード | ワード:日本語解説 |
1.品質 | クオリティ | best quality | 最高品質。 |
1.品質 | クオリティ | masterpiece | 傑作。 |
1.品質 | クオリティ | detailed | 細部までよく描きこまれた画になる。衣服の柄に明確な違いがでやすい。 |
1.品質 | クオリティ | ultra detailed | 細部までとーってもよく描きこまれた画になる。衣服の柄に明確な違いがでやすい。 |
1.品質 | クオリティ | insanely detailed | 最高に精密。衣服の柄に明確な違いがでやすい。 |
画風やスタイルによっては、使わない方がいい場合もあります。例えばざっくりとしたタッチのラフスケッチ風の絵にする場合、品質系の言葉を使うと「ラフさ」がなくなってしまいます。
2.コアプロンプト(主題)
コアプロンプトでは、「描いてほしいもの」の本質をシンプルに伝えます。その絵の一番の主役として強調したいモノなのでコアプロンプトと呼びます。
例として、少女の絵を描くときは「a gilrl」、美しい風景画にするときは「beautiful background illustration」などと形容詞を含めて書くことができます。
大項目 | 小項目 | ワード | ワード:日本語解説 |
2.コアプロンプト | 主題 | a girl | 女の子 |
2.コアプロンプト | 主題 | background illustration | 背景イラスト |
3.追加要素
追加要素では、主役ではないけど、情景を伝えるために必要な要素です。コアプロンプトのあとに続けて書くのが一般的です。
少女のスナップショットであれば髪型や服装や表情、背景イラストであれば、そこに映る人々の様子、建物の特徴、小道具などを書きます。
下記は追加要素の例です。
大項目 | 小項目 | ワード | ワード:日本語解説 |
3.追加要素 | NSFW | nsfw | Not Safe for work contents。職場で見るには不適切なコンテンツ。 |
3.追加要素 | 表情 | look away | 目をそらす表情 |
3.追加要素 | 表情 | looking at viewer | カメラ目線の表情 |
3.追加要素 | 衣装 | maid | メイド服 |
3.追加要素 | 衣装 | school costume | 学生服 |
3.追加要素 | 髪型 | long hair | 長い髪 |
3.追加要素 | 髪型 | bangs | 前髪 |
3.追加要素 | 表情 | smile | 笑顔 |
3.追加要素 | 表情 | seductive smile | 誘惑的な笑顔 |
3.追加要素 | 表情 | jitome | ジト目 |
髪型に関するワードの一覧はこちら(工事中)。
衣装に関するワードの一覧はこちら(工事中)。
4.背景
背景はそのまま背景やキャラクターが立つ場所です。
大項目 | 小項目 | ワード | ワード:日本語解説 |
4.背景 | 背景 | solid color background | 単色背景 |
4.背景 | 背景 | white background | 白い背景 |
4.背景 | 背景 | no background | 背景なし |
4.背景 | 背景 | spring scenery | 春の景色 |
4.背景 | 背景 | [color] background | colorの部分に色を指定すると背景をコントロールできます。例えばblue backgroundとすると青い海の背景などになります。 |
4.背景 | 場所 | Uyuni salt lake | ウユニ塩湖 |
4.背景 | 場所 | Meteora Monasteries | メテオラ修道院 |
4.背景 | 場所 | ruins | 廃墟 |
5.スタイル
スタイルは画風を決めるためのワードを含みます。
上のサンプル図は、「a girl」というシンプルなコアプロンプトに、スタイルだけを指定した時の生成結果の比較です。それぞれ1単語を追加しただけですが、絵の雰囲気が全く異なることがわかるかと思います。
このようにスタイル系の言葉は、とても強力で、画像の印象を決める重要な言葉です。スタイルには、画家名・アートスタイル・イラストの手法・画材の名前などがあります。
これらの言葉は、オリジナリティを表現するために複数を組み合わせて使うことも多いです(例:rauphsketchとwatercolor )。
大項目 | 小項目 | ワード | ワード:日本語解説 |
5.スタイル | 3DCG | 3D render | 3DCG的な画像にする。 |
5.スタイル | WEBデザイン | icon | Adobe Illustratorのパスで作られたようなアイコン調の画になります。 |
5.スタイル | アートスタイル | oil painting | 油彩 |
5.スタイル | アートスタイル | line art | 線画 |
5.スタイル | アートスタイル | illustration | イラスト |
5.スタイル | アートスタイル | rococo | ロココスタイル。豪華・繊細なイメージが強く、とくに繊細な花のモチーフを使った背景が登場しやすいです。 |
5.スタイル | アートスタイル | concept art | コンセプトアート調。背景や表情がリッチになります。 |
5.スタイル | アートスタイル | cyberpunk | サイバーパンク風。モダンなフューチャー。ネオンが多く登場する。 |
5.スタイル | アーティスト | Pablo Picasso style | 画家パブロピカソのようなスタイル |
5.スタイル | アニメ | cel anime | 日本のアニメ風のスタイルになる |
5.スタイル | アニメ | chibi anime chibi | 2頭身、3頭身のちびキャラになる |
5.スタイル | 写真スタイル | photo・photograph | 写真 |
5.スタイル | 写真スタイル | hyper realistic | 超リアルな写真のような絵 |
スタイル系ワードの比較はこちら(工事中)
6.構図
構図を決定する言葉には、カメラアングル・ショットサイズ・フレーミングに関する言葉などがあります。
設定したテーマやシーンによって適切に選択します。
最近のローカル環境やColab環境のStable Diffusionでは、ControlNetの登場によって、これらの言葉を使わなくてもフレーミングの調整が簡単にできるようになりました。
大項目 | 小項目 | ワード | ワード:日本語解説 |
6.構図 | ショットアングル | High angle shot | 視点が被写体よりも高い位置から撮影する。 |
6.構図 | ショットアングル | dynamic angle | ダイナミックな構図 |
6.構図 | ショットサイズ | Full shot | 被写体全体を撮影する。 |
6.構図 | ショットサイズ | Close-up shot | 被写体の顔のアップを撮影する。 |
6.構図 | フレーミング | Two-shot | 二つに分割された画面で2つの被写体を描写する |
6.構図 | フレーミング | POV | 撮影者視点の位置から撮影する。一人称視点。 |
ショットサイズ・カメラアングル・構図のワード比較のまとめ記事はこちら。
7.照明やフィルタ
「照明やフィルタ」に含まれる言葉には、照明・映像フィルタ・色フィルタなどの言葉があります。
大項目 | 小項目 | ワード | ワード:日本語解説 |
7.照明やフィルタ | 色 | low contrast | コントラストが低い。明るさと暗さの差が少ない。 |
7.照明やフィルタ | 映像効果 | motion blur | モーションブラー |
7.照明やフィルタ | ライティング | high-key lighting | ローコントラスト、白っぽい照明 |
7.照明やフィルタ | ライティング | Volumetric lighting | 空気中の粒子を利用した照明。 |
7.照明やフィルタ | フォーカス | Shallow depth of field | 被写体の一部のみをピント合わせる。 |
7.照明やフィルタ | フォーカス | Deep Focus | 広い範囲をピント合わせる。 |
7.照明やフィルタ | フィルター | monochromatic | モノクロ(単色)。色を指定しない場合、白黒になります。 |
7.照明やフィルタ | テクスチャー | metal texture | 鋼っぽいテクスチャーになります。 |
プロンプトエンジニアリングの実践
それではプロンプトを作ってみましょう!
テーマを決めて実践してみましょう。
先ほど例に出した「赤い髪の少女がたくさんの観衆の前でストリートライブを開き、ギターを弾いている。」というテーマでプロンプトを組んでみたいと思います。
プロンプトエンジニアリングのステップ
私は上の図のようにプロンプトを作っています。重要なことは少しずつワードを足していくことです。
下記の理由があります。
- 選択したワードがどんな影響を及ぼすかを把握するため
- ワード選択のミスがあったときにどのワードを修正すべきなのかを明確にするため
一度にたくさんの言葉を使ってしまって望む生成結果が出なかった場合、プロンプトのどこを修正すればいいのかわかりづらいですよね。このような理由で「少しずつ言葉を足し引きししてガチャを回しては改善」を繰り返していくが良いかと思います。
そして、最初に組むべきは主題となるコアプロンプトの部分です。今回のテーマであれば、私ならば、まずは下記のプロンプトが思いつきました。
- a girl, street live, playing guitar
- a girl, quiter, outdoor
- a girl, outdoore concert, guiter
- a girl, street live performance, playing guitar
このようにストリートライブといっても、いくつかの言い換えができそうなことがわかります。同じ意味を持つ言葉でもAIが持つ言葉のベクトルは違うことがあるので、すべて試してどれが自分のイメージに近いか確認すると良いでしょう。
コアプロンプトが完成したら少しずつ自分のイメージにある言葉を足し引きしていきましょう。
ネクストステップ
コアプロンプトが完成したら、イメージに合う言葉を追加していきましょう。
テーマに必要な言葉を考えてみますね。
選んでみた言葉 | 選んだ理由 | |
---|---|---|
1.品質 | best quality, highly detailed | 2次元絵ではよく使われています。 |
2.コアプロンプト | a girl, street live performance, playing guitar | |
3.追加要素 | red hair, spectators | 観客を追加するためにspectators(観客)を追加しました。 |
4.背景 | station, outdoor | 駅前にしてみました。stationだけで生成してみたところ、駅の構内のイメージが強かったので「outdoor」を追加することで駅前にしようという狙いです。 |
5.スタイル | anime | アニメスタイル |
6.構図 | datch angle | 熱い演奏を伝えるために、datch angleをカメラアングル |
7.照明やフィルタ | midday | 日中(midday)の時間帯にして明るい絵にする狙いです。 |
上に挙げた言葉は、あくまで私のファーストインプレッションで書いた言葉です。この後1個ずつ試していくわけですが、その過程で入れ替わっていくことが多いです。
プロンプトエンジニアリングに便利なツール
- ChatGPT:言葉の言い換えやバリエーションを聞くのに便利。
- DeepL翻訳:Ctrl+C2回によって簡単に呼び出しできる翻訳ツール。
- Google 英語版:英語圏のGoogleで英語で検索する。日本のGoogleで英語検索しても日本国内の記事が中心にヒットしてしまいます。
- Clibor:プロンプトのコピペ作業を快適にしてくれます。
- Microsoft IME:よく使う言葉は辞書登録しておくと便利。
ネガティブプロンプトとは?
「Street live」という言葉を使うとドラムの人が登場しちゃうんだよなー。ギターのソロライブにしたいのに!
そういう時はネガティブプロンプトを使ってみよう。
プロンプトのトライアンドエラーを繰り返していると、邪魔な要素の登場に頭を悩ますことが多くあります。例えば、上の状況では「ドラム」が邪魔な要素ですね。
こんな時に使うのがネガティブプロンプトです。ネガティブプロンプトは、プロンプトとは反対の役割なので反対呪文と呼ぶ方もいます。
使い方は、プロンプトと同じように邪魔な要素を英単語で書きます。今回の例でしたら、ネガティブプロンプトに「drum, drummer」など書くことによってドラマーの登場確率を下げることができます。
ネガティブプロンプトはオプショナルな存在なので使用しなくても絵を生成できますが、理想の絵を素早く生成するためには必須と考えましょう。
- プロンプト(呪文)
- ネガティブプロンプト(反対呪文)
モデルによるプロンプトの違い
プロンプトは、モデルによって推奨される言葉、効果のない言葉があります。
必ず使用するモデルのディスクリプションを確認しましょう。
例えば私の好きなAbyssOrangemixというモデルは、公開サイトHugging FaceのHow to useに、具体的なワードについての記載があります(下記引用)。
How to avoid Real Face
(realistic, lip, nose, tooth, rouge, lipstick, eyeshadow:1.0), (abs, muscular, rib:1.0),訳:リアルフェイスを回避するには下記をネガティブプロンプトに含めてね。
httpsAbyssOrangeMixのディスクリプション
(realistic, lip, nose, tooth, rouge, lipstick, eyeshadow:1.0), (abs, muscular, rib:1.0),
プロンプトの中級テクニック
ここまで、プロンプトエンジニアリングの基礎が理解できたかと思います。
次は少し上級者向けの内容です。
強調構文(Prompt weight)
プロンプトに含める各言葉には、「重み(weight)」を付けることができます。
例えば、「cat, dog」をプロンプトに含めるとします。このプロンプトで、猫が一匹と犬が一匹描かれた絵が生成されたとします。ここで、「猫をもうちょっと手前に描いて、絵を見る人にとっての猫の印象をもう少し強めたい」と思った場合、プロンプトの言い換えだけで修正するのは難しいです。
こんな時に使えるのが「重み」です。「強調」と呼ぶこともあります。
「重み付け」をすることで、この二つの言葉に差をつけることができます。Automatic1111 WebUIでは、下記のように書きます。
「(cat:1.2), dog」
これによって、AIは言葉の優先度を汲み、猫を犬よりも印象強い構図で描いてくれやすくなります。
このようにプロンプトの重みを応用すれば、色のバランス調整や、要素の大きさの調整をすることができます。活用してみてください。
プロンプトウェイトの構文は使用ツールによって異なります。例えばStable Diffusion本家サイトDream Studioと、WebUIの両者は、同じStable Diffusionなのに書き方が違います。注意してください。
>WebUIのプロンプトウェイト(強調構文)の解説はこちら(工事中)
プロンプトの保存
プロンプトを組んでいると、必ず含めるワードや、よく使うワードがあることに気づきます。
こうしたワードの入力を省略するためのテクニックがあります。
下記に使い方をまとめました。
プロンプト便利ツール
下記の記事では、プロンプト作成を補助してくれる便利なツールをいろいろとまとめました。
ダンボールタグ
使用するモデル、特にアニメ系モデルによってはDanbooruタグを意識した方が良いことがあります。
トークン数
プロンプトは75トークン単位で区切って処理されます。75トークン以上のプロンプトを扱う場合は、注意してください。
(続く)
プロンプトで悩んだときは?
最後に、思うようにプロンプトが作れないときのヒントを紹介します。悩んだときは参考にしてください。
- 言葉を言い換えてみる。
- 似たような言葉を複数使ってみる。
- 強調構文を使って言葉のベクトルを強めてみる。
- 言葉の順番を変えてみる。
- プロンプトとネガティブプロンプトの間に矛盾がないか確認してみる。
- ChatGPTに聞いてみる。
- 人のプロンプトを参考にしてみる。
- 表情の描写を入れるとキャラのアップになりやすい。距離を置いた撮影にしたい時は、キャラのディティールの指示はあまり使わない方がいい。
参考
- https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Features
- この記事内で使用しているイラストはすべてAbyssOrangemixV3で生成しています。
まとめ
以上、初心者向けプロンプトガイドでした。
プロンプトで使用できる全300ワードの一覧表(スプレッドシート)は、下記で公開中です(現在準備中)。
コメント
コメント一覧 (1件)
漫画を作りたい