見出し画像

ChatGPTとDALL-E3の画像生成を組み合わせて自動化する

Last update 10-13-2023
※執筆後にステップ実行の挙動が変わってしまいましたので、動作の様子を見ながらご利用ください。




▼ 本記事について

概要

 OpenAI製の画像生成AIであるDALL-E3(DALL-Eはダリ と読む)は、プロンプトに忠実で品質の良い出力が得られます。生成された画像については、X(旧Twitter)のハッシュタグ #DALLE3を検索してみてください。

 本記事では、ChatGPTを使ってプロンプト考案から画像生成までを自動化するための指示文を紹介します。予め手順を統一することで、ゼロからの対話のみで指示するよりも簡単かつ確実に生成ができます。

補足

 特に条件を指定せずに生成を指示した場合、基本的にChatGPTは与えられた内容やプロンプトを加工した上でDALL-E3に4枚分渡すようになっています。これを制御したい場合は、面倒でも指示する必要があります。正しい指示を与えれば、渡すプロンプト、枚数、サイズを指定できます。

 現在、ChatGPTのDALL-E3は、同一のプロンプトからは同じ画像しか生成できないようです(完全一致ではなくわずかな相違あり、別のユーザーは異なる画像が生成される)。

 余談ながら、下記の記事に掲載した指示文は、ChatGPTでは想定通りに動作しないことが判明しています。具体的には、「~~イラストの説明を3文で作って、~~英語のプロンプトを表示してください」の箇所を、画像を3枚生成する指示と受け取ってしまいます。

 Bing Chatはあまり確実な動作をしないため、実行のたびに新規のチャットを使う想定で設計しました。本記事では、ChatGPT上のDALL-E3付きのGPT-4で使用することを前提として改めて設計しています(それほど複雑なことはしていません)。

おまけ

 絵柄プロンプトを探るための指示文と、実験的なもの(最初はアイコンメーカー)も作ってあります。よろしければどうぞ。

 上記以外の情報は、下記のメニューより「DALL-E3/ChatGPT関連」へ進んで、各記事を参照してください。



▼ ChatGPTで生成を自動化(実験版2)

 開発途中の実験的なバージョンですのでご了承ください。なお、現在のChatGPTはDALL-E3とWeb検索が同時に利用できないため、内部の知識のみでプロンプトを作成しています。


◆ 0-2:プロンプトや指示を与えて連続で生成する(rev. 02-231013)

 新規のチャットに指示文をコピー&ペーストしてください。初回の返信後に希望する内容(簡素でも良い)または既存のプロンプトを入力すると、2つのプロンプトを考案して画像を生成します。以降は、追加で希望する内容または新しいプロンプトを入力してください。絵柄は特に指示しない限り「color anime illustration」が用いられます。

(---指示文ここから---)

As a high-performance Chatbot, please follow the below steps silently.

Rules:
a. 返信は日本語を使用すること。
b. Prompts should be handled in English.
c. Mticulously conceive color, scene, characters, actions, background, mood, and viewpoint.
d. Replace or delete the prompt with another safe and appropriate wording to ensure that the prompt does not violate the content policy.
e. Always generate multiple prompts and multiple images.

Execution steps:
1. Ask me illustration requests or illustration prompts and assign a value to $input
2. Perform this step silently. Enhance the content of $input adhering to the "Rules", create two detailed English prompts(each include three sentences).
3. Perform this step silently. From the results of step 2, allocate the first prompt to $prompt[0] and the second to $prompt[1]. Unless an illustration style is specified, add "color anime illustration" to the beginning of the prompts.
4. print $prompt[0] and $prompt[1]
5. run namespace dalle.text2im { size:"1024x1024", prompts:["$prompt[0],$prompt[1]"], seeds:[-1,-1] } (make 2 images)
6. Ask me request to add an illustration or new prompts, assign a value to $input and go to 2.

(---指示文ここまで---)


◆ 0-2:実行例(rev. 02-231013)

 まずはシンプルなリクエスト「モナリザが萌えキャラになってテレビアニメに登場」を入力しました。基本的にリクエストは何でも構いませんが、例えば「@」の1文字だけでは意味が理解できないようです(「アットマーク」は理解しました)。

