Stable Diffusionを2倍高速化できるTensorRTを紹介します | IT技術者のDTM奮闘記
画像生成AI

Stable Diffusionを2倍高速化できるTensorRTを紹介します

ライダージャケットを着た日本人女性のAI写真画像生成AI

※本ページはプロモーションが含まれています

スポンサーリンク

はじめに

Stable Diffusion WebUIの拡張機能「TensorRT」のインストール方法、使い方を紹介します。

GeForceドライバーがTensorRTアクセラレーションに対応したことにより、2倍以上(実測)画像生成時間の高速化が可能です。

この記事では以下のことが理解できます。

  • TensorRTとは何なのか
  • TensorRTで使用するGeForce Driverのバージョンについて
  • TensorRTのインストール方法
  • TensorRTの使い方
  • TensorRTのベンチマーク結果

記事内の画像は日本語化環境です。
まだ日本語化が済んでいない方は↓の記事を参考に便利な日本語環境にしてみましょう。

スポンサーリンク

Stable Diffusionで使用するTensorRTとは

TensorRTとは、NVIDIA社が提供するディープラーニング推論を高速化するためのソフトウェア開発キット(SDK)です。
学習済みモデルを最適化することで、推論時間を大幅に短縮できます。

簡単にいってしまえば、TensorRTをStable Diffusionで使用すると画像生成時間がかなり高速化されます。

nov
nov

僕の環境(RTX4070ti)では2倍以上高速化できました!!

TensorRTのメリット、デメリットについて

  • 画像生成時間の高速化(2倍程度)
  • モデルごとにTensorRT用エンジンを作成する必要がある
  • ControlNetが使えない

従来の高速化方法であるxformersやSDPAと比較すると、手間はかかりますがそれを上回る程の高速化が可能です。

ただモデル単位でTensorRTエンジンを作成する必要があるので、たくさんのモデル、LoRAを使う方にはあまりおすすめできません。

TensorRTの動作最小スペック

GPUNVIDIA RTX 8GB以上のVRAMを搭載したGPU
RAM16GB
DriverNVIDIA GeForce Driver 537.58以降
NVIDIAサポートより

TensorRTでサポートされている機能

機能t2i,i2i
モデルSD1.5およびSD2.1、LoRA
NVIDIAサポートより
nov
nov

SDXLモデルはパッチでの対応が予定されているよ

Stable Diffusion TensorRTで使用するGeForce Driverについて

TensorRTを最大限活用するにはGeForce Driverの更新が必要です。

nov
nov

GeForce Game Ready Driver WHQL 545.84からTensorRTアクセラレーションが追加されて、さらに高速化されたんだ

GeForceドライバーがVer545.84よりも古い場合は下記記事を参考に更新してください。

Stable Diffusion TensorRTのインストール方法

  • STEP1
    「Extensions」タブに移動する

    stable diffusion webUIを起動したら上部に表示されるタブ一覧から「Extensions」をクリックします。

    Extensionsのクリックを誘導している
  • STEP2
    「URLからインストール(Install from URL)」タブに移動する

    Extensionsタブ内の「URLからインストール(Install from URL)」をクリックします。

    urlからインストールクリックを促している
  • STEP3
    URLを入力する

    「拡張機能のリポジトリのURL(URL for extension’s git repository)」に下記URLをコピペしてください。

    https://github.com/NVIDIA/Stable-Diffusion-WebUI-TensorRT.git
    拡張機能のリポジトリのURLにコピペを促している
    URL for extension’s git repositoryの入力
  • STEP4
    インストールボタンをクリックする

    下段に表示されている「インストール」ボタンをクリックします。

    インストールボタンクリックを促している
  • STEP5
    「適用してUIを再起動(Apply and restart UI)」をクリックする

    stable diffusion webUIは設定を変更した場合はリロードする必要があります。

    インストール済タブに表示される「適用してUIを再起動(Apply and restart UI)」ボタンをクリックしましょう。

    適用してUIを再起動クリックを促している

Stable Diffusion TensorRTの使い方

インストール後もいくつか設定が必要になります。

nov
nov

設定も必要だからちょっと面倒だよねぇ

クイックセッティングリストの設定

Stable Diffusion WebUIの上部に、SD Unetのリストを表示させます。

  • STEP1
    設定(Setting)タブに移動する

    上部メニューから設定(Setting)をクリックして移動します。

    設定タブクリックを促している
  • STEP2
    クイック設定(Quicksettings list)を表示する

    左メニューからユーザーインターフェース(User interface)をクリックし、クイック設定(Quicksettings list)を表示します。

    ユーザーインターフェースクリックを促している
  • STEP3
    sd_unetを入力する

    クイック設定(Quicksettings list)内に「sd_」まで入力します。

    表示されたリストから「sd_unet」をクリックします。

    リストに表示されたsd_unetクリックを促している
    sd_unetの選択
    sd_unetの反映確認を促している
    sd_unet反映後
  • STEP4
    設定を適用し再起動する

    設定(Setting)タブ上段に表示されている「設定を適用(Apply settings)」をクリックします。

    その後は右にある「UIの再読み込み(Reload UI)」をクリックします。

    設定を適用、UIの再読み込みクリックを促している

