見出し画像

describe構文でプロンプトをイチから書く

describeが始まってからしばらく経ちました。

これは簡単に元画像からプロンプトを生成して絵を描くことができます。単純にそれを回しているだけの人が大勢いて、あちこち似たような画像だらけになってしまっています。似た画像だらけになる理由は「describeで出てくるプロンプトはデフォルトなのでワンパターン」だからです。

そして元々describeで作られるプロンプトには不備があります。元画像に対して正確ではないのでちょっとおかしい部分があるのと、画質が悪いこと。

うまくdescribeを使うにはどうしたらよいのでしょうか?今回はdescribeとの正しい使い方について考えてみましょう。

例題画像を使って見てみましょうか。

まず私が自力で描いた画像を見てください。普通のプロンプトで描けばこんな感じの絵が描けます。

自作プロンプトの元画像

これをdescribeしてみましょう。/describeのコマンドを入れて出てきたプロンプトを生成にまわします。このような画像ができあがりました。1度に4枚出来上がるのですがどれも画質が悪いです。

describe無改変画像

一番わかりやすいのがこちら。

デコルテ部分の装飾が溶けています。トロトロしてますよね。これが破綻の症状です。模様が雑に描かれています。

詳細な部分が溶けている

そして髪の毛がボサボサ。顔色が悪いです。これは完全に人に見せられるレベルではないと思いますが、このレベルでも平気で公開している人いますね。

それと髪の毛が特徴的に描かれます。目や羽根は比較的丁寧に描かれているのに髪の毛だけ雑に描かれていたりすると、describeっぽいなと思います。鎧も妙に雑です。

髪の毛ボサボサ

それと元絵が立体的な画像であっても、このようにべたっとした2次絵になりやすいです。線が雑で色味も汚いですよね。とにかく画質が悪いですよね。こういう絵なんですって言われても線が汚いとカッコがつきません。

乱雑でつぶれたような線


最も特徴的なのは

・画質が悪い
・溶け
・髪の毛や手をちゃんと描けない
・2次絵の雑な線

です。

次はこちらの画像を使ってみましょう。

自作プロンプトの元画像

この画像をdescribeしてみましょう。

こちらも肩のあたりに「溶け」が出ています。

溶け、顔色悪い

それと表情がちょっとメンヘラっぽいですね。describeするとその画像の顔はデフォルト感満載の顔になることが多いですが、メンヘラ顔になることもとても多いです。

蝶々の描き方が雑ですよね。

こちらは手首と指がおかしいです。

手と関節が変

describeには身体も奇形しやすいという特徴があります。

顔が汚れている

顔に汚れが出がち。

これは部分的にぼやけていて、ゴミみたいなのが散っています。

ぼやけている、ゴミが散る


これらもdescribeにありがちな特徴です。

ぼやけている部分がある
顔に汚れがつく
表情が悪い、顔色が悪い、目つきがキツイ
横を向きがち
特定の色が出やすい
刀などの特定のモノを持ちやすい
ゴミが散る

これって今まで普通にプロンプトを組んでいた時に「破綻したプロンプトで出てきた特徴」ですよね。ということはdescribeで作られたプロンプトは元々破綻したプロンプトも多く混ざっているということです。綺麗な画像も出るけれどバンワードが入ったプロンプトも平気で作ってくるので。


私が描いていた黒いサイボーグをdescribeすると、勝手に刀が出ます。画質が悪いとか顔色や髪の毛がボサボサだとかわかりやすいdescribe画像ができます。頼んでいないのに刀が出るんですよ。

describe無改変画像

この画像でdescribeしたプロンプトで画像を作るとこういうのも出ます。
真っ黒い鎧の絵からこういう絵が平気で出ます。

describe無改変画像

実写画像ならdescribe無改変画像だとレベルが悪すぎて使えないですが、2次の絵だったら「そういうものです」って顔をしておけばOKかなというレベルのものもでないわけではないのですが、大勢が回してるのでいろんな人のところでこのタイプの絵が出来上がっています。

これらの色が出るのは「色指定をしていない」という証拠です。正しい文法で色指定をすれば通るのですがそうではない場合はこのような色になり、「指示を出したのに通らない」ということに。

