【TensorRT】Stable Diffusion Web UIを倍速にできるNVIDIA製の神AIツール!使い方〜実践まで

TensorRT Stable Diffusion Web UI AIツール

Stable-Diffusion-WebUI-TensorRTは、Stable-Diffusion-WebUIでTensorRTを使用するための拡張機能で、RTXのGPUで最高のパフォーマンスを利用するためのものです。

その速度は超高速で、高速といわれていた従来の手法よりさらに2倍以上も高速です!

どれだけ速いんだよって話ですよね。

今回は、Stable-Diffusion-WebUI-TensorRTの概要や使い方についてお伝えします。

是非最後までご覧ください!

本記事は2023年10月の執筆時点での情報となります。2024年2月現在、Stable-Diffusion-WebUI-TensorRTの最終更新は2023年10月17日にとなっています。最新の環境だと動作しない可能性があるのでご注意ください。

なお弊社では、生成AIツール開発についての無料相談を承っています。こちらからお気軽にご相談ください。
→無料相談で話を聞いてみる

目次

Stable-Diffusion-WebUI-TensorRTの概要

Stable-Diffusion-WebUI-TensorRTは、Stable-Diffusion-WebUIでTensorRTを使用するための拡張機能RTXGPU上で最高のパフォーマンスで利用するためのもので、NVIDIAが公式に公開しています。

現在は、Stable Diffusion 1.5および2.1をサポートしており、Native SDXLのサポートは今後のリリースで追加される予定です。

まずは、TensorRTがそもそもどのようなものなのか簡単に説明します。

TensorRTは、ディープラーニングモデルを最適化して、NVIDIA GPU上での推論を高速化するためのツールです。

もう少し詳しく言うと、TensorFlow、PyTorchなどのディープラーニングフレームワークで訓練されたモデルを取り込み、それを最適化して、推論を効果的に行うことができるようになります。

つまり、モデルを自分の環境に合わせたものにすることで、効率が上がり、生成速度が高速になるってことですね。

それでどのくらい速くなるのかという話なのですが、まず以下のグラフをご覧ください。

参考:https://nvidia.custhelp.com/app/answers/detail/a_id/5487

このグラフは、NVIDIAが発表している従来手法とTensorRTの生成速度の比較なのですが、これを見ると、これまで速いといわれていたxformersより約2倍ほど速く生成できることが分かります。

実際にどのくらい違うのかは後ほど検証します。

次に、TensorRTを動かすのに必要な要件ですが、以下の表に最小要件をまとめます。

GPUNVIDIA RTX GPUs with 8GB of VRAM
RAM16GB RAM
ConnectionInternet connectivity during installation
DriverNVIDIA Studio Driver 537.58, Game Ready Driver 537.58, NVIDIA RTX Enterprise Driver 537.58, and above
参考:https://nvidia.custhelp.com/app/answers/detail/a_id/5487

最小要件でもそこそこの性能が求められるので、快適に動作するにはVRAMは12GB以上、RAMは32GB以上あった方がよさそうです。

ドライバーは使用する時点で最新のものをインストールしてください。

生成速度の大幅な向上が見込めるTensorRTですが、まだ開発段階なのでその他の拡張機能が使えなくなったり、解像度が64の倍数の画像しか生成できないなどの制約が存在します。

それでは、実際に使っていこうと思いますが、前述したように、その他の機能に影響があるかもしれないので、新しくStable-Diffusion-WebUIをインストールして、そこでTensorRTを導入して使っていこうと思います。

Stable-Diffusion-WebUI-TensorRTの使い方

早速導入していこうと思うのですが、まずはStable-Diffusion-WebUIのインストールから行います。

今回は、以下のNVIDIAのサポートページを参考に導入していきます。

TensorRT Extension for Stable Diffusion Web UI

まず、以下のリンクからAutomatic1111からStable-Diffusion-WebUIのzipファイルをダウンロードします。

v1.0.0-pre

ダウンロードしたzipファイルを任意の場所に置き、解凍します。

解凍したらまず、WebUIを最新バージョンに更新するupdate.batファイルを起動します。

更新が完了したらコマンドプロンプトを閉じます。

続いて、stable diffusion web ui\sd.webui\webuiにあるwebui-user.batファイルを編集し、起動設定を行います。

今回は、set COMMANDLINE_ARGS=–autolaunch –update-check –xformers と設定しました。

ここまで完了したら、Run.batをクリックしてWebUIを起動します。

各種インストールが開始され、完了したらWebUIが起動し、以下のような画面になります。

これでWebUIのインストールは完了です。

続いて、TensorRTのインストールを行います。

Extensions→Install from URLをクリックし、URL for extension’s git repositoryにStable-Diffusion-WebUI-TensorRTのgitリポジトリのURLを貼り付け、Installをクリックします。

Stable-Diffusion-WebUI-TensorRT

インストールが完了したら、Installedに移動し、Stable-Diffusion-WebUI-TensorRTにチェックがついているのを確認して、Apply and restart UIをクリックします。

再起動後に、TensorRTのタブが追加されていたら成功です。

上の画像の画面まで来たら、そのままExport Default EngineをクリックしてTensorRT 形式にモデルを変換します。

実行の様子はターミナルで確認することができます。

Export Successfullyと表示されれば成功です。

Available TensorRT Engine Profilesの左の更新ボタンをクリックしてください。

すると、以下の画像のように、変換後のモデルが対応している生成の条件などが表示されます。

ここまで完了したら、いよいよ最後の工程です。

SettingタブのUser interfaceに移動します。

Quicksetting listにsd_unetを追加します。

画面上部のApply settingをクリックした後に、Reload UIをクリックします。

