週刊アスキー

  • Facebookアイコン
  • Twitterアイコン
  • RSSフィード

秒100枚の画像生成ができるという「Stream Diffusion」を動かそうとしたらたいへんだったお話

2024年01月03日 10時00分更新

いよいよ実行だ!!!

 Stream Diffusionにはすぐに試すことができるexamples(使用例)プログラムがいくつか用意されているので、READMEを読みながら試してみることにする。

optimal-performance

 まずは「optimal-performance(パフォーマンス最適化)」。TensorRTで最適化されたSD-Turboモデルを用いてtxt2imgを高速で実行するものだ。

python optimal-performance/single.py

 実行はターミナルからPythonファイルを実行するだけだ。

 TensorRTの焼き付け作業にかなり時間がかかるため、止まっているのではないかと心配したが、なんとか数分後にウィンドウが開き無事猫の絵が高速生成された。ちなみに使用されているプロンプトは「"cat with sunglasses and a hat, photoreal, 8K"」だ。

 おおおおお!!!あき先生のデモほど超高速ではないが、右下の表示を見ればわかるように、なんと33fps(フレーム/秒)を叩き出している。秒間30枚以上だ!!!いくら高速なSD-Turboモデルとは言えこれは異次元のスピードだ。

python optimal-performance/multi.py

 次に4枚同時に生成するバッチ処理を使ったプログラムを実行してみる。

 こちらではなんと58fpsを達成している。

Real-Time Txt2Img Demo

 次に試したのはリアルタイムのtxt2img(テキスト→画像)だ。通常のtxt2imgではプロンプトを入力して実行してから画像が生成されるまでには数秒の時間がかかるのが当たり前だったが、なんとリアルタイム生成できる時代になってしまうのだ。

pip install -r requirements.txt
cd view
npm i
npm run build
cd ../server
python main.py

 実行は上記コマンドを順番に実行していけばよい。

 プロンプトを入力すると、4x4のイメージが次々に生成されていく様子が見える。「髪の色を青く」というプロンプトを追加するとそれがリアルタイムで変更されていくのがわかるだろうか。

この記事をシェアしよう

週刊アスキーの最新情報を購読しよう

この連載の記事