今までの「describeの不具合」とは、describeして出るプロンプトが「細かい部分の指示をあまりしない」からです。ふわっとした指示だけなので、絵にした時に具体性がなくて破綻しやすい。describeのプロンプト自体がそういうものなのです。

その分何回も回せば毎回少しずつ違うものが出るのでバリエーションは出やすいです。

①人物や服装髪型背景色柄ライティングなどに対して細かい指示を出していないプロンプト
②画質の良さに関する指示が甘いプロンプト

これがdescribeプロンプトです。


真面目にAIアートをやっている人なら「ちゃんと修正して使えばいいのでは」と思いますよね。

ただし一度describeをしたことがある人ならわかると思いますが、describeで出てくるプロンプトってちょっといじっただけで大きく破綻しますよね。

良かれと思って普通に修正すると、こんなふうなことに。

オカシイな?!変な単語は入れてないのにおかしいな???結構ガチガチな構造になっているのかな???

これなら普通にプロンプト組んだほうがマシじゃない???
ということに。それで無改変で使っている人が多いのでしょう。


でもこれを修整するのはそれほど難しくなかったんですよ。というか、修整しようとするから間違える。

もともとdescribeの文法で最初からプロンプトを組んじゃえばいいんですよ。

describeで出てくるワードを沢山収集してそれを分類し、文法に合わせて配置していって、足りない単語を足せばいいだけです。1から書くのはとても簡単。思っていた以上に簡単でした。

describe文法は
「どんなジャンルの絵なのか」
「どんな雰囲気の絵なのか」
「どんな画質の絵なのか」
「誉め言葉」
で構成されていることが多いのですが、「主題が何か」ということすらはっきりと書かれていないことも多いです。

「何となくふわっとした表現しかしていないプロンプト」なのです。

私は自分の絵をいろんな人にdescribe盗作されまくって機嫌が悪かったので「describeされにくい絵を描くにはどうしたらよいのか?」と最初考えていました。この考え方はdescribe文法を理解するのにとても役に立ちました。

「describeされにくい絵」とは「複雑な絵」ということになります。

describe文法は「細かい指示」を出せないのですから、「あれもこれも細かく指示した絵」はdescribeした時に完全再現されません。describeの文法にすべて盛り込めないので酷い劣化コピー画像が作られて終わりです。

例えばこの絵。

主題がの女の子が中央にいます。背景もありますが、女の子よりも前に鉄格子が来ています。絵の構造的にはdescribeで生成される絵とは明らかに違います。背景に光を描いていますが、服にも光を描かせました。顔もデフォルト顔ではない指示を出しました。カメラアングルの指示、女の子のポーズの指示、服装の指示も出ています。これはAIにとっては「複雑な指示の絵」です。

describeの機能を使ってもこれらの要素の一部しか取り込まれないので完全再現は不可能です。

それなのに自分がdescribe文法を駆使しながら人物、服装、顔、表情、ポーズ、背景、光の指示を完璧に出すと、今まで以上に短いプロンプトで指示が出せるようになるんですよ。何この相反する感じ。

自力で描いた絵をdescribeしては確認し、また修正して描いてはdescribeしを繰り返していたら、本当に必要な単語にたどり着くスピードが上がりました。以前は1つのプロンプトを完成させるまでに数日かかっていたのに。語彙力が短期間にUPして、describeの文法自体はとても簡単なので応用も楽なんです。

透明な服を描くのもdescribe盗作には有効です。エロ禁止のAIなのでdescribeできないようにストップがかかります。でもAIは平気でそういう絵を描いてきます。自分で描いたくせにdescribeしようとすると「それはダメ」というんです。破廉恥なポーズを取らせても同じことが起きます。



では実際に画像を生成しながら試してみましょう。

私は元々ピンク色のセクシーなサイボーグの絵を描いていました。

この絵の色変更をして背景指示をした画像がこちら。画聖の名前も入れ替えています。

これを元に沢山のdescribeプロンプトを出して生産してみました。すると出てきたデフォルト画像がこちらです。ネオンライトの光を認識したらしく緑ではなく「ネオンライト」全体でdescribeしたようです。ピンクや水色や黄色で表現されがち。

