文字列から絵を書いてくれるAI。最近流行ってますね。
Stable Diffusion、Dall-E2、Midjournyなどありますが、
今回はStable Diffusionをローカル環境に構築して実験したものになります。
少し考えれば当たり前ですが画像サイズによって画質や絵の緻密さが大きく変わるんですよね。
ふと気になってどれくらい変わるのかを比較してみたくなりました。
ご興味があればお付き合いください。
実験環境
実験を行った我が家のPCのスペックは以下の通りです。
内容 | 詳細 |
---|---|
OS | Windows 11 Pro |
CPU | 12th Gen Intel(R) Core(TM) i5-12400 2.50 GHz |
メモリ | 32.0 GB (31.8 GB 使用可能) |
GPU | NVIDIA GeForce RTX 3060 12GB |
確認できた幅と高さの組み合わせ
僕の環境では以下の幅・高さの画像生成(txt2img)を行うことができました。
640×320または320×640がピクセル数最大です。
幅 | 高さ | ピクセル数 | 出力成功or失敗 |
---|---|---|---|
128 | 128 | 16384 | × |
192 | 192 | 36864 | × |
256 | 256 | 65536 | 〇 |
320 | 320 | 102400 | 〇 |
892 | 128 | 114176 | 〇 |
128 | 896 | 114688 | 〇 |
128 | 960 | 122880 | 〇 |
960 | 128 | 122880 | 〇 |
128 | 1024 | 131072 | 〇 |
1028 | 128 | 131584 | 〇 |
192 | 704 | 135168 | 〇 |
704 | 192 | 135168 | 〇 |
192 | 768 | 147456 | 〇 |
256 | 576 | 147456 | 〇 |
384 | 384 | 147456 | 〇 |
576 | 256 | 147456 | 〇 |
192 | 832 | 159744 | 〇 |
832 | 192 | 159744 | 〇 |
192 | 896 | 172032 | × |
704 | 256 | 180224 | × |
576 | 320 | 184320 | × |
512 | 384 | 196608 | 〇 |
448 | 448 | 200704 | 〇 |
320 | 640 | 204800 | 〇 |
640 | 320 | 204800 | 〇 |
576 | 384 | 221184 | × |
704 | 320 | 225280 | × |
画像の比較
高さ、幅以外すべて以下のプロンプトで比較しています。
※–W:幅 –H:高さ xxxxにはサイズを表す数字が入ります。
scripts/txt2img.py --prompt "cat" --plms --n_iter 1 --W xxxx --H xxxx --seed 1 --ddim_steps 100
では、ピクセルのサイズの小さいものから順にいきます。
256×256(65536px)
384×256(98304)
320×320(102400px)
704×192(135168px)
384×384(147456px)
576×256(147456px)
832×192(159744px)
512×384(196608px)
448×448(200704px)
640×320(204800px)
おまけ縦長
192×704(135168)
384×512(196608)
320×640(204800)
まとめ
いかがでしたでしょうか?
とあるサイトを参考に構築したので最初384×256(98304px)のサイズで検証していました。
そのサイズでは少しStable Diffusionで遊ぶには画像の品質的に問題がありそうです。
大きいサイズの方が画質が上がるのは当然ですがネコの精度も違うように見えます。
ピクセル数が大きくなればより緻密な絵が描けるということでしょうか。
また、縦長画像は横長もしくは正方形に比べ
どうも造形に違和感を感じるものが多いように感じています。
結論付けるのはまだ早いですが今後検証が必要です。
おわり
コメントを残す