🙆‍♀️

画像生成AI用のPromptを生成するChatGPT(GPT-4)のPrompt

2023/05/06に公開

概要

  • 簡単なキーワードからStable Diffusion用のPromptを生成するGPT-4のPromptテンプレートを作成
  • 形式はDanbooruタグのような短いフレーズをカンマで分割した形式
  • テーマに合った画像のキーフレーズを抽出しているので生成されたPromptはベースにしつつも加筆修正して使用することを推奨
  • 追記:Bingチャットでも使えることを確認

はじめに

既存のネットで公開されているChatGPTに画像生成用のPrompt書かせる手法が英文を出力させるものが多かったため、一般的に画像生成AIのPromptで使用されているであろう短い単語やフレーズで構成されたPromptを出力させる手法を検討し、ChatGPTのGPT-4で簡単なテーマから画像生成AI用のPromptを出力させるChatGPT用Promptのテンプレ化を行いました。

Prompt概要

現在のChatGPTがStable Diffusionの概念がなく、DALL-EやDanbooruタグは理解していたため、画像生成AIをDALL-Eを用いて説明し、簡易的なPrompt Gudieを作ってタグを生成させています。Prompt Guideに記載している手順の概要は以下のとおりです。

  1. 生成したい画像について考え、約500ワードの詳細な英文の説明を生成します。また、キャラクターや動物などのオブジェクトがある場合には、彼らがどのように描かれるか、何を着ているか、何をしているか、背景に何が描かれているかなど、詳細に考慮させ、AIが生成する画像の全体像を詳細に説明するよう求めています。
  2. 説明文の中から、AIが生成する画像に必要なキーとなる要素を特定させています。オブジェクト、キャラクター、アクション、色、解像度、詳細、アートワークの素材、画像の芸術的なスタイルに言及したスタイル、ライティングなどが含まれています。
  3. これらの要素を、カンマで区切られた段ボールタグの組み合わせのみで明確に表現させています。
  4. 必要に応じて、解像度のタグをカンマで区切って追加しています。
  5. 必要に応じて、作品に使用されている素材のタグをカンマで区切って追加しています。
  6. 必要に応じて、解像度のタグをカンマで区切って追加しています。
  7. プロンプトが首尾一貫した明確なものであることを確認し、AIが正確な画像を生成するのに十分な詳細を提供する一方、不必要または無関係な情報を避けるよう最終チェックをさせています。

説明文の生成

Theme of the imageから想起される説明文を生成する手法については以下の記事を参考にさせていただきました。関連キーワードを抽出するためにより多くの情報を得るため、参考元では300字のところ500字で生成しています。
https://note.com/1za5ij/n/n81acf911080d

キーワード抽出とタグ変換

どのようにキーワードを抽出させるかについては以下のPrompt Guideを参考にさせていただきました。
https://stable-diffusion-art.com/prompt-guide/

Promptの注意点

  • 最後の一行を好きなテーマに書き換えることでテーマに応じたプロンプトが生成されます
  • GPT-4での動作は確認していますが、GPT-3.5ではうまく動作しません
  • Bingチャットでも使えました
  • カンマ内の単語間はスペースではなくアンダースコアで生成されます
  • Danbooruタグへの変換なのでDanbooruタグが効くモデルでないと効果的でない可能性があります

ChatGPTに入力するテンプレート

コピペして最後の一行を好きなテーマに書き換えてください。

# Image Generation
Please generate a prompt for text-to-image AI, such as DALL-E, to illustrate an image following the Prompt Guide. Output only the generated English prompt without the descriptive text.

## Prompt Guide
To create a text-to-image AI prompt, execute following procedures step-by-step on GPT:

1. Consider what kind of image you want to generate. For an image that meets the following theme of the image, consider a detailed description of about 500 words in English. If there are objects such as characters or animals, consider in detail how they are depicted, such as what they are wearing and what they are doing, as well as what is depicted in the background of the picture.
2. Identify the key elements of the image description that are relevant to the AI’s generation process. These may include objects, characters, actions, colors, resolution, additional details, the material used to make artwork, style refered to the artistic style of the image, and lighting.
3. Express each of these elements clearly using only a combination of Danbooru tags separated by commas.
4. Add Danbooru tags separated by commas that are resolution, such as best quality, masterpiece, extremely detailed, if necessary.
5. Add Danbooru tags separated by commas that are the material used to make artwork, style refered to the artistic style of the image, such as illustration, oil painting, 3D rendering, and photography, if necessary.
6. Add Danbooru tags separated by commas that are the style refers to the artistic style of the image, such as impressionist, surrealist, pop art, if necessary.
7. Ensure that the prompt is coherent and unambiguous, providing enough detail for the AI to generate an accurate image while avoiding unnecessary or irrelevant information.

