メモリ8GBのAndroidでstable-diffusion.cppを使って超圧縮したSDXLでフルサイズの画像を生成します
やり方の解説はしていません
やっていることは過去の
「Termuxとstable-diffusion.cppを使って、メモリ3GBのスマホでSD1.5のLCMモデルで画像生成します」と
「メモリ8GBのMeta Quest 3Sを使って超圧縮したSDXLで画像生成する」の記事の合わせ技です
タグの #h_Tqの画像生成シリーズ から見ることができます
今回はそれらに加えてvae-tilingとTiny Auto Encoderを使うことで、少ないメモリでフルサイズの画像生成に成功しました
・使った機械。VRのMeta Quest 3S(OSはカスタムされたAndroid。性能はスマホと同等)。RAM8GB
・使ったアプリ。Android上でLinuxを使うTermux。Linux上で画像生成をするためのstable-diffusion.cpp
・非力なマシンで画像生成をする工夫。CUI操作。LoRAをモデルに統合。モデルをq3_Kに量子化。LCM LoRA。Tiny Auto Encoder。vae-tiling。
・作成した画像。832 x 1152サイズ。
・作成にかかった時間。50分
・使用メモリ。4812.93MB (内訳。CLIP 3119.36MB。UNET 1688.90MB。VAE 4.67MB)
・CPUで計算
・使用LCM LoRA。dmd2_sdxl_4step_lora.safetensors
・使用Tiny Auto Encoder。diffusion_pytorch_model.safetensors
・stable-diffusion.cppに投げる画像作成のコマンド
./sd-cli -m ./avocadoMIX_q3_K.gguf --taesd ./diffusion_pytorch_model.safetensors --type q3_K -H 1152 -W 832 --cfg-scale 1 --steps 6 --sampling-method lcm --seed -1 --vae-tiling --vae-tile-size 64x64 --diffusion-fa --control-net-cpu --clip-on-cpu --vae-on-cpu --offload-to-cpu -p "masterpiece, best quality, very aesthetic, newest, absurdes, anime style, high definition lineart, digital illustration, high quality, 8k resolution, detailed texture, vibrant colors, (bekkankou:0.5), memaxl6_a, girl. solo. looking at viewer. school uniform. mini skirt. Thighs."
今回はMeta Quest 3S上でのstable-diffusion.cppのビルドに失敗したので、過去にスマホで作ってあった実行ファイルを持ってきて使いました
そのため実際には上記のコマンドからいくつか過去のバージョンにはないオプションを外して使っています
stable-diffusion.cppのサイトを見ると画像作成にスマホのGPUを使用するビルドも用意されているので、もし使うことができれば生成時間は早くなると思われます
―――――――――――――――――――――――――――――――――――――――――――
stable-diffusion.cppはGUIに対応したので、Windows上での挙動の違いの比較
(CPUで生成。モデル q3_K。SDXL。画像サイズ832 x 1152。生成オプションは上のAndroidと同じ)
GUI(ブラウザ上で操作)
(起動前メモリ5.9GB。起動中最大使用メモリ10.6GB)
アプリの使用メモリ4.7GB
生成時間5分0秒
CUI (コマンドプロンプトで操作)
(起動前メモリ6.1GB。起動中最大使用メモリ8.2GB)
アプリの使用メモリ2.1GB
生成時間4分44秒
2.1GBの使用メモリだけを見るとメモリ4GBのパソコンでも画像生成できそうに見えます
だけどAndroidでは4.7GBを消費していたので、条件がよく分からないです
呪文
呪文を見るにはログイン・会員登録が必須です。