解説⑭
Added 2024-08-14 05:29:51 +0000 UTC小ネタのような話で、NovelAIのアルゴリズムの私なりの解釈についてです。
書いてあることは全て、私が思っているだけで、実際に正しいかどうかは分かりません。
ちなみに、私はNovelAIの公式チュートリアルは読んだことありません!
①プロンプトは先に書かれているものほど強く正確になる
特にキャラに関しては、プロンプトの後ろに書くと正確さを失う傾向にあります。
プロンプトが長く複雑なほどそうです。
品質 → 人物 → 表情 → 服装 → 物や場所など → 背景が私の基本の形となっていますが、人物が2つ目なのは、優先度を高くしているからです。
人物 → 品質 → 表情
この並びの方が、人物はより強く正確になるのかもしれませんが、品質を最初にした方が良いと感じたからです。
書いてある順番通りにプロンプトをNovelAIが読み込んでいくなら、まずは品質を読み込んでもらって、それから人物を読み込んでもらった方が、良いイラストになるのかなと思っています。
また、プロンプトは近いものはそれぞれ影響し合うと思っています。
品質 → 表情 → 服装 → 物や場所など → 背景 → 人物と書くと、品質と人物の間で、色んなプロンプトを読み込んでしまうので、品質と人物の影響度合いが薄くなって、結果キャラの品質が落ちる気がします。
キャラパワーが強い(NovelAIの理解が高い)と、そんなの関係なく綺麗に出たりすると思っています。
②プロンプトは近いものは影響する
猫耳の女性に胸元が開いた服を指定すると、胸元が猫型に開きます。
catとcleavage cutoutが離れていても、胸元は猫型に開きますが、近いほど確率は高くなると感じています。
NovelAIのプロンプトは、長い文章よりも短い文章や単語で書くのがいいです。
近いものは影響し合うのを期待して、単語を並べて書くと面白いと思います。
③NovelAIの理解は、世の中に多くあるかどうか。
NovelAIでAIイラストを生成する場合、当たり前ですがNovelAIが出力するものしか出ません。
何を言っているのかと言うと、NovelAIが理解していないものは、どんなに頑張っても出力されません。
もちろんプロンプトの書き方を変えれば、それまでまったく出力されなかったものが、簡単に出力される場合もありますが。
胸を特に指定しないで女性を出力すると、だいたい巨乳になるのは、世の中にある女性のイラストで巨乳が多いからだと思っています。
ニットセーターで面白い例があります。
{{{amazing quality, very aesthetic, high resolution}}}, {{ultra-detailed}}, {{{game cg}}}, {{{1girl, cowboy shot}}}, {{{smile, blush}}}, {{{knitted sweater}}}, {{{sitting, wariza, on bed, from behind}}}

画像はニットセーターを着た女性が、ベッドの上で座っている後ろ向きの構図というシンプルなものです。
Anlasに余裕のある方は、これで何度か生成してみてください。
背中がざっくりと露出した童貞を堕とすセーターが出力されると思います。
童貞を堕とすセーター(言葉を一部変えています)を指定しているわけではありません。
ですが、ベッドの上でニットセーターを着ている後ろ姿の女性を、NovelAIが世の中にあるものから理解したら、童貞を堕とすセーターが有力候補として上がってくるのでしょう。
このプロンプトに背中のbackを足すだけで、ほぼ童貞を堕とすセーターになります。
{{{amazing quality, very aesthetic, high resolution}}}, {{ultra-detailed}}, {{{game cg}}}, {{{1girl, cowboy shot}}}, {{{smile, blush}}}, {{{knitted sweater, back}}}, {{{sitting, wariza, on bed, from behind}}}
knitted sweater, backが影響し合うようにしています。
dressとbackを組み合わせると、背中の露出したドレスが出力されます。
これも世の中に背中の露出したドレスの画像があるからですね。
ただ、ドレスはバリエーションがあります。
背中の露出したドレスはいろいろあるからです。
ですが、ニットセーターで背中の露出したものは、童貞を堕とすセーターが占有率99%です。
ニットセーターで横視点(from side)や後ろ視点(from behind)で生成すると、童貞を堕とすセーターが出力されてしまいます。
普通のニットセーターを確実に出したいのに!という場合はどうするか。
除外したい要素にbackを入れます。
背中を出力するな、とすれば、露出された背中が出力されなくなりますので、普通のニットセーターになるはずです。
では早速、除外したい要素にbackを入れて何枚か生成してみてください(Anlasに余裕がある方)
・・・出ましたね?
童貞を堕とすセーターが出ましたね?
そうなんです!
除外したい要素にbackを入れても、まだ童貞を堕とすセーターは出力されるのです!
いったいどれだけ童貞を堕とすセーターが世の中の画像に溢れていると言うのですか!
除外しろと指示してもなお!NovelAIが背中を出力してしまうほどに、童貞を堕とすセーターは強いのです!
ですが、私達も負けていられません。
NovelAIでプロンプトを強調する{}を3つでbackを囲みましょう。
{{{back}}}
これでさらに強く背中を出力するなとなりました。
これでもう大丈夫でしょう。
何枚か生成してみてください。
・・・出ましたね?
出ましたよね?
強調したおかげで、童貞を堕とすセーターの出力頻度は低くなったと思います。
ですが、それでもまだ童貞を堕とすセーターは出力されます。
これはなぜなのか?
③の冒頭に私はこう書いています。
NovelAIが理解していないものは、どんなに頑張っても出力されません。
逆に言えば、NovelAIが理解してしまっているものは、どんなに頑張っても理解したものとして出力しようとします。
NovelAIにとって、後ろ向き構図のknitted sweaterは童貞を堕とすセーターとして理解してしまっているのです。
除外したい要素にback(背中)を入れても、童貞を堕とすセーターとして出力してしまうのです。
knitted sweaterという服を、NovelAIは露出の多いセクシーな服だと理解してしまっているようです。
{{{amazing quality, very aesthetic, high resolution}}}, {{ultra-detailed}}, {{{game cg}}}, {{{1girl, cowboy shot}}}, {{{smile, blush}}}, {{{knitted sweater}}}, {{{sitting, wariza, on bed}}}

角度の指定がなく、正面からの構図でも、胸元を開けろと指示していないのに、こんな風にざっくり露出されたものがでます。
正面からは、さすがに胸元が開いた画像ばかりではなく、普通のニットセーターも出力されますが、指示していないのに胸元を開けてくるということは、knitted sweaterというプロンプトがそのように理解されているからです。
そして胸の指定がないと巨乳になるのは、NovelAIが女性は巨乳だと理解してしまっているからです。
私のXの投稿で、巨乳でないのに巨乳になってしまっているのは、私が面倒で胸の大きさの指定をしなかったばかりに、女性は巨乳だと理解しているNovelAIが勝手に巨乳にしてしまうのです。
つまり、私は悪くないということです。
NovelAIに女性は巨乳だと理解させてしまった、世の中に溢れている巨乳の画像が悪いのです!
このNovelAIのプロンプトに対する理解をどのように解釈していくかで、どんなプロンプトを書けばNovelAIがどんな風に出力してくれるのかを、自分の中でイメージしていくことになります。
Comments
ニットセーターの例で、始めのプロンプトを試したところ1枚目から例の画像が出て思わず笑ってしまいました。そこで出し続けてみると半分以上の確率で出てくるので、世の中の人たちはよほどアレが好きなのだなぁと親近感を覚えますね。そして除外しても頑固に出してくるというのに、追い打ちをかけられて笑ってしまいました。
猫犬
2024-08-24 14:52:19 +0000 UTC