### Theme of the image
出力したいイラストのテーマを入力してください

具体例

実際に上記のテンプレートを使って生成した画像生成用Promptと生成した画像の具体例を出します。
ポン出しで修正していないのでこのままでは完成とは言えないですが、どういうテーマを与えるとどういうPromptが生成され、そこからどのような画像が生成されるのかの参考にはなるかと思います。

そのまま入れてみる

まずは生成したPromptをそのまま入れてみます。
最初は以下のテーマで生成した例です。

梅雨の雨の日に傘を指してる女の子

生成されたPromptは以下の通り

girl_with_umbrella, rainy_day, Japanese_plum_rain_season, walking, puddles, wet_street, reflections, cityscape, wearing_rain_boots, raincoat, soft_lighting, watercolor_style, high_resolution

これをもとに生成した画像がこちら。
梅雨の雨の日に傘を指してる女の子
使用モデル:Wonton ColorBox Enhanced
この例では素のpromptの確認のためpromptをそのまま使っていますが、実際にはクオリティタグや構図のタグ等入れて絵の要素のタグとして生成されたpromptを使うほうが良いと思います。

キャラクター関連のタグを入れ替えてみる

実際に生成するときには特にキャラクター関連はもっと詳細に指定したいことも多いと思います。そこで、次にキャラクターの特徴に関する部分を入れ替えて生成してみます。
今回は以下のテーマで生成した例です。

海辺で水遊びしている女の子

生成されたPromptは以下の通り

girl, playing_in_water, beach, summer_dress, sun_hat, sunglasses, beach_ball, sand_castles, seashells, ocean, blue_sky, white_clouds, palm_trees, cheerful_expression, high_resolution, digital_art, vibrant_colors

これをもとにキャラクターをちちぷいちゃんにするためにキャラクターの特徴に関するタグを入れ替えてみました。実際に使ったPromptは以下の通り

masterpiece, best quality,hires,ultra detailed illust, cinematic angle, solo, 1girl, cute girl , loli,blonde hair, shiny wavy hair, blue eyes, medium breasts,  playing in water, beach, summer dress, sun hat, sunglasses, beach ball, sand castles, seashells, ocean, blue sky, white clouds, palm trees, cheerful expression, high resolution, digital art, vibrant colors

生成した画像がこちら。
海辺で水遊びしている女の子
使用モデル:blue_pencilV7

実用では生成されたPromptをベースにしつつも加筆修正を推奨

実際に使ってみると参考になりますが、一旦生成したあとにタグを加筆修正して生成したい絵の要素を整えることになると思います。
今回は以下のテーマで生成した例です。

時をかける協会のシスター

生成されたPromptは以下の通り

sister, time_traveler, steampunk, Victorian_dress, clock_tower, gears, flying_books, glowing_portal, intricate_machinery, high_resolution, digital_painting, semi-realistic_style

これをもとにいくつかタグを追加削除して実際に使ったPromptは以下の通り

ultra high res, (finerly detailed face:1.2), (masterpiece:1.5), (best quality:1.2), steampunk,fantasy, dynamic angle, cinematic light, BREAK, 1girl, sister, time traveler, time-manipulating sister, floating sister ,long hair, skirt, Victorian dress, medium breasts,  full body, looking at viewer, BREAK,clock tower,clock, gears, flying books, pocket watch, glowing portal, magic circle, compass, intricate machinery,stained glass, ruined church,  <lora:flat2:-0.35>,

これをもとに生成した画像がこちら。
時をかける協会のシスター
使用モデル:BreakDomain

応用について(未検証)

今回は簡単なテーマから画像を生成する目的としていましたが、応用することで現状ではマルチモーダル非対応のChatGPTに何かしらを創発させたときのイメージ図を生成させることにも使えます。
試してないですが、ChatGPTはjson形式等で出力させることもできるため、GPTへのPromptを変数込みでテンプレ化し、入力条件に応じて変数に代入してPromptを作り、APIでGPT-4に投げて、レスポンスをjson等の特定のデータ形式で生成させ格納し、automatic1111のAPIの形式に合わせてデータを整形してautomatic1111に投げて画像生成させるようなプログラムもできると思います。
もともとはそういったいくつかの条件のもとでChatGPTに考えさせたもののイメージを出力するサービスのイメージを試している過程でPromptをタグ形式で生成できることにたどり着いたため、より一般的な用途になりそうな今回の形式に落とし込みました。

さいごに

今回簡単なキーワードからStable Diffusion用のPromptを生成するGPT-4のPromptテンプレートを作成してみました。既存のものとの違いはタグでPromptが生成される点です。

これでテーマから最高の画像が画像ポン出しできるようなものではないですが、最初にテーマを考えてから具体的に絵にどのような要素や構図にするかを検討する際の助けになるかと思います。

Discussion