どのくらい快適になるのか楽しみです
とりあえず,画像生成してみました
セットアップに結構時間がかかりましたが,何とかStable Diffusionが使えるようになりましたので画像生成しました。気になる生成時間は512x768ピクセル,25stepで1枚8秒程度(ターミナルの画面では4.0it/sくらい)でした。今まで1枚2分程度の時間がかかっていたので,15分の1に短縮されました。なかなか感動的な速さです。
参考サイトと比較すると
今までと比較するととっても速くなってうれしいところですが,こちらのサイトのベンチマーク結果と比較すると遅いので,設定が悪いのかもしれないと思い,以下のようなチャレンジをしてみました。
cuDNNファイルを入れ替える
こちらのサイトの記事を参考にして実施し,512x768ピクセル,30stepで5枚の画像の生成速度を比較しました。
入れ替え前(41.5秒,4.12it/s)→入れ替え後(40.6秒,4.19it/s)
微妙に速くなりましたが,誤差の範囲くらいです。別のWebサイトの記事にTorch2系だと入れ替える前のファイルも比較的新しいため効果が薄いとあったので,私の環境でも同じようです。
起動バッチファイル(webui-user.bat)の設定をチェック
高速化に有効とされる設定をいろいろ変更しながら512x768ピクセル,30stepで5枚の画像の生成時間を調べてみました。
- 何もなし( 55.9秒,2.9it/s)
- --xformers(45.3秒,3.65it/s)
- --xformers --opt-channelslast (45.0秒,3.8it/s)
- --xformers --no-half-vae(45.7秒,3.65it/s)
- --opt-sdp-attention(29.6秒,5.85it/s)
- --opt-sdp-no-mem-attention(72秒,2.2it/s)
- --opt-sdp-attention --opt-sdp-no-mem-attention(29.0秒,6.05it/s)
- --opt-sdp-attention --opt-sdp-no-mem-attention --opt-channelslast (28.8秒,6.18it/s)
- --opt-sdp-attention --opt-sdp-no-mem-attention --opt-channelslast --no-half-vae(30.2秒,6.15it/s)
画像サイズとステップ数のみ固定でプロンプトやモデルは異なるので数値は参考程度です。最初は今まで通りの設定で--xformersを使っていたのですが,--opt-sdp-attentionに変更したところ,一気に高速化されました。何回かチェックしていくと8.1it/sあたりの数値を出すこともありましたので,最初の状態と比べても速くなったことが分かるくらいの変化でした。
ベンチマークで比較してみました
前出の参考サイトにあるAyaka Benchmarkを2台のPCで実行して比較したところ,809秒(0.26it/s)→35.4秒(6.84it/s)とかなりの高速化となりました。
上が今まで使っていたPC,下がNEXTGEARです,
このテストで生成された画像を比べると,設定は同じなのですが異なる画像になりました。以前見たWeb上の記事にGeForce2000番台までと3000番台以降だと同じ設定でも生成される画像が異なるという内容があり,今回比較した2台はGTX1650とRXT4060Tiなのでこれに当てはまるようです。
しばらくはこの設定で使うことにします
今回のチャレンジの結果,よく使う設定で画像を生成して1枚3~5秒となかなかの好結果になりました。Generateボタンを押して待ち時間なくすぐに画像が生成されるので,プロンプトを変更して試行錯誤したり,うまく生成されない部分を修正する作業が簡単にできるようになりました。
私のPCはCPUのスペックが低いので,GPUの性能が十分に引き出せないというWeb上のレビュー記事もみていたので気になっていたのですが,今のところ満足できる速度で画像生成できるようになったと感じています。
今後は使いながら必要に応じて設定を見直していきたいと思います。
この記事へのコメント
コメントはまだありません。
コメントを送る