【SDXL】animagine-xl3.0を触ってみた感想
SDXLについて
SDXLが公開されてもう何ヶ月も経ちました。公開された当初に一回触ってみたものの、パラメータの設定など慣れない部分があることと、生成結果がいまいち気に入らなかったことでSD1.5ベースのモデルをメインに使い続けることにしました。
先日、SDXLがベースのanimagine-xl3.0という大変人気のある素晴らしいモデルが公開されたことがきっかけに、親切の方々からパラメータの設定などを教えていただき、漸くSDXLデビューしたといったところです。
そのため、この感想文もanimagine-xl3.0をタイトルに入れたものの、もしかするとSDXLそのものに関する感想になってしまうかもしれません。
また、後半では現状で少し残念なところにも触れますが、それはanimagine-xl3.0に対する批判ではなく、あくまでSD1.5モデルを使い慣れた身として、多少違和感を感じただけのことです。
良い点
圧倒的な言語理解力
多分SDXLを触った方が全員まず思うところでしょうが、やはり言語理解力が強いです。
具体的に言うと、SD1.5ではLoRAなどの力を借りないと表現しにくいようなタグがポンと入れるだけでちゃんと表現してくれます。その辺はSDXLが公開された初期に多くの方が比較しているのでここでは割愛しますが、私のお気に入りのうさ耳ポーズ(サムネ画像のようなポーズ)が表現できることが感動的でした。
うさ耳ポーズはDanbooruタグが(多分)存在しないので、SD1.5で出そうとして色々と工夫してきました。それがSDXLでは「usamimi pose」でそこそこの高確率で出せます。確実に出るわけではないので、おそらくAI的にはusamimi poseそのものを理解できたというより、「rabbit earsが存在する時に取れそうなpose」のような近似的な概念を理解していると思います。実際、うさ耳ポースが出ない時もpaw poseや以下のような可愛らしいポーズが出ます。
ただ、全てのSDXLがこれを実現できるかというとそうでもないようで、他にもいくつかDL数が多いものを試したが、animagineより低確率か、数十枚のトライのうち全くでなかったものもありました。まあ、二次元カルチャが絡む内容であればanimagineがとても優秀ということですね。
プロンプトが思うままに
従来のSD1.5でもプロンプトの書き方に関する考察が多く行われましたが、結局のところ、単語で羅列するのも、自然言語で記述するのも、AIができることといえば「その中からわかる概念を抽出して、規定の優先順位で表現したり、しなかったりすること」だったと個人的に思います。
故に、SD1.5のプロンプトに対して私が出した結論は「細かく生成したいもののイメージをAIに伝えるより、画面に何が映っているのかを端的に記入したほうが効果的」ということになりました。例えばカップルがデートするイラストを出したい時に、「date」なんか入れたら下手するとカレンダーが出てくるので、「1boy and 1girl, walking, talking, happy」みたいな頭悪そうなプロンプトが効果的です。
ところが、SDXLでは本当に頭に浮かぶことをそのまま記述するだけで、まあ余程独特なものでない限りにはAIがそれを汲み上げてくれると思います。
例えば前述のうさ耳ポーズ、実は最初のところ、Danbooruタグがないからどうせ出ないだろうと思い、「raise both hands up to head」みたいな感じで書いたらそれはそれでうさ耳ポーズにはなりました。また、「left hand is… , right hand is…」みたいなSD1.5ではやっても無駄な指示でもそこそこの確率でその通りになります。
そのため、SDXLはAIイラスト初心者には一番おすすめできるモデルの系統ではないかと思います。SD1.5は狙った構図を出すために色々工夫をしないといけないし、nijiはぱっと見で綺麗な絵にはなるものの、あまりにもカスタマイズが効かないし高いし…
表現が大幅に改善された
今までのSD1.5では、ディテールを増やしたり、彩度、コントラストを調整したりするモデルやツールが多くの方のデフォルト設定になっていたのではないかと思います。私自身もControlNetのLineArtでノイズに刻みを入れるという「ドット法」をデフォルトで使ってディテール調整してきました。
こちらの画像はアニメ調LoRAとドット法を併用し、アニメ調で表現しつつ、全体的にシンプルになりすぎないようにするというマイブーム的なやり方で出したイラストです。
これのプロンプトをそのままanimagineで生成すると、
雰囲気が全然違うのは、プロンプトの中にあるhorrorなどがSDXLにおいて強く表現されたため、気にしなくて大丈夫です。肝心なのは、ドット法やディテール増強のLoRAやツールを一切使わず、この細かさですよ。SD1.5のディテールを増やす系を強く入れすぎると汚くなると悩み、ディテール調整でいつも苦戦する私もにっこりです。
気になった点
書き分けがまだ弱い
言語理解力が高くなったSDXLですが、一つのプロンプトに二人以上の人物のそれぞれの特徴を描写すると混ぜ混ぜになってしまうAIイラストの短所が健在です。ただ、SD1.5よりは明らかにAIが「このプロンプトは二人の人物を描写している」と理解できた感じが伝わります。
版権キャラでテストしたのでここでは画像を貼りませんが、ゲームに登場するキャラクターを二人指定し、別々のものを持たせて、異なる表情をさせるプロンプトで生成したら、やはり二人の特徴が合わせたキャラが二人出てきて、同じものを持って同じ表情をしていました。
しかし、混同の程度がSD1.5と大きく異なりました。というのも、顔だけはどう見てもキャラAに寄せたキャラとキャラBに寄せたキャラにはっきりと分けられていました。もっと具体的に言うと、キャラAには特徴的なヘアピンがあり、キャラBには特徴的なヘアゴムがあります。これらの特徴は確実に二体のキャラに一つずつ配置されて、両方についていることはありませんでした。もしかしてもう少しプロンプトの順番や強調を変えると完璧に書き分けができるのではないかと思わせるぐらいの進歩でした。
まあ、色々やってみたが、できませんでした…
アップスケイルの方法
SD1.5の場合、元の構図や描写をほとんど変えずにアップスケイルできるMultiDiffusionという追加機能があります。それがSDXLにまだ対応していないようで、実行しようとするとkey_errorが出ます。Pythonのキーエラーでいうと呼び出そうとするキーが存在しないことでしょうから、SDXLに対応する部分が実装されていないのではないかと思います。
ではSD1.5のモデルを使ってアップスケイルすればいいじゃないかと思いましたが、やってみるとSDXLモデルの前述のような表現の良さが掻き消されました。できなくはないですが、納得できるかどうかは人それぞれだと思います。
ではどうやってアップスケイルかというと、少し調べてみた限り、Extrasが良さそうな気がしました。ExtrasはAuto1111 WebUIのデフォルト機能ではあるものの、正直今まで一回も使ったことがありません。実際使ってみると、恐ろしく早いスピードアップスケイルし、ほぼSDXLの生成結果を変えない優秀な機能でした。
ただ、調整できるパラメータの数が少なく、うまく調整できるようになるまでたくさん試さないといけないので、やはり「これを使って」と言われると少しストレスを感じます。そのうち慣れるでしょうし、MultiDiffusionあるいは同じ機能の別ツールのXL対応版がでるでしょうから、問題というほどでもないですが、新しい事物を受け入れる能力に長けていないせいか、やはり少しモヤモヤします。
まとめ
長々と感想を述べてきましたが、一言でSDXLあるいはanimagineを評価すると、やはりAIイラストを生成している全員が触ってみるべき素晴らしい進化だと思います。これを言うのも今更で、この数ヶ月の中ですでにSDXLの生成をマスターした方も多くいらっしゃるのでしょう。ただ、もし私みたいになかなかSDXLに手を出さずにいた方がいれば、ぜひanimagineをダウンロードして試してみてください。
この感想文を最後までお読みいただき、心から感謝申し上げます。
この記事が気に入ったらサポートをしてみませんか?