🐷
stable-diffusion.cpp で CPU で FLUX.1 Schnell を動かす
Flux.1 しゅごいね...
しかし十分な GPU 持っていないユーザーでもちょっと試したいときがある...
stable-diffusion.cpp で Flux.1 対応されたので CPU で動かしてみます!
手順
cmake でフツーにビルドします.
weight とか取得します. 特に難しいことはありません.
FLUX dev は登録とかいるので, とりあえずは vae は Schnell のを使います.
https://huggingface.co/black-forest-labs/FLUX.1-schnell/tree/main/vae
生成する
q8 版を使いました.
WSL2 で, メモリは 24 GB 程消費, Ryzen 3900X 12 threads(CPU usage 50%)で 75.57s/it くらいでした.
./build/bin/sd --diffusion-model models/flux1-schnell-q8_0.gguf --vae ./models/ae.safetensors --clip_l ./models/clip_l.safetensors --t5xxl ./models/t5xxl_fp16.safetensors -p "a lovely cat holding a sign says 'flux.cpp'" --cfg-scale 1.0 --sampling-method euler -v
Voila~
20 iters, 512x512(upscale 前) で 1440 secs(~= 25 分ほど)
さすがに CPU だけだと時間かかる感じですが, Ryzen 9950X とかなら GPU(4070 あたり?)の 1/3 ~ 1/4 くらいは見込めそ?
TODO
- メモリに余裕があれば fp16 とかで動かしてみる(q8 以下の quantize だと毎回デコードとかで CPU だとボトルネックになりそう)
- CPU でフレキシブルなのを生かして, 生成状態を プログレッシヴ に表示できないか調査する
- BLAS などアクセラレーション有効でどれくらい改善するか試す.
-
GPU ありで動かしてみる
- https://pc.watch.impress.co.jp/docs/column/nishikawa/1618411.html
- GGUF フォーマットは ComfyUI でも動くので, ComfyUI でも動かしてみる
-
CPU マイニングしつつ, CPU サーバで画像生成代行業してがっぽがっぽしたい
- GPU 処理である程度設定詰めて, 夜間バッチ処理で高品質なの生成とか
Discussion