ChatGPTの機能の一つであるDALL-E3。
実はDALL-E3の画像生成は、我々ユーザーが送ったリクエストに高度な改変が掛かっているのはご存じですか?
こちらの記事では、DALL-Eのチャットではどのような命令の改変が行われていて、さらに自分で直接プロンプトを打ち込むにはどうすればいいのかを解説していきす。s
ユーザーのプロンプトはDALL-E3に届いていない
実は、窓口であるChatGPTがユーザーの入力を解釈してオリジナルでプロンプトを組んでDALL-E3に指示しています。
例えばゴッホのスタイルのリクエストを出したとします。
すると上記の様にゴッホの星月夜のような絵を描いてくれました。
しかし星月夜の指定はしていません。なぜこの絵画にたどり着いたのでしょうか。
実はそれは絵をクリックしてインフォメーションを見るとわかります。
絵をクリックすると右上に小さくインフォメーションマークが出ています。
これをクリックすると生成時に作られたプロンプトを確認することができるのです。
Prompt
A painting in a style closely resembling that of Vincent van Gogh, featuring vibrant colors, bold brushstrokes, and a swirling, textured appearance. The subject is a serene landscape with a starry night sky, rolling hills, and a small, quaint village.
とっても長くなっていますよね。窓口のGPTが気を使ってこれだけの演出を考えてくれているわけです。
そして実は「starry night」が星月夜に相当しているのですが、これを意図してプロンプトを組んだようなのです。
「ゴッホの技法に限りなく近い状態の絵を描いて」この一言で。
反対に言うと、我々ユーザーのリクエストは直接DALL-E3に届いていないことを指しています。
DALL-E3に直接プロンプトを指示する方法
では実際にDALL-E3に直接プロンプトを支持する方法をお教えします。
Prompt Sample
dalle.text2im({
size: "選択したサイズ", // 例: "1024x1024", "1792x1024", "1024x1792"
prompt: "画像の詳細な説明",
// 他のオプションを必要に応じて追加
})
実はDALL-Eに直接このことを尋ねると上記の様なサンプルプロンプトを提示してくれます。
要約すると「ダリにテキストtoイメージを送る、サイズとプロンプトの指定」
といった感じです。
DALLーEはサイズを三種類からしか指定できない為、記載のある3つのうちどれかを採用しましょう。
そして本題のプロンプトは、基本的にどのような形式でもOKです。
文章でも、単語でも構いませんが、それぞれの文の切れ目にはカンマ(ドットでも良い)と半角スペースを入れます。", "この表現が文章や単語の切れ目になりますので、個々だけ意識して英語のプロンプトで絵の特徴を書くようにしましょう。
DALL-Eの詳細な話
現在DALL-E3で使える命令は以下の通りです。
DALL·Eにおける画像生成の際に利用できる主なオプションは以下の通りです:
- size: 画像のサイズを指定します。選択肢は「1024x1024」(正方形)、「1792x1024」(ワイド)、「1024x1792」(フルボディポートレート) の3つです。
- prompt: 画像を生成するための詳細な説明文。このテキストに基づいて画像が生成されます。
- n: 生成する画像の数。指定しない場合、デフォルトで2枚の画像が生成されます。※2024年1月現在は機能していません。
- referenced_image_ids: 以前に生成した画像のIDを参照する場合に使用します。特定の画像に基づいて新しい画像を生成する際に役立ちます。
枚数の指定機能が現在ブロックされているため実質使えるのは4つ目に書いた画像参照です。
画像IDというのはチャット内で独自に管理している機能で、「今生成した画像のIDをそれぞれ教えて」と画像生成後に尋ねると教えてくれます。
USER
referenced_image_ids: この命令はどの様な用途で使いますか
DALL-E
referenced_image_ids
オプションは、DALL·Eが以前に生成した特定の画像を参照して、新しい画像を生成する際に使用します。このオプションは、特定の画像のスタイルやテーマを基に、それに類似した新しい画像を作成したい場合に特に有用です。
具体的な使用例は以下の通りです:
- スタイルの継承: 以前に生成した画像の特定のスタイルや雰囲気を新しい画像に反映させたい場合。たとえば、特定の色調やテクスチャを持つ風景画を基に、同じスタイルで異なる風景を描く場合など。
- コンセプトの拡張: あるテーマやコンセプトに基づいた画像シリーズを作成する際に、一貫性を持たせるために使用します。例えば、同じキャラクターを異なるシーンやポーズで描く場合など。
- アイディアの発展: 以前の画像からインスピレーションを得て、それをさらに発展させたい場合。過去の画像が新しいアイディアの出発点となることがあります。
この機能を使用することで、以前の作品に対する一貫性を保ちつつ、新しい創造的な画像を生成することが可能になります。
つまり、絵柄の保持に近い機能です。
ちょっと実際に試してみましょう。
まず素体となる画像を作成します。
左の絵に特徴があるので参考にプロンプトを作り、青い髪で指定をします。
Sample
{ "size": "1024x1024", "prompt": "A cheerful Japanese anime style girl with sparkling eyes and blue hair, wearing a school uniform with a red scarf and a mustard blazer. She has cute accessories like a brooch and a hairpin, and carries a fashionable pink school bag. The background suggests a whimsical, soft-focus scene with cherry blossoms.",
"n": 2,
"referenced_image_ids": ["hemiaw75FIr6ZKWD"] }
最後の指定はもちろん左の画像に対する指定です。なお、ID参照をする場合生成数は1枚になるルールの様です。
うーんある程度似ているかなといった感じですね。
元々のプロンプトが短すぎたので、限りなく似せた上で一部を改変するのは結構難しそうです。
今回紹介した手法を使って、是非DALL-Eでお望みの画像を作ってみてくださいね。