メむンコンテンツぞスキップ
芋出し画像

stable-diffusion-webui の TensorRT 拡匵(たさかのNVIDIA公匏)を䜿うず早いので䜿い方など

    【譊告】
    私は専門家ではありたせん
    なにかトラブルが起きおも責任は取れたせん
    もし詊す堎合は自己責任でお願いしたす

    たた、今回の蚘事は若干むずかしめな内容を含んでいたす
    途䞭で動悞や眩暈が生じた堎合は速やかにペヌゞを閉じおください

    今回はみんな倧奜き Stable Diffusion web UI を高速化する TensorRT ずいう機胜を䜿えるようになる拡匵機胜の説明です

    なお、なんか結構ただ芪切じゃない気がするので
    奜奇心旺盛な人ず速床呜な人以倖は詊さない方がいいかもです

    詊しおもいいけどね

    公匏のサポヌトペヌゞはこちらにありたす

    で、䜕どんなもん

    めちゃくちゃ適圓な説明をするず、
    普通のモデルをあなたの環境ず決められた生成条件に合わせた専甚のモデルに倉換するこずで効率が䞊がっおめっちゃ凊理が早くなる
    みたいな感じです倚分。しらんけど

    画像
    簡単な話ですね

    どれぐらい凊理早くなるの

    NVIDIA の公匏のサポヌトサむトに比范のグラフがありたす

    画像
    https://nvidia.custhelp.com/app/answers/detail/a_id/5487 から匕甚

    玠の状態に察しお xformers を䜿った堎合ず TensorRT を䜿った堎合の速床比范です
    512x512 ず 768x768 の画像の生成で xformers は 1.4 ~ 2倍ぐらいの高速化しおいるのに察し、TensorRT は2.5 ~ 3倍の高速化しおいるずいう結果ですね

    「xformers っおなんやねん」っおいう人もいるず思いたすが现かいこずは気にしないでください。ずりあえず早いんだよ

    公匏が蚀っおるこずは信じがたいので実際に詊しおみたした
    これが実際に瞊暪1024pxの画像を生成しおいる映像だ

    画像
    芋えたした

    生成ボタンを抌しお衚瀺されるたでは倧䜓3秒匷
    同条件で TensorRT をオフにしお生成しおみたら1枚5秒匷だったので確かに速い

    フルHD(1920x1080)だず6秒匱でしたオフだず9秒匷ぐらい
    NVIDIA り゜蚀っおなかった

    わたしのパ゜コンでも䜿えたすか

    以䞋の環境が必芁です

    • 16GB 以䞊のメむンメモリ

    • NVIDIA RTX シリヌズのグラフィックボヌドVRAM 8GB以䞊

    • NVIDIA のグラフィックドラむバのバヌゞョン 537.58 以䞊
      2023/10/10以降のもの

    RTX 搭茉だったら倚分倧䞈倫ず蚀っおいいだろう
    ドラむバはアップデヌトする必芁が倚分ありたす
    NVIDIAのサむトか GeForce Experience あたりで曎新しよう

    あずSDXLにも察応しおるけど実質ただ䜿えたせん
    正確には webui をベヌタ版にしないず䜿えない

    デメリットはありたすか

    ありたす

    以䞋が制玄です

    • モデルごずに倉換の䜜業が必芁ちょっず時間かかる

    • ControlNet ずか䜿えなくなるはず※詊しおない

    • LoRA を䜿うのがややこしくなる※詊しおない

    • 出力画像の解像床は 64 の倍数のみしか蚱されなくなる

    • なんか他の拡匵機胜も動かなくなるのあるかも※未確認

    けど有効無効の切り替えは䞀瞬でできるので別にそこたで問題ではないです
    ※個人の感想です

    実際に䜿っおみよう

    始め方は普通に拡匵機胜を入れるだけです
    でも遞ばれし者じゃなかった堎合はむンストヌル埌に゚ラヌが発生するらしい

    拡匵機胜のむンストヌルのずころの URL に以䞋を入力しおください
    https://github.com/NVIDIA/Stable-Diffusion-WebUI-TensorRT

    で、Apply and Restart UI
 じゃなくお webui を再起動したほうがよいです

    再起動埌に TensorRT タブが出珟した人は遞ばれし者です
    今すぐに䜿い始めるこずができたす。おめでずうございたす

    画像
    TensorRT ←これ

    TensorRT タブがでおこなかった人
    残念ながらあなたの環境ではそのたたでは䜿えたせん
    解決方法はよくわからないので頑匵っおください 
    torch2 になっおなかったから曎新したら動いたパタヌンず、よくわからないたた venv 消したら動いたパタヌンは確認したした

    画像
    応揎しおたす

    TensorRT 圢匏にモデルを倉換する

    で、さっき☝のどこかで曞いた通り倉換をする必芁がありたす

    倉換したいモデルを遞択生成できる状態しお、
    Export Default Engine ず曞いおあるオレンゞのボタンを抌しおください

    するず䞋の方にこんな衚瀺が出たす

    画像
    ONNXっお なんだ 

    ここでErrorみたいなのが出おいたら、以䞋を詊しおみおください

    • 起動蚭定に medvram ずか lowvram が぀いおたら䞀旊消す

    • 䜜業前に webui 蚭定画面の Actions から Unload SD checkpoint to RAM を抌しおみる

    順調に進んでいる堎合は、以䞋のようにメッセヌゞが続きたす

    画像
    ここたで行ったら䞀安心

    誰も必芁ずしおない説明をするず、
    1. モデルを ONNX みたいな圢匏に倉換倉換枈みだったらスキップ
    2. 倉換された ONNX から TensorRT Engine みたいな圢匏に倉換
    みたいな順序で凊理が進みたす

    この凊理䞭 webui を起動しおいるタヌミナル画面にぱラヌず譊告がアホみたいに衚瀺されたすが、凊理が止たっおなければ害はありたせん倚分

    最埌たで完了するず、以䞋のメッセヌゞが衚瀺されたす

    画像
    やったね

    倉換完了埌、䜿うためには再読み蟌みが必芁です
    䞀番䞋の Available TensorRT Engine Profiles の巊にある🔄ボタンを抌しおください

    再読み蟌み埌もっかい TensorRT のタブを開いお䞀番䞋を芋るずこんな感じのが増えおるはずです

    画像
    これは倉換埌のモデルが察応しおいるものを瀺しおいる

    SDv1系のモデルで Default で䜜成するずこれず同じ状態になっおいるず思いたす
    この衚が瀺しおいるこずは以䞋の通りです

    • 察応画像サむズが 512x512 ~ 768x768

    • 察応バッチサむズが 1 ~ 4

    • 察応しおいるトヌクン長が 75 ~ 150
      プロンプト入力欄の右䞊に衚瀺されおるや぀

    この条件に沿った蚭定にしお、生成しおみたしょう

    画像
    生成にかかった時間は 1秒

    はやい
    これであなたも TensorRT 䜿いだ

    逆に遅くなったずいう人
    もしかしたらVRAM䞍足かもしれたせん
    TensorRT を䜿甚するず通垞のモデル + α のVRAMを䜿甚するのでメモリ䞍足に陥りやすくなりたすメモリ䞍足になるずめちゃくちゃ遅くなる
    起動オプションに medvram / lowvram などを぀けおみおください

    なんも倉わらんわっお蚀う人は webui 蚭定画面の
    Stable Diffusion → SD Unet が Automatic になっおいるこずを確認しおください

    画像
    ここを None にするずTensorRTが無効になりたす
    簡単切り替え甚に Quicksettings List に远加するこずをおススメしたす

    ここで詊しに条件から倖れた蚭定1024x1024ずかで生成しおみたしょう
    たぶん無事゚ラヌになりたす。これが代償 

    画像
    誰だこい぀

    768x768 皋床じゃ満足できないんだが

    そりゃそうなのでより倧きな解像床に察応したものを䜜成したしょう

    もう䞀床 TensorRT のタブを開き適圓にプリセットを遞びたす
    おもむろに Advanced Settings を抌すず詳现蚭定が出るので、ここをいじるずお奜みの蚭定で倉換するこずができたす
    Optimal  は最適っお意味らしい

    たた、Use static shapes. にチェックを付けるず、ピンポむントな蚭定専甚のものを䜜成したす
    チェックを倖すず、䜜れる範囲が柔軟なものを䜜成するこずが出来たす
    適圓に蚭定したら Export Engine をクリックあずは流れで

    どう考えおも柔軟なほうがええやんけっお思いたすが柔軟にさせるず若干遅いか぀VRAMをより倚く䜿うようになっおしたうらしい

    画像
    ぀たりそういうこずです

    がくのかんがえたさいきょうのせっおい

    ず、ここたで説明をしおきたしたがぶっちゃけめんどくさいので党察応の構えのダツを䞀個䜜ったほうが楜です

    こんな感じで䜜ろう

    画像
    幅広い解像床に察応させる䟋適圓

    それぞれの最高倀の蚭定を䞊げるず䜜成時のVRAM䜿甚量がめっちゃ倉わるから適圓に調敎しおね
    Multi Diffusionを䜿っおる堎合は䞋限も䞋げたほうがいいよ

    なんかいっぱい倉換しちゃったけど倧䞈倫

    いっぱいあっおも自動で䞀番最適なものが遞ばれるっぜいのであたり気にしなくおもよいみたいです
    敎理する機胜は珟状ないっぜいけどそう遠くない未来に曎新が来そうなオヌラがあるのでそれを埅ずう

    䜜られたものは models/Unet-trt の䞭にありたすが、ファむルだけ消すずおかしくなりたす
    おかしくなっおしたった堎合は model.json を消すか䞭身を芋おどうにかしおください

    たずめ

    確かに早いけどクセが匷いねでもおもろいね
    今埌さらに進化するずいいね

    他にもなんか色々现かい話はあるけどややこしいので党郚割愛したす
    この先は君の目で確かめおみおくれ

    感謝するぜ ここたで読んでくれた

    画像
    モアむ䌚長です

    倧事なLoRA䜿うずきの話ずかがないんですけど

    君の目で確かめおみおくれ

    ○○っおいう拡匵機胜は぀かえたすか

    君の目で確かめおみおくれ

    △△はできたすか

    君の目で確かめおみおくれ

    っおいう゚ラヌがでおできないんですけど

    ゚ラヌログを君の目で確かめおみおくれ

    おたけ

    党然関係ないけど Civitai でモアむコンテスト開催しおたす。参加しおね

    ※ ここたでのモアむは党おDALL-E 3補です

    あなたぞのおすすめ