見出し画像

★有料級!?約5,000文字!StableDiffusionXL(SDXL)×AnimagineXL3.0を使ってみた体験レポート!

長らく画像生成AIから離れてしまっていて、基本的にこれまでのこともリハビリしなければいけない状態なのですが、それならいっそのこと…!ということで、それでもだいぶ周回遅れですが、かなり前に話題になったStableDiffusionXL(SDXL)について、ようやく自分も触ってみたい…!と、いつも通り、記事を書きながらやりながら、体験レポートを作成してみたいと思います…!

私が調べたことや、やってみた手順そのままに記事が流れていく(はず)なので、同じようにやってみたい…!という方はぜひ参考にしてみてください(*・v・)!

StableDiffusionXL(SDXL)とは?

Stable Diffusionは、XL以前にいくつかのバージョンがあって、初期のバージョン(Stable Diffusion 1.x)、次にリリースされた2.xシリーズ、その次のバージョンとしてXLが登場!ということは追っていたのですが、登場した当時は、いまいち初期の1.x系からバージョンアップするメリットが分からない(これは2.xも同様)という感じで、ずっと導入を見送っているうちに、そもそもしばらく画像生成AIを触らなくなってしまったという…

以前のバージョンとXLバージョンとの比較としては、デフォルトの画像生成サイズが4倍の1024x1024pxでトレーニングされていて、画質や生成精度が大幅に向上。最初から高解像度の画像を生成しても、人体の形状が崩れたり背景が不自然になったりしにくいのが大きなメリット!

ただ、その分GPUのメモリがたくさん必要だったり、1.xを使っている環境(LoRaとかその他設定みたいなところ)になじまないみたいな話もあって、導入を見送っていた…という感じもあります。

そんな中、1.xで活用していたControlnetやLoRAなどを活用できるアニメ調モデル(今回使ってみる「AnimagineXL3.0」)が出た時点でSDXLがかなり盛り上がっていたのは肌で感じていて、ただただ見送っていた…という経緯です…!

私の現状の作業環境

…さて、長らく自分でも画像生成AIのローカル環境を触れていなかったので、自分の振り返りのために以下とても簡単に使用しているStable Diffusionとグラボ環境を記載しておきます…!

■使用しているStable Diffusion
SDwebUI(a1111版):version: v1.3.1

■使用しているグラボ
NVIDIA GeForce RTX 3090(24GB)

私が使っているグラボ(RTX 3090)については、メモリが24GBということですが、RTX4000番台の24GB以下のメモリのものより快適か?と言われるとそうでもない…という比較もあったりしつつ、そこそこ中級~ハイスペック手前?くらいのレベルみたいです。そこまで高くなくても、他の方の記事を見ると、12GBのメモリのものでもSDXLの動作は出来るとのこと…!

SDwebUI(a1111版)のバージョンアップが必要だった…

Stable Diffusionをローカル環境で使用するには、Stable Diffusionというプログラムのかたまりを人間が操作しやすくするUI(ユーザーインターフェース)が必要なわけですが(なぜか急に自分向けに復習)。その一つに、おそらくほとんどの人が使っていると思われる、SDwebUI(a1111版)というのがありまして、これにもバージョンがあるのですが、上の通り私のバージョンが1.3.1で、SDwebUI(a1111版)がSDXLを扱うには1.6.0以上が必要とのこと…!

このSDwebUI(a1111版)のバージョンアップというのが、実は毎回肝を冷やす(私だけ?)作業で、なかなか億劫なんですよね…

そもそも他のソフトウェアみたいに、完璧に正式なインストーラーがあるわけではなくて、PythonとGitをインストールして…みたいな仕組みの中で、CUIをベースにインストールする感じ(ただしこれらをクリックだけでやってくれるツール(バッチ?)もあるにはある)、コマンドというテキストの命令を走らせるとなぜか文字がぶわーと出てきて、気が付いたら更新されている…みたいな感じで、もしエラーが出てしまうと、謎の英語のエラーと戦ったりしなきゃいけないし、これまで使えてたツールが使えない(:_;)みたいになっちゃうので、毎回おっかなびっくりなんですよね…

私の場合、もともとどうやってインストールしたか記憶があいまいだったのですが、以下の記事にお世話になって、以下の手順で簡単にバージョンアップできました…

1.自分のPCの『stable-diffusion-webui』フォルダで右クリック→『Git Bash Here』を選択

2.コマンドプロンプトみたいなのが立ち上がるので、【git pull】と入力し、Enterキーを押す

3.いつも通りStable Diffusion Web UIを起動

…ちなみに↑の1.のGit Bashというのは、自分の場合Stable Diffusionの導入初期に自分でインストールしたから存在してたのかも…?なのですが、右クリックしても出てこない方はこちらの記事を参考にすると導入しやすい…?かも?

AnimagineXL3.0をダウンロード

なんとかSDwebUI(a1111版)をバージョンアップできたので、次に↓のリンク「animagine-xl-3.0.safetensors」をダウンロードしました。

