MOOARが提供するAIGCサービス「Generative NFT Tool (GNT)」のプロンプトは、他の類似サービスにはない独自の仕様があります。本記事では、GNTのプロンプト仕様について私が研究した結果をアウトプットとしてまとめていきます。
AI画像生成の仕組み
まず簡単に、AIによる画像生成の仕組みをざっくり説明します。
- 入力データ(=プロンプト、呪文)を入力する。
- 入力データの内容に近い情報を持つ画像を学習データから検索する。
- 検索した画像を元に、新たな画像を生成する。
- 生成された画像の特徴が、元となった画像と似ているか採点する。
- 多くの特徴が高得点となった画像を出力データとして出力する。
学習データは、インターネット上のビッグデータなどが元になっており、「画像データと文字で一組になったデータセット」です。AI画像生成は基本的に「モデルが知っている(学習している)画像を組み合わせて似たような画像を作る」ものなので、モデルが知っている画像を効果的に探せるプロンプトを入力してやることが重要です。
また、このモデルの設計や学習データの内容により、同じプロンプトでも出力結果は変わってきます。GNT以外の画像生成サービスで上手く機能するプロンプトがGNTでも同じように機能するわけではない(逆も然り)ので、GNT特有のクセを掴むまで何度も試行しましょう。
全体の基本仕様
全体構成
プロンプトは、「1. Define Character」「2. Select Style」「3. Describe Character」「4. Other Detail」の4つで構成されます。
類似サービスでは、自由入力の「プロンプト」と「ネガティブプロンプト(除外したい要素を指定するプロンプト)」の2つだけが設けられているものが多いです。GNTでは、効果的なプロンプトを作り出すためのガイドとして、上記のような複数の項目に分かれたUIが用意されているものと思われます。
ベースとなるデザイン
GNTはPFP(ProFile Picture)を作成するために最適化されています。そのため、基本的には人物や動物などのプロフィール画像(バストアップの構図)が生成されやすくなっています。そのため、構図を指定せずにGenerateした場合は基本的に以下の構図になると考えておきましょう。
プロンプトに極力指示を与えずにGenerateした場合の出力例は以下のとおりです。これがGNTのベースとなるデザインであると考えられます。(無機質な印象が強いのは、後述しますが「Select Identity」を選択していない影響と思われます。)
各構成の基本仕様
1. Define Character
自由入力の「Name」と、選択式の「Select Identity」から成ります。
Name
まず注意が必要なのは、「Name」はただのラベルではなく、プロンプトの一部として結果に影響を与えるという点です。また、原理は後述しますが、GNTの入力構成に素直に従うと「Name」のプロンプトが結果にもっとも強く影響する可能性が高まります。
参考までに、Nameに Red または Blue と入力し、それ以外をすべて未入力にした場合の出力例は以下のとおりです。
同様に、人物名も結果に影響を与えます。(著名人の場合、その人物がそのまま結果に反映されるケースもあります。)参考までに、 Nameに人物名を入力し、それ以外をすべて未入力にした場合の出力例は以下のとおりです。
陥りがちなミスとして、例えば「Yawnという名前の猫」を作ろうとしてNameを「Yawn, cat」としてしまうと、この「Yawn」(=あくび)が出力結果に影響を与えてあくびをしたような猫が生成されてしまいます。プロンプトとして意味のない言葉は極力入力しないよう留意しましょう。
なお、Nameは必須入力ですが、半角スペースや半角カンマのみを入力することで出力結果への影響を無効化できます。もし意味のない名前を入力するくらいなら、半角スペースや半角カンマにしてしまうのも一つの手です。(ただし、その場合はMintする際の名前への影響を考慮する必要があります。)
Select Identity
続いて「Select Identity」の影響についてです。これは見たままなので、理解は容易だと思います。
私が気が付いたのは、「Select Identity」を選択していない場合と比較して、出力結果がより人間(または動物)らしく自然になっているという点です。あえて無機質な顔を作りたいという場合以外は、何かしら選択しておくのが無難かと思います。(あえて逆に選択しないというテクニックもあると思います。)
注意点としては、Identityは生き物以外にも作用するという点です。たとえばスニーカーを生成しようとして「男性でも女性でも動物でもないから」という理由で「Non-Binary」を選択すると、以下のように色味に影響が出ます。こうした場合、特に意図がなければ何も選択しないほうが賢明でしょう。(もちろん、あえてこれを利用するというテクニックもあると思います。)
2. Select Style
選択式の「Select Style」です。未選択にはできないので、いずれかを選択する必要があります。このStyleの影響はとても大きく、Freestyle以外を選択した場合はこのStyleに強く引っ張られます。目当てのStyleがある場合は該当するものを選択し、それ以外の場合はFreestyleを選択して作り込むのが良いでしょう。なお、このStyleは今後どんどん追加されていくと思われます。
「Freestyle」は上記に掲載したとおりですので、それ以外を選択した場合の出力例を以下に列挙します。
3. Describe Character
自由入力の「Character」と「Appearance」から成ります。
Character
「どんな風に見えるか(どんなオーラを放ってほしいか)」を入力します。たとえば以下のような内容です。
- 属性:種族、性別、年齢、役割
- 人格:感情、態度
(具体例を加筆予定)
Appearance
「何が見えるか(どのような設定か)」を入力します。たとえば以下のような内容です。
- 具体的な見た目:目、髪、肌、特徴など
- 目立つように:バリエーションと希少性に注目
- アートスタイル:ピクセル、ローポリ、リアリスティックなど
(具体例を加筆予定)
4. Other Detail
自由入力の「What Else?」から成ります。
What Else?
「Character」「Appearance」以外の要素を入力します。たとえば以下のような内容です。
- 補完的な背景:シンプルでも抽象的でもOK
- 印象的なカラー:限定パレット、テーマカラー
- 小道具と脇役:見せ場を奪わない、バランスを保ったもの
(具体例を加筆予定)
応用編
各入力項目には厳密な使い分けがない
GNTは入力項目が「Name」「Identity」「Style」「Character」「Appearance」「What Else?」といった構成に分かれていますが、これらの入力項目には厳密な使い分けはありません。どういうことかというと、「ある言葉をどこの項目に入力しても同じように機能する」ということです。
例として、「angry」という言葉を「Name」「Character」「Appearance」「What Else?」のそれぞれに入力した場合の結果は以下のとおりです。見事に全部怒ってますね。
「cowboy hat」でも同様に、全員オシャレなカウボーイハットになります。
ちなみにこれは、選択式の「Identity」と「Style」も同様です。以下は、両者を「Name」で代替している例です。
よって、入力したい言葉を無理に各入力項目に振り分ける必要はなく、1つの項目にすべて集約しても問題ないということになります。各入力項目に分かれているのは、「こういう要素を忘れずに入力しましょうね」というガイドであると捉えておくのが良いと思います。(かといって無意味に逆らう必要はないと思いますが。)
プロンプトの順番には優先順位がある
キーワードをいくつも詰め込むと、それらが他のキーワードを打ち消してしまって上手く反映されないケースがあります。
まず、1つの入力項目には複数のキーワードを入力可能ですが、その順番には優先順位があります。基本的に、前にあるキーワードほど優先順位が高いと考えて良いでしょう。
例として、「a cat, a dog」を同じ入力項目に入力した場合の結果を見てみます。すべて前にある「a cat」が優先されているのが分かりますね。
上記の優先順位の法則は、入力項目の間にも存在します。基本的に、前にある選択項目ほど優先順位が高いと考えて良いでしょう。
今度は猫と犬を入れ替えて別の入力項目に入力した場合の結果を見てみましょう。すべて前の入力項目にある「a dog」が優先されているのが分かります。(ただし、入力項目を跨いだパターンの時は猫っぽい犬が生成されるケースもあり、同じ入力項目内の場合とは若干挙動が異なるようです。)
ただし例外があり、Identityに関しては「Select Identity」で選択されたものが優先されます。
Styleも同様に、「Select Style」で選択されたものが優先されます。
本章の内容をまとめると、以下のようになります。
- 単一の入力項目内では、前にあるキーワードほど優先順位が高い。
- それぞれの入力項目の間では、前にある入力項目ほど優先順位が高い。
- Identityに関しては、「Select Identity」で選択されたものが最優先される。
- Styleに関しては、「Select Style」で選択されたものが最優先される。
入力したキーワードが上手く反映されない場合は、プロンプトの順番を入れ替えることを検討してみましょう。
作例
私が生成した作品の一部を作例として展示しておきます。随時追加予定です。