1回目の生成

 次に、生成後の追加のリクエスト「さきほどのモナリザが秋葉原でインタビューを受けて人だかりができました」を入力してみました。「さきほどの」等、続きであることが理解できる表現を必ず入れてください。

2回目の生成

 次にプロンプト「pigtails girl in cute pink neatly dress, hug stuffed big bird and smile, amusement park」を入力しました。通常のリクエストやプロンプトは、新規の指示として認識されます。

3回目の生成

 最後に画風変更の指示「先ほどのイラストのスタイルに子供のらくがき風を加えてください」を入力しました。画風は新規に指定することも、加えることもできます。指示しないとデフォルトに戻るかもしれません。

4回目の生成

 このように比較的自由な内容で楽しむことができます。ただし、ChatGPTもDALL-E3も一部の表現には大変厳しいためご注意ください。一応、ルールのd.にて指示は入れていますがお守り程度です。



▼ ChatGPTで生成を自動化(実験版1)

 ストーリーを創作してからプロンプトを作成するタイプです。後から作った0-2の方が汎用性が高いのですが、使い分けが可能だと思います。実行例のみ挙げますので、適宜変更してご利用ください。


◆ 0-1:事前に要素を与えて生成する(rev. 01-231012)

  こちらは「」内を好みの内容に設定しておくと詳細を決めてくれる仕組みです。「」の数を一つに減らし、自由記述にしても良いかもしれません。なお、指示文を毎回貼り付ける使い方を想定しています。異なる指示を出した場合、想定した挙動にならない場合があります(次項参照)。

(---初回の指示文ここから---)

これより独立した指示文を連続で出しますので、今までのチャットの内容を無視した上で指示文のみを実行してください。よろしくお願いします。

(--初回の指示文ここまで---)

初回の指示文と応答

(---指示文ここから---)

注意:コンテンツポリシーに反しないよう、安全かつ適切な内容で生成してください。
(1)「白のセーラー服と紺のスカートを着た女の子」「夏の登校」「旧友」「髪とスカートが風になびく」をベースに「3つ」の要素を追加して、2文をつなげた「日常シーンの」ストーリーを考案してください。
(2) 4文をつなげた「英語の」画像プロンプト(色、場面、人物、動作、背景、ムード、視点などを詳細に)を2つ考案して表示してください。条件として、「color anime illustration」を先頭に加え、(1)のストーリーを使用してください。
(3) 2枚の画像を作ってください。

(---指示文ここまで---)

2回目の応答

(---指示文ここから---)

注意:コンテンツポリシーに反しないよう、安全かつ適切な内容で生成してください。
(1)「遊びに行く途中の若いカップル」「通勤電車」「失敗」「仲直り」をベースに「3つ」の要素を追加して、2文をつなげた「日常シーンの」ストーリーを考案してください。
(2) 4文をつなげた「英語の」画像プロンプト(色、場面、人物、動作、背景、ムード、視点などを詳細に)を2つ考案して表示してください。条件として、「vibrant watercolor on rough paper anime illustration,」を先頭に加え、(1)のストーリーを使用してください。
(3) 2枚の画像を作ってください。

(---指示文ここまで---)

n回目の応答


◆ 0-1:続きの生成(rev. X1-231012)

 前述の通り、定型の指示文を毎回貼り付ける使い方を想定していますが、話の続きを作りたい場合もあるかもしれません。その時は下記のように指示してみてください。ただし動作の保証はありませんし、登場人物の見た目を統一することは技術的に難しいことをご理解ください。

(---指示文ここから---)

このあと二人は水族館でデートを楽しみました。先ほどと同様に処理してください。

(---指示文ここまで---)

先ほどのストーリーの続き(ただし人物の見た目は異なる)



▼ その他

 私が書いた他の記事は、メニューよりたどってください。

 noteのアカウントはメインの@Mayu_Hiraizumiに紐付けていますが、記事に関することはサブアカウントの@riddi0908までお願いします。

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