TensorRT エンジンを作成する

TensorRTを使用するには、モデルからTensorRTエンジンを作成する必要があります。

TensorRTエンジンはモデル単位で作成する必要があります。

nov
nov

たくさんのモデルやLoRAを使う場合は凄く大変だよ・・・

  • STEP1
    モデルをロードする

    TensorRTエンジンを作成するベースモデルを選択します。

    txt2imgタブのチェックポイントや、上部メニューのStable Diffusion checkpointリストボックスからモデルを選択してください。

    チェックポイントモデルの選択を促している
    好みのモデルを選択
  • STEP2
    TensorRTタブに移動する

    上部メニューにTensorRTが表示されているのでクリックして移動します。

    TensorRTタブへの移動を促している
    TensorRTタブに移動
  • STEP3
    TensorRTエンジンを作成する

    デフォルト設定のまま、「Export Default Engine」をクリックします。

    エンジン作成完了まで数分を要するので気長にまちましょう。

    デフォルト設定のままExport Default Engineクリックを促している
    出力ウィンドウに進行状況が表示されている
    エンジン作成中
    Exported Successfullyが表示されたらエンジン作成完了
    エンジン作成完了

TensorRTで画像生成する

それでは実際にTensorRTを使用して画像生成してみましょう。

  • STEP1
    SD Unetを選択する

    上部に表示されている「SD Unet」リストから作成したTensorRTエンジンを選択します。

    生成したエンジンの選択を促している
    TensorRTエンジンの選択
  • STEP2
    画像生成する

    他は普段通りの設定で問題ありません。

    一点注意があります。
    解像度、バッチサイズについては、TensorRTエンジン作成時の設定に合わせる必要があります。

    デフォルト設定では解像度は512~768、バッチサイズは1~4にする必要があります。
    範囲から外れるとエラーで画像生成できません。

TensorRTカスタムエンジンの作成

デフォルト設定以外の解像度で画像生成したい場合は、カスタムエンジンを作成しましょう。

  • STEP1
    プリセットを選択する

    TensorRTタブに移動し、適当なプリセットを選択します。

    プリセットの選択を促している
    プリセットの選択
  • STEP2
    Advanced Settingsをクリック

    下に表示されるAdvanced Settingsをクリックしてリボンを開きます。

    Advanced Settingsクリックを促している
    Advanced Settingsの表示
  • STEP3
    好みの設定に変更する

    主に変更するのは以下6つです。

    Min height最低高さ
    Optimal height最適高さ(最大高さと同じ設定がベター)
    Max height最大高さ
    Min width最低幅
    Optimal width最適幅(最大幅と同じ設定がベター)
    Max width最大幅
    Advanced Settingsの設定項目 スライダーとチェックボックスで構成されている
    Advanced Settings設定項目

    「Use static shapes.」をチェックすると静的エンジンが作成できます。

    静的エンジンは解像度が固定されたエンジンで、VRAMの使用量が少ないです。
    (画像生成時、エンジン作成時の解像度から外れるとエラーになる)

    Use static shapes.チェックを促している

    「Use static shapes.」のチェックを外した状態では動的エンジンが作成できます。

    動的エンジンは、最低、最大解像度内の画像が生成可能です。

    nov
    nov

    基本的には動的エンジンがおすすめだよ

    Hires. fixを使用する場合には、最終出力解像度に注意してください。

    例えば512×512の画像をHires. fixで2倍にアップスケールする場合は、
    TensorRTエンジン解像度の最低解像度を512以下、最大解像度を1024以上に設定してください。

    最大解像度768のエンジンでは1024解像度の画像が生成できません。

Stable Diffusion TensorRTでどの程度高速化されるのか

TensorRTの実力を測定しました。

まずは新旧Geforceドライバで高速化無し、xformers、SDPAで差があるのか確認しました。
モデルはmeina mixで200stepの生成を実施しています。

結果は以下の通りです。

ドライバ高速化生成速度速度比較
537.42無し6.9it/s-(基準)
537.42xformers8.65it/s125%
537.42SDPA10.56it/s153%
545.84無し7.12it/s103%
545.84xformers8.93it/s129%
545.84SDPA10.7it/s155%

最新のドライバーに変更するだけで2~4%速度が速くなりました!

下記はTensorRTの結果です。

ドライバ高速化生成速度速度比較
545.84無し7.12it/s-(基準)
545.84TensorRT16.65it/s234%

公式では2倍速くなるといわれていましたが、なんと234%と2倍以上速くなりました!

