ComfyUIでStabble Cascade の生成速度・VRAM使用量測定(GPU: NVIDIA L4

画質比較はこちら


注意)
対応してすぐのComfyUIバージョンを使っているので、品質や速度で改善される場合がある(というか描いている時点で品質的にもう改善されているようだ。早すぎる(笑))。
当面の間、Stable Cascadeの最新情報は下のURLに書かれると思われる。

筆者はAIと仕組みとか全然わからない素人なので、間違った評価をしたり、無意味な測定をしている可能性がある。

まとめ

測定結果の注目すべき点をまとめる。
速度測定の結果から、--highvramが何故か--gpu-onlyと同じ速度で、より少ないVRAM使用量だった。
また、VRAM使用量の測定結果から、VRAMが8GB以下でモデルをVRAMにキャッシュしたい場合は、ComfyUIを--highvram, --fp8_e4m3fn-unetオプションで起動し、stage cとstage b または stage b liteを使うと良さそう。
(※ fp8オプションを使用するにはpytorchバージョンが2.1.0以上である必要がある。)
しかし、画質は--bf16-unetオプションの方が良い。
fp8オプションでは、モデルはbf16でない方が画質がよい。

TODO: 画質比較を後で出す。

測定方法

ComfyUIのvramオプションを使用し、最大メモリ使用量を見る。
VRAM測定はコマンドを使用。 `watch -n 0.2 nvidia-smi`
速度測定時は上記コマンドを使用しない。
stage c,b 以外の読み込み時間測定は、obsで60fpsで画面録画し、davinci resolveでフレーム単位で測定。
Queue Promptボタンを押してQueue sizeが0から1になったフレームから、ターミナルでの画像生成のプログレスバーが表示されたフレームまでの時間を測定。
ram使用量はhtopを使用。
comfyanonymous氏のワークフローを利用。

マシンスペック

Google Cloud / Compute Engine

  • CPU: Intel Cascade Lake世代 4コア8スレッド

  • GPU: NVIDIA L4

  • Storage

    • Type: バランス永続ディスク

    • Size: 301GB(95%使用済み)

    • Speed: 449.05 MB/s

  • RAM: 52GB

  • Geekbench6 score: https://browser.geekbench.com/v6/cpu/4992804

    • シングル: 1016

    • マルチ: 3871

ソフトウェアバージョン

  • Ubuntu 22.04.4 LTS

  • ComfyUI commit 8b60d33bb7ce969a53fc5e25bfa0e2dca7a17b23

  • Python 3.11.0rc1

  • CUDA 12.3

  • Torch関連

    • pytorch-triton 3.0.0+901819d2b6

    • torch 2.3.0.dev20240216+cu121

    • torchaudio 2.2.0.dev20240216+cu121

    • torchsde 0.2.6

    • torchvision 0.18.0.dev20240216+cu121

アプリ起動前のメモリ使用量

VRAM <= 4mib
ram < 480M

モデル名略称

c16 = stage c bf16
bl = stage b lite

参考リンク

ComfyUIの起動オプション
https://github.com/comfyanonymous/ComfyUI/blob/dccca1daa5af1954d55918f365e83a3331019549/comfy/cli_args.py

ワークフロー
https://gist.githubusercontent.com/comfyanonymous/0f09119a342d0dd825bb2d99d19b781c/raw/b6ce94d01bfab93a335d220ea38cd48fe9e29646/stable_cascade_workflow_test.json

測定1. モデルロード時間

bf16-unet

結果、bf16モデルのほうがプロンプト受付から生成開始まで早い。
また、stage b,c 以外の読み込みに3秒かかっていることがわかる。
無印とliteではliteのVRAM使用量が1600mib少ない。

| stage\measure. | load (sec)              | stage c, b speed (it/s) | vram (mib) |
| -------------- | ----------------------- | ----------------------- | ---------- |
| c, b           | 7.06                    | 4.41, 2.15              | 13094      |
| c16, b16       | 6.06, 9.10(total)       | 4.41, 2.16              | 13094      |
| c16, bl        | 5.41, 5.13, 8.17(total) | 4.45, 5.03              | 11494      |
| c16, bl16      | 5.14                    | 4.44, 5.03              | 11494      |

fp8_e4m3fn-unet

結果、無印とliteではliteのVRAM使用量が800mib少ない。blなら生成速度が2.3倍早い。
なぜか c, blのVRAM使用が低い。

| stage\measure. | load (sec)        | stage c, b speed (it/s) | vram (mib) |
| -------------- | ----------------- | ----------------------- | ---------- |
| c, b           | 4.47              | 3.79, 2.03              | 8208       |
| c16, b16       | 4.12, 7.11(total) | 3.75, 2.01              | 8208       |
| c16, bl        | 3.31              | 3.82, 4.63              | 7408       |
| c16, bl16      | 3.41, 3.28        | 3.79,4.60               | 7408       |
| c, bl          | 4.03              | 3.75, 4.63              | 7376       |

測定2. トータル生成時間

lowvram はメモリ削減なし。normalvramとほぼ同じ結果。
total sec は5回平均。first totalsecはアプリ起動時1回目の記録の1回のみ測定。
複数の数字表記は再測定した項目。

bf16-unet

highvram c,b はロード後、gpu-onlyとほぼ同じ速度でVRAMが低い。

| option     | model | total (sec) | first total (sec) | vram (mib) |
| ---------- | ----- | ----------- | ----------------- | ---------- |
| gpu-only   | c, b  | 9.43, 9.50  | 19.94, 20.00      | 13094      |
| gpu-only   | c, bl | 7.45        | 17.27             | 11494      |
| highvram   | c, b  | 9.38, 9.51  | 22.27             | 11654      |
| highvram   | c, bl | 6.73        | 18.55             | 9990       |
| normalvram | c, b  | 14.28       | 21.84             | 10694      |
| normalvram | c, bl | 11.60       | 18.91             | 9062       |

fp8_e4m3fn-unet

| option     | model | total (sec) | first total (sec) | vram (mib) |
| ---------- | ----- | ----------- | ----------------- | ---------- |
| gpu-only   | c, b  | 10.56       | 19.46, 18.94      | 8208       |
| gpu-only   | c, bl | 7.83        | 15.16             | 7376       |
| highvram   | c, b  | 10.61       | 21.12             | 6960       |
| highvram   | c, bl | 7.90        | 17.53             | 5936       |
| normalvram | c, b  | 12.32       | 19.60             | 5808       |
| normalvram | c, bl | 7.83        | 14.42             | 5936       |

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