describe無変換でデフォルト顔
describe無変換でガタガタ破綻
describeした恐ろしい画像

こちらは多少マシですが4枚中3枚は顔が崩れていて、まともに見える画像ですら完全にデフォルト顔ですよね。

describe無変換

この顔。もう見飽きました。見過ぎるほど見たし面白くない。単調な構図です。人が立っていて背景に店内の画像が描かれているだけ。退屈な絵です。この顔が好きな人いるかもしれないけれどAIアートをやっている人にはもう拷問!もうこの顔見たくない!

まず、顔を変えよう!と思いました。

これに対して服装の指定の出来る人名を加えてみます。顔も一緒に変わりました。

MJ3大SM衣装作家の名前を入れるとAIも遠慮がありません。もうちょっとおとなしめでいってほしい。奇抜すぎます。

外国人じゃない子を描いてくれるように頼みこみましたが背景指示が飛びました。証明写真並みのつまらない構図。顔に関する指示語を足します。

そして背景をしっかり描かせようとしたら実写ではなくなったりしました。

男の子だとこうです。

顔を表す人名に入れ替えます。これを使う時は顔の指示語は削除。主語の装飾も外してシンプルに。この人名の力で実写に寄ります。

多少AIが忖度してくれていろいろ変化させてくれました。

anime寄りにしても実写感が残るのでオモチャの人形っぽくなりました。そしてポップカルチャーの巨匠の名前を加えたのでインクのようなものが足に散りました。

ただこのプロンプトはものすごい貧乳プロンプトでどうやってもボディメイクに失敗しました。

男の子ならこうです。アニメのキャラにいそうな人だけども、イケメンは呼んでこれませんでした。

透明な服も徐々に描くのが上手になってきました。

服に文字を書いたり光らせたりすることもできるように。

黒のぴたっとスーツでも演出の仕方はいろいろあると思います。

背景のない絵よりも背景のある絵、沢山のモチーフを一度に登場させること、画像全体のイメージを明確にすることでAIを迷わせないようにすれば思ったような画像を描いてくれます。

こういう絵をdescribe構文以外で描こうとすると凄い文字数になります。

私はdescribeして出たワードを集めてdescribe単語帳を作りました。

どの単語がどのような意味になるのか、どの位置に配置するのが適切なのかを考えて単語帳から言葉を選んで描くようにするんです。そのうえで主題に関してのワードを足したり、画質向上のワードを足したりしながら調整しました。

背景や色、服装や顔の指示を通すとこんな感じになりました。これが微調整。最初のプロンプトからさほど変化していませんがちょっとずつ変えて生成しています。

やっと描きたいものにたどり着きました。

<describe構文を身に着ける方法は>

①describeプロンプトを大量に抽出して眺める
②それぞれの言葉の使われ方を分類して分析する
③画風に影響のある人名が反映するかどうかをチェックする
④意味不明で使えなかったワードを削除する

こんな感じですね。

次は、

⑤根本的な文法の仕組みはとてもシンプルなので、順番に必要なワードを組み合わせていく
⑥描きたい絵に必要なワードを追加していく
⑦画質向上に関するワードを加える
➇スタイライズ調整などを含めてバランスを整えていく
⑨生成と修正をくりかえす


という流れで学習しました。

(何を描くのかをザックリと)in the style of (ここに全体の雰囲気を現わす単語)(背景を現わす単語)(ジャンルを現わす単語)(画質を現わす単語)(〇〇coreなどテイストを現わす単語)(素材を現わす単語)(人名など)--s 〇〇〇 --ar 4:3 --niji 5 --style expressive

describeの文法自体はこんな感じ。大事なのはこの配置だけで、別に特別な言葉は必要ないんです。普通の日本語もこの順番で書くだけできちんと機能するんですから。

問題はワードを加筆するときに「どの場所に入れるか」です。

人物に関してのワードは背景を現わす単語よりも前方方向に描くべき。それと「人名と相対する印象を現わす単語や関連ワード」を各所にきちんと配置すること。これをせずに人名だけ入れても求めるものは何も出てきません。

