![見出し画像](https://assets.st-note.com/production/uploads/images/125314617/rectangle_large_type_2_c040058b5a399dd61c9911fd9ad410f6.png?width=1200)
StreamDiffusionを試したので記録(RTX4070 12GB)
こんにちは、ニケです。
今回は久々に3Dモデルを使ってみます。
あき先生が数週間前に発表したStream Diffusionの論文が発表され、リポジトリが公開されたました。
今回はその中の「スクリーンキャプチャをリアルタイムでimg2imgする機能」を試してみたという記事です。
大変お待たせしました!本日arXivにて公開された私達の論文「StreamDiffusion」について
— あき先生 / Aki (@cumulo_autumn) December 21, 2023
GitHubリポジトリの方も公開しました!100fps以上出すことも可能です!
詳しくは論文、リポジトリのREADMEをご確認ください!#StreamDiffusion
論文:https://t.co/4zQKFyPKgj
GitHub:https://t.co/U1ufvRR9cq https://t.co/5hO1UXT4Ya
やり方自体はリポジトリのドキュメントがめちゃわかりやすくて最強なのであまり触れません。
動作環境
【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 が含まれているためです。
#StreamDiffusion 試しました!!
— ニケちゃん@終生陰ジニア (@tegnike) December 21, 2023
RTX4070 12GBでFPS10くらいです
画像の質がやや悪いのはGPU不足かな🤔
そしてメガネっ子になるのはなんでなんだ…? https://t.co/GFLsfORqCP pic.twitter.com/NW8KeIjBy4
プロンプトの修正は examples\screen\main.py で直接変更するか、--prompt <任意のプロンプト> で可能です。
下記は thick glasses をなくしたバージョンです。
プロンプト修正してもう一度
— ニケちゃん@終生陰ジニア (@tegnike) December 22, 2023
大分キャラに寄せられるようになりました✌
なんなら3Dキャラよりかわいい()#StreamDiffusion https://t.co/QU5tO0GXcu pic.twitter.com/RihUj6OQVR
TensorRT を使用した場合
python screen/main.py --acceleration tensorrt というオプションを付けて、TensorRTで動作させると処理速度が上がるようです。
約2倍のFPS20まで上げることができました。
TensorRT使用してFPS20くらいまで持ってけました✌#StreamDiffusion https://t.co/QU5tO0GXcu pic.twitter.com/2lt6N1duKC
— ニケちゃん@終生陰ジニア (@tegnike) December 22, 2023
環境構築で躓いたとこ
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を使ってみたりでいろいろ試してみたいと思います。
この記事が気に入ったらサポートをしてみませんか?