Sage-Attention-2++
Sage-Attention-2++
2025年7月2日、sage-attention-2++(2.2.0)が公開されました。ビルド方法は以下2.1.1から変更はありませんが、2++についてはWindows用whlが公開され、より簡単にインストールする事が可能になりました。
近日来、tritonと連動する形で動作するSage-AttentionというPythonライブラリーを活かした高速化が、密やかに注目され始めているようです。そして、現在その改良版である2++が公開されています。
WAN2.1等に対しては専用ノードもあるようですが、safetensors用なので、GGUFの場合下図のように汎用のノードを使います。
毎度お馴染みKJNodesです。いやホント、この方はComfyUIの高速化に関する貢献度化絶大ですね。

sage-attention-2++のインストールに関しては、以下記事を参照して下さい。通常のpip installでは、旧型のsage-attention-1しかインストールできず、性能が向上した2++を導入する為には、異なる手順が必要になります。
尚、導入がそれなりに手間だったtritonも、劇的にその手間が簡略化されています。以下、最新情報に合わせて、記事も更新しています。
Reddit等では、RTX4090でFlux1が40%高速化した…なんて書き込みもあったのですが、私のRTX4070 12GBの環境ではFlux1に対してもWAN2.1等動画生成AIに対しても、そこまでの高速化はなく、初回生成が20%程度、2回目以降はtorch.compileによる高速化が顕著である為、ほとんど上乗せ効果はありませんでした。
既に、先日効果を再認識させられたxformersはじめ、MultiGPUにWaveSpeed、KJNodesのtotch.compileとか、現時点やれる事はほぼやり尽くした感があって、
実際これ以上はハードウェアのスペック問題という気がしていたので、余り期待はしていませんでしたが、時間がかかっていた初回生成が高速化されただけでも良しとすべきでしょう。
ちなみに、xformersとは排他的に動作する訳ではなく、sage-attention-2++を使用している場合でも、下図のようにxformersがVAEに対して動作していることがわかります。下図の場合、更にflash-attention2もFlorence2で使用している形になります...が、高速化用のメソッドが色々併存してる現状なので、体系的に理解するのも、また難儀な話ですが。

何にしても、この種の高速化プログラムは、恐らくPCのスペック次第で相当個人差は出るのでしょう。RTX4090と4070では、前提条件が色々違いすぎますからね。
Anyway、起動時にオプション指定が必要です。
以下、私の現在の起動バッチファイルです。
set PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:32,garbage_collection_threshold:0.8
set TORCH_COMPILE_DEBUG=0
set TORCH_COMPILE_OPT_LEVEL=2
set TORCH_LOGS=recompiles,dynamo,inductor
set TORCH_INDUCTOR_VERBOSE=1
set TORCH_DYNAMO_CONFIG=force_parameter_static_shapes=false
set TRITON_CACHE_DIR=D:\USERFILES\triton
set TORCH_HOME=D:\USERFILES\torch
set TORCHINDUCTOR_CACHE_DIR=D:\USERFILES\Inductor
set TEMP=D:\USERFILES\Temp
set TEMP=D:\USERFILES\Temp
.\python_embeded\python.exe -s ComfyUI\main.py --use-sage-attention --windows-standalone-build --output-directory C:\Users\ussoe\A1111\stable-diffusion-webui\outputs\ComfyUI必須ではないですが、環境変数もsage-attention2++に合わせて追加しています。詳細は以下、torch.compileの記事に追記する形で記載しています。
上の環境変数を見れば、わかる方にはすぐわかる事ですが、torch.compileやtritonによって発生するキャッシュファイルや一時ファイルをグローバル環境から分離した形です。
Sage-Attention-2++はどうも何かの拍子にキャッシュファイルが悪さをしてエラーを起こすらしく、キャッシュ関連全削除すれば直るのですが、必要な際に簡単に削除できるようにしたものです。
あと分離しておけば、torch.compileやsage-attention-2++によってどのようなファイルが形成されるかが見えやすくなるので、それらが動作する仕組みも勉強しやすいですしね。
尚、上記事にも記載していますが、作成したフォルダにはアクセス権の再設定が必要になります。
初期状態ではフルアクセス権が設定されていない為、そのまま使うとアクセスできませんエラーを起こします。

ちなみに、これらのフォルダをRAM Diskに置いたら速くなるかな…とか思ってテストしましたが、残念ながらこのアイデアも不発でした。ほとんど変化がありませんでしたね。
私のDドライブは、Read7000MB/sクラスのM.2 Gen.4ですから、現在のPC環境においては最速に近い訳で…キャッシュのサイズがGB未満では、差が出ませんでしたね。
以下記事で、適用済みプログラム一覧リストを作成しています。SD1.5以外は全て、sage-attention2++を適用しています。
