見出し画像

How to install Pytorch 2.4.0+cu12.4 to A1111&ComfyUI


先日来、私はPytorchにフォーカスしていた記事を記載していましたが、

遂に昨日CuDNN9.xに対応したVer 2.4.0+cu12.4が正式にリリースされました。

SD Forge及びreForgeに関しては、既に下の記事で2.5.0Dev版を例にとって記述しているので割愛しますが、

A1111及びComfyUIに、これを適用する方法について解説していきます。

ちなみに、ComfuUIに関しては標準装備のPythonライブラリー更新バッチファイルを実行することで、Pytorch 2.4.0+cu12.1への更新は行われますが、cu12.4への更新は出来ません。

また、A1111とComfyUI共に、Pytorchのみの削除→更新作業では、致命的なエラーを起こしてwebUI自体が起動しなくなり、現在私自身がテストした範囲では、新規インストールにおいてのみ、Pytorch 2.4.0+cu12.4は使用することが出来ます。

そこで本稿では、A1111及びComfyUIにPytorch2.4.0+cu12.4を適用する形で、それぞれ新規インストールを行う方法を解説します。     

前段階が長くなりますが、その前に更に既存の機能に対する制限について触れておきます。

まず現時点ではxformersが使えません。高速化オプションに関してはcross-attention一択になります。ただ現在のPytorch環境下でRTX4000シリーズに関してはxformersを使う意味がほとんどないので、問題はないと思います。

また現時点では、TensorRTもPytorch2.4.0に対応していません。ただ、これも現状を現実的に考えてデメリットにはならないと思います。TensorRTには余りにも制約が多すぎるからです。実際、私は今ほとんどTensorRTは使っていません。

ともあれTensorRTに影響が及ぶので、下の記事も一部記述を修正しています。

Forge及びreForgeはそもそもTensorRTに対する互換性を完全に放棄していますが、その処理プロセスを見ていると、lllyasviel氏が「そう」した理由はなんとなくわかります。

実は、Forgeは画像生成のプロセスに限って言えば決してA1111より高速な訳ではありません。Forgeが高速な理由は、画像生成そのものの所要時間よりも、モデルや各種プロセスのロードや切り替えの速さなのです。

そしてTensorRTの欠点は、まさにその「繋ぎ」の部分で余計な時間がかかる事なのです。

下の記事ではA1111とreForgeのベンチマーク対比を行っていますが、その数値だけ見ると、A1111のTensorRTはreForgeに勝っているように見えますが、実際の画像生成時間を比較すると、実はTensorRTはForge及びreForgeのPytorch環境に対して決して優位にはありません。

ベンチマークの数値に現れない「切り替え」の部分で、Forge及びreForgeの速さに優位性があるからです。

要するに何が言いたいかというと、私はずっとTensorRTをなるべく活用したいと考え続けてきたものの、最近はTensorRTそのものの現実的な有用性について否定的な考えに変わりつつあるという事です。

つまり、Pytorch 2.4.0+cu12.4を使用することでTensorRTは使えなくなりますが、私の実感としてはデメリットにはならないと考えています。

本当に前置きが長くなりましたが、では今度こそインストール方法を記述していきます。まずはA1111から。

まず、いつものごとく任意のフォルダを作成してgit cloneを行い、A1111用ファイルをダウンロードします。

下図のようにそのフォルダにパスを通してpowershellを起動し、「python -m venv venv」を実行して仮想環境を構築し、次いで「venv\scripts\activate」を実行してアクティベートします。

次に下図のように、「pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124」を実行します。

TensorRTは使用しませんが、onnx関係はいずれ必要になるので、ここでインストールしておきます。下図のように、「python.exe -m pip install importlib_metadata onnx polygraphy」と実行し、続けて「pip install onnxruntime-gpu --extra-index-url https://aiinfra.pkgs.visualstudio.com/PublicPackages/_packaging/onnxruntime-cuda-12/pypi/simple/
と実行します。

ここまで設定を終えたら、いつもの如くwebui-user.batをダブルクリックして、インストールを開始します。WebUIが起動すると下図のように、Pytorch 2.4.0+cu12.4を適用した形になります。

ここで、下の記事でも解説しているようにCuDNNの手動更新も行っておくと良いでしょう。

続いてComfyUIへの適用方法ですが、基本は同じです。ComfyUIは仮想環境自体がvenv形式ではないので、少しコマンドが違うだけです。

ComyUI用の圧縮ファイルを解凍したら、下図のようにそのフォルダにパスを通した形でpowershellを起動し、まずは「python_embeded\python.exe -m pip uninstall torch」を実行して、既存のtorchを削除します。

続けて「python_embeded\python.exe -m pip uninstall torchvision」、「python_embeded\python.exe -m pip uninstall torchaudio」を実行し、Pytorchライブラリーをすべて削除します。

続けて、 「python_embeded\python.exe -m pip install torch --index-url https://download.pytorch.org/whl/cu124」、「python_embeded\python.exe -m pip install torchvision --index-url https://download.pytorch.org/whl/cu124」、「python_embeded\python.exe -m pip install torchaudio --index-url https://download.pytorch.org/whl/cu124」と続けて実行し、Pytorchライブラレーを全て入れ直します。

A1111と同じように、onnx関係ライブラリーをここで入れることが出来るので、コマンド形式をComfyUI用に「python_embeded\python.exe -m pip install」とした上で、それぞれインストールしてください。

ここまで設定を終えたら、いつもの如く下図のように「run_nvidia_gpu」バッチファイルをダブルクリックします。

A1111と同様にxformersを使用しない以上、下図のように起動オプションでCross Attentionを有効化しておくことをお勧めします。

ここで、A1111と同様にCuDNNの手動更新も行っておくと良いでしょう。

さて、こうして適用したPytorch2.4.0+cu12.4の具体的な効果ですが、今まで私の環境では不可能だったSDXL1.0による1024pixel×1024pixelから4倍のアップスケール、ほぼ8Kサイズに近い拡大に成功しました。

CuDNN手動更新を行っても尚、今までのPytorch2.3.1+cu12.1環境では無理でした。SD1.5だと1024×1024からの4倍拡大も可能でしたが、SDXLだと大体3.5倍位が限界だったのです。

それが、あっさり4倍のアップスケールに成功しました。CuDNN9.xの威力ですね。勿論、下図のように主な工程の間のVRAM使用量も12GB以内に収まっています。

ただし、初動においては下図のように共用を含めたVRAM76GBの大半を使い切るので、GPUの搭載メモリだけではなく、メインメモリも出来れば128GBを搭載しておきたいところです。

とりあえず、一通りインストール手順を解説してきましたが、何か追記すべき事項があれば追記していきます。

この記事が気に入ったらサポートをしてみませんか?