また、TensorRTもxformers、SDPAと同様に同じ設定でも少し画像が変化するようです。

黒髪ロングヘアーの女性のAIイラスト
高速化無し
黒髪ロングヘアーの女性のAIイラスト
xformers適用
黒髪ロングヘアーの女性のAIイラスト
SDPA適用
黒髪ロングヘアーの女性のAIイラスト
TensorRTで生成
nov
nov

TensorRT・・・しゅ、しゅごい

現状、LoRAは実験段階のようで、チェックポイントに対してひとつだけ適用できます。

nov
nov

LoRAを使わない場合は良いんだけどねぇ・・・ひとつだけだとねぇ・・・

おすすめテレワーク・デスクワークグッズ

四六時中デスクワークの筆者がおすすめする、デスクワークグッズを紹介します。

nov
nov

作業効率の他、QOL爆上がりの商品を紹介していくから是非チェックしてね!

ごちゃごちゃしたケーブルとは、さようなら!

USB充電の他、使用するUSB機器が増えたから必須だね

モニターアームの超定番!これを使えばデスクが広々~

目線が上がって肩こり解消にもぴったり

付箋サイズの電子メモパッドは、急な連絡にもすご~く便利!

ヘッドフォン音質、マイク音質共に良好!会議にぴったりヘッドセット

無線で、静かなオフィスでも問題無い静音スイッチ採用のマウス

机が狭い?それなら大丈夫、ロジクールのトラックボール使おう

薄型のキーボードなのに打鍵感が最高だね

コンパクトなキーボードを探しているならコレ!

スポンサーリンク

まとめ

今回は、Stable Diffusion WebUIの拡張機能 TensorRTの使い方を紹介しました。

使い方が限定されますが、これだけ生成時間が早くなりますから魅力的ですよね。

nov
nov

現状は、使い勝手が悪いのでSDPAの方が使用頻度が高いかな。
TensorRTの今後の展開が楽しみだ!

注目
セーターを着た日本人女性のAI写真
Stable Diffusionの使い方・記事まとめ【Stable Diffusion WebUIの使い方】
Stable Diffusion関連の記事が増えてきたので、使い方に関する記事をまとめました。
注目
黒髪のアニメ調女性のAIイラスト
Stable Diffusionのアニメ系イラストが得意なモデル5選!
アニメ調のイラストが得意なStable Diffusionのおすすめモデルを紹介していきます
注目
黒のロングヘアー女性のAIイラスト
美少女2次元イラストに最適なモデル5選!!【Stable Diffusion モデル紹介】
2Dイラストに最適なStable Diffusionのおすすめモデルを紹介していきます。
注目
コートを着た日本人女性のAI写真
Stable Diffusionのおすすめモデルを用途別に紹介するよ
Stable Diffusionで使用できるおすすめモデルを用途別に紹介していきます
注目
ショートヘアーの日本人女性のAI写真
綺麗なお姉さんは好きですか? ハイクオリティな日本人女性が生成できるhaduki_mixを紹介します【Stable Diffusion SDXLモデル紹介】
日本人女性が綺麗に生成できるStable Diffusionのモデルを9つ紹介していきます。
注目
茶髪女性が町中に立っているAI写真
Fooocusのインストールから簡単な使い方を紹介【SDXLを手軽に高速に使える】
Fooocusのインストールから簡単な使い方を解説していきます。Fooocusは数あるStable Diffusion WebUIの中でも、軽量かつシンプルなクライアントアプリです。
注目
ピンク髪のアジア人女性のAI写真
SDXL 1.0が公開開始されました!Stable Diffusion WebUIでの使い方を紹介します【低VRAMでも使えます!】
バージョン1.0となったSDXLはどんな画像を生成できるのか、インストール方法から使い方、サンプル画像を紹介していきます。
注目
タートルネックを着た黒髪女性のAI写真
Stable Diffusionを高速化するSDPAを紹介します【Stable Diffusion WebUIの使い方】
高速化が可能となるSDPAの使い方を紹介します。
注目
タートルネックに茶色の上賀を着た日本人女性のAI写真
Stable DiffusionでRefinerを使用する方法
Refinerに対応したAUTOMATIC1111の使い方を紹介していきます。
注目
黒いジャケットを着た女性のAI写真
FreeUでお手軽高画質化!【Stable Diffusion WebUI拡張機能 FreeUの使い方】
生成速度はそのままに高画質化が可能なFreeUの使い方を紹介します
注目
ライダージャケットを着た日本人女性のAI写真
Stable Diffusionを2倍高速化できるTensorRTを紹介します
Stable Diffusion WebUIの拡張機能「TensorRT」のダウンロード方法、インストール方法、使い方を紹介します。 TensorRTアクセラレーションに対応したことにより、2倍以上(実測)画像生成時間の高速化が可能です。

Comment

タイトルとURLをコピーしました