足が3本、指が6本・・ネガティブプロンプトの考察 -- STYLE BOOK --
不都合な作画
画像生成AIをいじっていると奇妙な物体を創造する。
人なのに足か3本あったり、指が6本あったりするケースがある。
私は現在、Dalle-3、stable diffusion、Leonard.ai で作画している。程度の違いはあれ、同様の現象は起こっている。
例えば、「公園のベンチでOLがアイスクリームを食べている」という内容でAI に作画をさせると以下の様な絵を描く場合がある。
足が3本あり、右手の指は6本もある。
この様な傾向は、私の使っている画像生成AI の中では stable diffusion が一番多い。leonard.ai もその根本は stable diffusion なのだが、比較的この様な現象は少ない。Dalle でも発生するが比較的少ない。
恐らく、leonard.ai も Dalle も内部的に上記の様な作画か行われない様にかなり調整がされていると推測する。
しかし、特に、自分のパソコンにインストールするタイプの stable diffusion
は、画像生成AIの "原石" の様な存在なので、自分で調整する事になる。
画像生成AI、特にここでは stable diffusion が作画をするときにどれくらいの頻度でこの様な絵を描くのかに興味があり、いろいろと条件をつけて全部で160枚も同様のテーマで作画させてしまった。
まず、正常ではない状態の画像を幾つか紹介する。
この様に足が3本だったり、腰から上のないもう一組の両足が出現したりとオカルトストーリーに使えそうな絵を量産してくれる。
それで、中にはOLがペアでアイスクリームを食べている絵も幾つかあった。
「公園のベンチでOLがアイスクリームを食べている」という指定には、
「1人のOL」という但し書きが無いので当然複数人が出てくる訳だが、このケースの場合も、2人目のOLに足が3本あったする。
そして脳内では、"1人のOL" と思い込んでいたので当然の如く3人目も登場するが、足の数は5本となる。
1回に10枚、20枚と連続で作画させると、何も対策をしなければ、約50%近く、この様な絵を描き出す。
ネガティブプロンプト
この現象を発生させないため、ネガティブプロンプト というものが存在する。
通常は、画像生成AI に「させたい事、描きたい事を」指示するわけだが、AIにやってはいけない事の指示をするのが、ネガティブプロンプト と言うものである。
例えば、 stable diffusion の場合は、操作するための画面は以下の様になるが、この中で、グリーンで囲った部分に "描いて欲しい"プロンプトを入れる。
"描いて欲しくない"プロンプトは、赤で囲われた部分に入れる。
呪 文
上記グリーンの部分に入れた、つまり実現して欲しいお願いが、
A young office lady is eating ice cream on a park bench.
というプロンプトである。通常プロンプトの事を「呪文」とも呼ぶ。
一方、実現して欲しくない呪文の方には、
worst quality,low quality,,out of focus,ugly,bad anatomy,jpeg artifacts,lowres,error,missing limb,bad hands,missing fingers,extra digit,fewer digits,malformed_hands,disconnected_limbs,inaccurate limb,extra_fingers,bad fingers,poorly drawn fingers,liquid fingers
という呪文を入れてある。
このネガティブプロンプトには、stable diffusion を使ってきた先輩達が沢山の呪文の書を残しているのでそちらからコピペして入れた。
この中に以下の様なリストがある。
stable diffusionは、「指の描写が苦手」とあり、それに対するネガティブプロンプトも人体関連のがものが 5件ある。
それで私の入れたネガティブプロンプトは、以下の様なワードである。
worst quality,low quality,,out of focus,ugly,bad anatomy,jpeg artifacts,lowres,error,missing limb,bad hands,missing fingers,extra digit,fewer digits,malformed_hands,disconnected_limbs,inaccurate limb,extra_fingers,bad fingers,poorly drawn fingers,liquid fingers
日本語にすると、
「最悪の品質、低品質、焦点が合っていない、醜い、悪い解剖学、JPEG アーティファクト、低解像度、エラー、四肢の欠損、悪い手、指の欠損、余分な指、少数の指、奇形の手、切断された四肢、不正確な四肢、余分な指、悪い指、 下手に描かれた指、液体の指」
太書きにした部分が、体に関するワードである。
上記に追加して、 プロンプトに only one person や two legs、ネガティブプロンプトに 3 or more legs 等を入れた。
不都合な画像の発生率
この様な対策をしても、3本以上の足や6本の指は発生する。そこで、大量生産してその発生率をチェックした。
結論を書くと、私のケースの場合、
ネガティブプロンプトを入れないと、約40%~50%で不都合な画像が生成される。
逆に、ネガティブプロンプトを入れると、不都合な画像の発生はゼロでは無いが、約20%に減少した。
今後、画像生成AIの精度が向上していくと、この様な不都合な画像を描く比率も下がってくると推測するが、現時点では、多くのネガティブプロンプトを入れないと不都合を回避することは難しい。
また、描かれる画像結果を見て、適切なネガティブプロンプトを追加していくのが現況の対策であろう。
プロンプトの保存
さて、話はそれるが、沢山の画像を生成すると、良い出来の画像は保存をしたくなる。プロンプトも同時に保存する事になるのだが、どうしたら良いのか悩んだ時期があった。
Dalle の場合、 stable diffusion の様な高度な操作画面は無い。
そこで保存しておきたいプロンプトを何処に入れて置くか? という問題に直面した。
この問題は人によって異なるので、私の選択が一番良いとも限らないが、いろいろと試行錯誤した結果、以下の2つの方法を選んだ。
この記事が気に入ったらサポートをしてみませんか?