AIで画像を作るには、どの様な画像を作ってもらいたいか指示を与える必要があります。指示の書き方についてご説明します。

プロンプトとは

AIで画像生成するには、AIに指示を与える必要があります。どの様な画像を生成して欲しいか具体的に書くことで、AIはそれを理解して画像を作ってくれます。
AIに指示を与える文章のことをプロンプトと言います。

プロンプトは主に英語で単語を区切って指示します。最近のモデルは単語ではなく文章を理解してくれるものもあります。以下のモデルは自然言語を理解できる様です。
FLUX.1、SDXL、HiDream I1、Z-Image
特にHiDream I1とZ-Imageは、日本語もある程度理解してくれます。

プロンプトの構成

プロンプトは、「品質・画風」、「構図・アングル・レンズ」、「被写体」、「ポーズ・表情」、「環境」、「ライティング」、「背景」の7種類の要素で構成されています。この順番でまとめると良い画像が作れる様です。

しかしこの順番が絶対的な優先度ではなく、あくまで目安です。「自分が一番こだわっている要素」から並べることが画像生成AIの真髄と思います。

品質・画風

品質はプロが撮った写真なのか、幼稚園児が描いた絵なのか、どの様な品質で生成するかを決めます。画風は写真なのか絵なのかを指示します。絵の場合はイラスト、アニメ、油絵、水彩画など細かく指示します。

例:4k, 8k, masterpiece, best quality, highly detailed, illustration, photo-realistic

構図・アングル・レンズ

構図・アングル・レンズはカメラの設定になります。構図は全身なのか上半身なのかを決めます。アングルはカメラの位置・方向になります。レンズは広角・望遠・標準や絞りを決めます。

例:full body, upper body, hight angle, low angle, 50mm lens, telephoto lens, wide-angle lens, depth of field, f/1.2, f/22

メインとなる被写体

被写体は人、動物、車や山などメインにしたいものを指示します。

例:1girl, 1boy, woman, man,cat, mountain

被写体の詳細

詳細は被写体が人ならば、表情、髪の長さと色、着ている服、立っているのか座っているのかなどのポーズなどです。

例:black hair, blue eyes, smile, casual clothes, standing, sitting

環境

環境は天候、昼夜、時間帯などです。

例:cloudy, snow, night, sunset

ライティング

ライティングは照明の当て方で、自然光、逆光、柔らかな照明とかです。

例:dramatic lighting, bokeh, backlight, natural light, soft lighting

背景

背景は屋内ならカフェ、リビングや、外ならばストリート、森や海や川や山などです。

例:in cafe, street, background is a forest

背景とライティングの関係

ライティングは画像全体に影響するため、基本的には背景より先に指定する方が自然な結果になりやすいです。しかし背景を優先したい場合は、あえて背景を先に指定することで意図したシーンを固定することも可能です。

サンプル画像

サンプルの画像はRealistic Vision v5.1というモデルで生成しました。
比較画像のためプロンプトの優先順は意識していません。

品質、被写体、被写体の詳細、背景、カメラ設定の順番で生成した画像

浜辺で笑顔で立っている女性の写真

プロンプト
high quality,photo, 1girl, long hair, casual clothing, smiling, beach, full body

設定値
Steps: 16, Sampler: DPM++ 2M AYS, CFG scale: 5.0, Seed: 3529341613, Size: 576x768, Model: realistic_vision_v5.1_f16

カメラ設定、背景、被写体の詳細、被写体、品質の順番で生成した画像です。少女より髪の毛のほうが優先度が高いので、髪の毛が長すぎる画像ができました。

浜辺で笑顔で立っている女性の写真

プロンプト
full body, beach, smiling, casual clothing, long hair, 1girl, high quality, photo

設定値
Steps: 16, Sampler: DPM++ 2M AYS, CFG scale: 5.0, Seed: 3529341613, Size: 576x768, Model: realistic_vision_v5.1_f16

要素の重みづけ

重み付けとは、強調したい情報の精度を上げたいときに使います。
書き方は、以下の様になります。
(1girl:1.3)

数値を上げると、その要素が強調されます。上げすぎるとおかしな画像になってしまうことがあるので注意が必要です。

情報量は適切に

AIに指示を与えるのに、少なすぎても多すぎても良くないです。
情報が少ないと毎回違う画像が生成されます。それを狙うのも楽しいですが。
多すぎると干渉しあいヘンテコな画像が生成されます。ひとつの物に対して複数の要素を両立して欲しい場合に、それを混ぜて解釈してしまう場合もあります。

私の場合は生成する画像をイメージして、日本語で文章を作成してから必要な単語を抜き出してから英語に変換してプロンプトを作成しています。