するとこのようにSD Unetの切り替えができるようになり、Noneにすることで簡単にTensorRTをoffにすることができるようになります。

少しやることが多かったですが、これで導入は完了です。

早速使っていきましょう!

Stable-Diffusion-WebUI-TensorRTを実際に使ってみた

今回検証で使用する環境は以下の通りです。

GPU:RTX2060super 8GB
RAM:16GB
Driver:GeForce Game Ready Driver 545.84

まずは、適当なプロンプトを入力します。

プロンプトは、

(masterpiece, best quality), 1girl, cute,smile

ネガティブプロンプトは、

low quality,worst quality,out of focus,ugly,error,JPEG artifacts,low resolution,blurry,bokeh

このように入力して生成します。

結果は、3秒ほどで以下の画像を生成してくれました。

私の環境ではもっと時間がかかっていいはずなので、十分高速になっていると思います!

実際に高速生成できることが分かったので、ここからは通常のモデルとの比較や、プロンプトをもっと複雑にした場合の生成時間の変化を見ていこうと思います。

なお、Stable Diffusionの40倍の速さで画像を出力できるAIについて知りたい方はこちらをご覧ください。
【InstaFlow】Stable Diffusionの40倍の速さで画像生成できるAIの使い方〜実践まで

Stable-Diffusion-WebUI-TensorRTの推しポイントである高速生成は本当なのか?

ここでは、「通常モデルとの生成時間の比較」と「プロンプトを複雑にした場合の生成時間の変化」を検証していきたいと思います。

通常モデルとの生成時間の比較

まずは通常モデルでの生成時間です。

入力するプロンプトは、以下の簡単なプロンプトで、ネガティブプロンプトは前述のものと変えずに生成します。

(masterpiece, best quality), cat

結果は、4.2秒で以下の画像を生成しました。

あれ?通常モデルでも十分速いですね。

続いて、TensorRTに変換したモデルです。

プロンプトは、通常モデルと同様です。

結果は、2.8秒で以下の画像を生成しました。

生成時間は通常モデルに比べて1.5倍ほど速くなっていますが、公表値の約3倍には届いていません。

生成時間にはVRAMの容量が大きく関わってくるので、最低要件の8GBである私の環境ではそこまで効果が発揮されないのかもしれません。

ただ、確実に速くなっているので、導入するメリットはありそうです!

プロンプトを複雑にした場合の生成時間の変化

次は、プロンプトをより複雑にした場合、生成時間に影響はあるのか検証します。

入力するプロンプトは、以下のプロンプトで、ネガティブプロンプトは前述のものと変えずに生成します。

(masterpiece, best quality), 1girl, collarbone, wavy hair, looking at viewer, blurry foreground, upper body, necklace, contemporary, plain pants, ((intricate, print, pattern)), ponytail, freckles, red hair, dappled sunlight, smile, happy

結果は、2.8秒で以下の画像を生成しました。

生成時間は2.8秒と、シンプルなプロンプトと変化はありませんでした。

プロンプトを複雑にしても、生成時間に影響はないようです。

検証の結果、通常のモデルに比べて確かに生成時間は速くなりますが、実行する環境の性能に大きく左右され、公表されているような性能を出すには、かなり高性能な環境が必要そうです。

このような、性能面の制約や、他の機能と併用できない、出力画像の解像度が制限されるなどの機能面の制約があるものの、今後のリリースでその辺りは改善されていくようなので、今後のアップデートに期待しましょう!

なお、Stable Diffusionよりも高品質な画像を生成したい方は、下記の記事を合わせてご確認ください。
【Playground v2】Stable Diffusionの2.5倍美しい!芸術的な画像に特化したAIを使ってみた

Stable-Diffusion-WebUI-TensorRTで画像生成を効率化しよう!

Stable-Diffusion-WebUI-TensorRTは、NVIDIAが開発したStable-Diffusion-WebUIでTensorRTを使用するための拡張機能で、RTXGPU上で最高のパフォーマンスで利用するためのものです。

通常のモデルより約3倍、高速なxformersを使った手法より約2倍ほど速いといわれています。

実際に使ってみた感想は、通常モデルに比べ1.5倍ほど速くなりましたが、公表値の3倍には届かず、生成時間は実行する環境の性能に大きく左右されることが分かりました。

今後のリリースで、性能要件の引き下げや解像度や他の機能との連携などができない制約が解除されることが予想され、ますます画像生成を効率化できるようになるので、気になった方は是非試してみてください!

最後に

いかがだったでしょうか?

弊社では

・マーケティングやエンジニアリングなどの専門知識を学習させたAI社員の開発
・要件定義・業務フロー作成を80%自動化できる自律型AIエージェントの開発
・生成AIとRPAを組み合わせた業務自動化ツールの開発
・社内人事業務を99%自動化できるAIツールの開発
ハルシネーション対策AIツールの開発
自社専用のAIチャットボットの開発

などの開発実績がございます。

まずは、「無料相談」にてご相談を承っておりますので、ご興味がある方はぜひご連絡ください。

➡︎生成AIを使った業務効率化、生成AIツールの開発について相談をしてみる。

生成AIを社内で活用していきたい方へ

「生成AIを社内で活用したい」「生成AIの事業をやっていきたい」という方に向けて、生成AI社内セミナー・勉強会をさせていただいております。

セミナー内容や料金については、ご相談ください。

また、弊社紹介資料もご用意しておりますので、併せてご確認ください。

投稿者

  • ゆうや

    ロボット工学専攻。 大学時代は、対話ロボットのための画像キャプションの自動生成について研究。 趣味は、サウナとドライブ。

  • URLをコピーしました!
  • URLをコピーしました!
目次