見出し画像

StreamDiffusionを試したので記録(RTX4070 12GB)

こんにちは、ニケです。
今回は久々に3Dモデルを使ってみます。

あき先生が数週間前に発表したStream Diffusionの論文が発表され、リポジトリが公開されたました。
今回はその中の「スクリーンキャプチャをリアルタイムでimg2imgする機能」を試してみたという記事です。

やり方自体はリポジトリのドキュメントがめちゃわかりやすくて最強なのであまり触れません。

動作環境

【CPU】Intel(R) Core(TM) i7-9700F CPU @ 3.00GHz 3.00 GHz
【メモリ】64.0 GB
【電源】1000W
【グラフィックボード】GeForce RTX 4070 12GB
【OS】Windows 11 Home

【仮想環境】anaconda
【CUDA】12.1

開発者向けで実行しました。

結果

examples/screen をそのままの内容で実行した場合

FPS10前後でした。
ちなみに、メガネっ子になるのはプロンプトに thick glasses が含まれているためです。

プロンプトの修正は examples\screen\main.py で直接変更するか、--prompt <任意のプロンプト> で可能です。

下記は thick glasses をなくしたバージョンです。

TensorRT を使用した場合

python screen/main.py --acceleration tensorrt というオプションを付けて、TensorRTで動作させると処理速度が上がるようです。

約2倍のFPS20まで上げることができました。

環境構築で躓いたとこ

TensorRTのインストール

下記コマンド実行時に一度失敗したのですが、失敗した後にもう一度実行したら問題なくインストールできました。

> python -m streamdiffusion.tools.install-tensorrt

TensorRTでの実行

下記のようなエラーが出たのですが、pywin32をアンインストール後に再度インストールしたらうまくいきました。

> python screen/main.py --acceleration tensorrt
 
(省略)
 
Traceback (most recent call last):
  File "F:\WorkSpace\StreamDiffusion\examples\screen\..\..\utils\wrapper.py", line 466, in _load_model
    from streamdiffusion.acceleration.tensorrt import (
  File "f:\workspace\streamdiffusion\src\streamdiffusion\acceleration\tensorrt\__init__.py", line 12, in <module>
    from .builder import EngineBuilder, create_onnx_path
  File "f:\workspace\streamdiffusion\src\streamdiffusion\acceleration\tensorrt\builder.py", line 8, in <module>
    from .utilities import (
  File "f:\workspace\streamdiffusion\src\streamdiffusion\acceleration\tensorrt\utilities.py", line 30, in <module>
    from cuda import cudart
  File "cuda\\cudart.pyx", line 1, in init cuda.cudart
  File "cuda\\cuda.pyx", line 1, in init cuda.cuda
  File "cuda\\ccuda.pyx", line 1, in init cuda.ccuda
  File "cuda\\_cuda\\ccuda.pyx", line 8, in init cuda._cuda.ccuda
ModuleNotFoundError: No module named 'win32api'
Acceleration has failed. Falling back to normal mode.
> pip uninstall pywin32
> pip install pywin32
> python screen/main.py --acceleration tensorrt

あとは特にエラーなくすぐに試すことができました。
とにかくドキュメントがすごくわかりやすかったのが最高です。

画像が破綻しがちなので、プロンプトを詰めたり、LoRAを使ってみたりでいろいろ試してみたいと思います。

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