ダウンロード出来たらSDwebUIの「models\Stable-diffusion」フォルダ内に保存。

必要なライブラリ【diffusers】【transformers】をインストール

その他必要なものはないかな…?と、AnimagineXL3.0のページ(日本語表示)して導入方法を読んでみたら、必要なライブラリがある…?みたいだったので、これをインストール…!

1.自分のPCの『stable-diffusion-webui』フォルダで右クリック→『Git Bash Here』を選択

2.コマンドプロンプトみたいなのが立ち上がるので、【pip install diffusers --upgrade】と入力(コピーして右クリックでペースト)し、Enterキーを押す
※少し待って、「$」マークが出たら完了

3.続けて、【pip install transformers accelerate safetensors】と入力(コピーして右クリックでペースト)し、Enterキーを押す
※少し待って、「$」マークが出たら完了

早速AnimagineXL3.0を使って画像生成をしてみた

これで必要な環境はそろった(はず)なので、いつも通りStable Diffusionを起動して、モデルに「animagine-xl-3.0.safetensors」を選択。

このモデルの基本サイズは1024*1024で、以下のネガティブプロンプトが推奨されているようなので、以下で出力してみました。

■プロンプト
1 girl

■ネガティブプロンプト(公式推奨)
nsfw, lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry, artist name

■その他設定

そして出てきたイラストがこちら

確かにアップスケール(Hires.fix)を使わずにこのサイズのこの細かさでイラストが生成できるのはこれまでの1.x系のモデルにはなかった!と個人的に驚きです!!!

SD1.5系で自分で作ったLoraがSDXLでは使えない…!

無事SDXLならびにAnimagineXL3.0が使えるようになった!ということで、オリジナリティを出すべく、以前以下の記事で作成した自作Loraを適用しようとしたのですが、SD1.5系をベースに作ったせいか、SDXLのモデルを選択していると、自然とこのLoraが選べなくなってる(使えない)ようで、これは改めてSDXL用のLoraを作る必要がありそう…

これは次回以降の課題として今回はいったんあきらめるとして、構築できたAnimagineXL3.0の環境でもう少し遊んでみたいと思います…!

自キャラっぽいプロンプトで画像生成してみる

Loraはつかえませんでしたが、以前↓の記事で生成した自キャラ画像を解析したプロンプトで画像生成をしてみました!

出てきた画像がこちら!

私っぽい画像が簡単に出力できました!

指の本数がやや残念だったりはありますが、こんな簡単な指示でここまでのクオリティのイラストが簡単に出せるのはかなり大きい…!

ChatGPT(Dall-E3)からの自キャラLora書き換えがとてもはかどりそう…(なのでSDXL用のLora作成を急ぎたい…!)

自キャラっぽいプロンプトでいろいろ試してみる

更にもう少しSDXLとAnimagineXL3.0の性能を確かめるために、↑の自キャラプロンプトから他の設定をいじってみて生成してみたいと思います!

CFGスケールを変えてみる

なんとも微妙な差を感じつつ、推奨が5~7ということで、まあそのくらいなのなかぁ…と思いつつ、なんでこんな幼い感じなのかと気になる感じ…(おそらく解析プロンプトのせい)

クオリティタグを変えてみる

AnimagineXL3.0には公式にクオリティタグ(プロンプトに入れると品質が変わる)が以下のようにあったので、この違いを試してみました!(CFGスケール:9)

傑作: masterpiece
最高品質: best quality
高品質: high quality
普通品質: normal quality

確かにmasterpieceの描きこみが細かい気がしますが、best qualityくらいでもいいかな…!

CFGスケールとクオリティタグを掛け合わせて比較してみる

こうしてみるとmasterpieceのCFGスケール7くらいが好みかも!

サイズを縦長にしてみる

どれもなかなか捨てがたい感じになりました!!!

縦長+もっと大きいサイズの画像にしてみる

出力サイズを以下のサイズくらい大きくしたので、指の崩壊とか、ツインテールがぐるぐるになりすぎてる感など、やや私のグラボの限界を感じつつ、とにかく出力サイズがでかきゃええねん!みたいな、最後はサイズが命的なハイクオリティを感じました…!指もなんとか自分でクリスタ等で修正可能なレベルかと思うし、Hires.fixなしでこれはすごい…!

まとめ

…ということで、今回はここまで!にしたいと思うのですが、本当に数か月振りにStable Diffusionを触ってみたリハビリがバージョンアップとか新規モデル導入だったのでなかなか大変でしたが、念願のSDXLデビューと気になってたAnimagineXL3.0を使えるようになってほんとよかったです(*・v・)!!

最後はやっぱり、出力サイズがでかいほどいいんだよなぁそういえば…というパワープレイ感もありましたが、でもHires.fixを使わないので、これまでHires.fixを使っていたサイズ感の限界に近いところで最初からハイクオリティなイラストが出力できるし、なにより出力されるイラストのテイストが自分好み!ということもあって、この環境はしばらく活用できそうです!!

今後SDXL用のLora作成も絶対やってみたいと思います!





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