成功させるポイントは描いて欲しいものはできるだけ具体的に描くこと。
欲張ってあれこれ入れ込み過ぎないこと。

そうなんです。

みんなプロンプトに欲張っていろいろいれすぎちゃうんですよね。なんで入れ過ぎちゃうんでしょうか?!

私はいろんな人とプロンプト交換をしてお互いに修正しあったりしながら勉強してるんですが、「めちゃくちゃなんです」という人のプロンプトは本当にめちゃくちゃで文法にのっとっていなくて単語がてんこもりなんです。

モリモリにすると反映してない単語が増えます。大抵の人はプロンプトの文法を全く無視して雰囲気だけで単語を重ねてる。

プロンプトを機能させるには「必要な単語」を「決められた順番で書くこと」が大事ですが、それと同じくらい「不必要な単語をいれないこと」も大事なんです。

特に描きたいものを描いてもらえなかったときに有効な手段として「重ね掛け」と「重複」がありますよね。これを間違えている人がよくいて、MJ系統のプロンプトでは「協調させたいから同じ単語を繰り返すと良い」と信じている人がいるのですが、これは実際は「重複」ととらえられて画像が破綻しがちです。

重複:大きい、大きい、大きい➡画像が破綻する
重ね掛け、デカイ、巨大、大きい➡思い通りに描ける

こんな感じなんです。重ね掛けると効果は増幅するけれど重複の単語だけだと意味がないし、重ね掛けの時に形容詞で装飾しないとあまり効果は感じられないと思います。

重みづけに関しても誤解をしている人が多くて、::2.0とかにしておけばいいのに::50.0とかをつける人が結構いますね。大きく数値を指定すればその分強調されるかというと全然そんなことないので欲張るとだめです。

私は部分的に大文字でプロンプトを書いたり、nijiに関しては日本語で書く方がずっと強調されるなと思っています。特に英語でバンワードになる者でも日本語ならならないものも沢山あるので日英プロンプトを昔から多用しています。そういった方法で言葉の意味に重みをつけることも可能です。

描きたい絵が上手くかけないときは、

①欲張っていろんな単語を盛り込みすぎている
②文法が間違っている
③重複している、重ね掛けを失敗している
④本来指示しなければならない部分を全く書いていない

という原因のことが多いのですが、①②③の問題を抱えている人ほど④ができていないんです。描いて欲しいものばかりに目が行き過ぎて全体を見ていないと、AIは困るんだと思うんです。たとえば人物の指示ばかりして背景指示が抜けているとか、人名の指示が重複してしまっていてるのに画風に関する指示がでていないとか。

線画をよく描いた漫画家の人名と、芸術的なイラストレーターとアニメーターの名前が入っていた場合、AIは「結局どの人のどんな絵柄をどの部分にかけばいいの?」と迷うはずなんです。配色に特徴のある人名と線種に特徴のある人名を使ったときは色と線に関する印象を現わす単語を入れてやれば人名は反映します。それなのに反映しないと人名をさらに足したくなるんですよね。名前だらけのプロンプトはAIは困ると思います。

でもそうなった理由は「文法を知らないから」だと思います。文法が大事だと思っていないからいろいろ言葉を足しすぎてしまう。単語で人間の思いをぶつけすぎてしまっている。

AIには順番がとても大事なんです。そしてV4とV5ではその順番が変わってしまったんです。

AIアートをやる人はよく「呪文」を重視してコレクションしますが、文法を気にしている人をほとんど見たことがありません。

describeが始まったからこそ、文法を見直して思い通りの絵を描けるようにしてみませんか。describe特有の言葉もありますが、別にそれを使わなくても順序さえ同じようにすれば日本語でだって前より通りやすくなるんです。

これはV4時代のプロンプトをそのまま回したものですが、この時点で今の文法と同じ順序でした。

普通の自然な日本語の流れとは違いますが、ひらがなと漢字で書かれた特別変わった言葉を使っていないありふれた日本語で書かれたプロンプトです。

この文法を身に着けることこそが本当に破綻しない絵を描けることにつながります。



この記事が参加している募集

やってみた

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