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を使ってみたりでいろいろ試してみたいと思います。