前回、DiffusionBeeでモデル「Stable Diffuison XL 1.0」を使い、「ネガティブプロンプトなし」「スタイルなし」で「リアル・実写」の画像を生成しようと、プロンプトに「Photograph」をいれてみたものの、見事に期待を裏切られ、とんでもないイラスト生成を連発されてしまった私。
今回は、DiffusionBeeで「リアル・実写」画像の生成に重点をおき、いくつか実験してみたいと思います。
まずは前回失敗した「オフィスで、30代くらいのメガネをかけたスーツ姿の黒髪の日本人OLが、デスクトップでタイピングしている」を使用し、
office, woman, japanese, 30s, shorthair, blackhair, glasses, suit, working, desktop
写真を理解させるものとして「realistic, ultra-realistic, film grain」の4つを使用してみたいと思います。
まずは、上記の4つの「写真」をイメージすることのないノーマルな画像から
DiffusionBee(ノーマル)

office, woman, japanese, 30s, shorthair, blackhair, glasses, suit, working, desktop
まぁ、こんなもんか・・・。
これまでの経験上「desktop」が邪魔をしている感がありますね・・・。
しかし、かつて「イラスト」「写真」を指定せず「forest, japanese girl, shirt」だけで作り出してくれた、以下のようなクオリティくらいにはしてくれよ・・・。

こんな感じだと「写真」クオリティの生成にかなりの不安を感じてしまいますが、まぁ、それはおいといて実験してみましょう。
DiffusionBee(写真クオリティ4)
realistic

realistic, office, woman, japanese, 30s, shorthair, blackhair, glasses, suit, working, desktop
さっきよりも「写真」よりになったとはいえ、目が黒目でちょっと怖い、使えるレベルじゃないですね。
ultra-realistic

ultra-realistic, office, woman, japanese, 30s, shorthair, blackhair, glasses, suit, working, desktop
まぁ、まぁ、ここまでの流れから、こんな感じになるのは想定内。PS1からPS2になった感じですかね。
「写真」の観点からは進化していると言えば進化しているのですが、さらに「怖い」印象に。
film grain

film grain, office, woman, japanese, 30s, shorthair, blackhair, glasses, suit, working, desktop
「Film grain」というのは、映像業界の用語で「フィルムの粒子やそれによるノイズ」の事のようで、これで「フィルムらしさ、フィルムの味、映像のざらつき、映像の質感や立体感」を出したかったのですが・・・。
とはいえ、先の「ultra-realistic」と「Film grain」を合わせて2で割れば、なんとなく写真感が出そうな感じもあるので、ちょっと試してみます。
「ultra-realistic」と「Film grain」合わせ技!

ultra-realistic, film grain, office, woman, japanese, 30s, shorthair, blackhair, glasses, suit, working, desktop
期待した私がバカだった・・・。
とはいえ、構図などは結構好きな感じですし、視力の悪い人が「裸眼でみた感じ」くらいには仕上がっているのではないでしょうか。
しかし、これではかなり厳しいですね。
驚愕の事実
今回、これまで生成してきた画像は、なんとなく全部似たような感じで、あまり変化がないなぁと思っていたら、なんとDiffusionBeeは「過去の生成条件」に引きずられるのだそうで、これは拡散モデルの挙動としてごく真っ当な現象なのだとか!
どうやら「似たプロンプト、似た設定」を使うと、結果も似てくるのだそうで、つまり、これまでの写真クオリティだけを変化させて作ろうとしていたものは、「DiffusionBee(ノーマル)」で生成していたものに影響を受けているよう。
一応、ここまでの実験の設定として、過去に引っ張られないようSeedの設定は「-1」としていたのですが、Seed -1 は「過去に引っ張られないための必要条件」ではあるが「十分条件」ではないようで、どうやら以下のような法則があるようです。
- 偶然性を出す → Seed = -1
- 良い絵が出たので微調整 → Seedを数値で固定
- 「同じ顔が出る」ループを断ちたい → Seed = -1 + プロンプト順序変更
いやはや、こうなると「プロンプトの頭だけ変え、あとは同じ」だとどうしても画一的になってしまうのは仕方のないことなのですね・・・。
今回もまた勉強になりました・・・。
しかし、やりたいことをやり遂げる前に、別の課題が出てくるとは・・・。
こうなったら次回、これまでのDiffusionBeeでの生成で、どこに出しても恥ずかしくないクオリティを叩き出した「forest, japanese girl, shirt」をもとに「Seedを数値で固定」して、どこまでできるのかに挑戦だ!!
