見出し画像

How to install sage-attention-2++ for ComfyUI Portable on Python 3.12.x

2026年6月1日現在、sage-attention-2++及び3.0bについて、最新のPytorch環境でビルドしたwhlを公開していますので、その情報を追記しました。

好きでやっているとは言え…この世界マジで何なの...て辟易する事も多々ありますが。(日本国内ではこの手の情報はほぼ流通しないし、日本語環境に安住していると、マジで浦島太郎になる)

迂闊にも、sage-attentionから大幅に改良されたsage-attention-2の存在を今日初めて知りました。

…話題になってたの2か月前じゃねえかよ…

https://www.reddit.com/r/StableDiffusion/comments/1j6kqtd/how_to_install_sageattention_easy_way_i_found/?show=original

I didn't have known about that at that time…Ha!! 

Still, I installed sage-attention-2 to my ComfyUI Portable just now.

インストール方法に関しては、2種類の方法を解説します。ここでは、ComfyUIのPortable環境を前提とします。

尚、triton-windowsは大前提として必須です。

まず第一にGitHubリポジトリから直接ビルドする方法ですが、以下サイトが最もusefullです。通常のpip install では導入できません。

実際のログは、以下の様になります。

尚、上図には気になる警告も出ています。毎度お馴染みCursor先生に以下、解説してもらいました。


解説

  • 何が起きている?

    • pipで`sageattention`をインストールしようとしたとき、**古いビルド方法(setup.py)**が使われています。

    • これは将来的にpipでサポートされなくなります(pip 25.3以降)。

  • どうすればいい?

    • **新しいビルド方法(PEP 517準拠)**を使う必要があります。

    • 具体的には、

      • `pip install --use-pep517 ...` を使う

      • もしくは、パッケージ側が `pyproject.toml` を用意する必要があります(利用者側は通常何もしなくてOK)。

  • 今すぐ問題?

    • 今は警告だけですが、pip 25.3以降はこの方法でのインストールができなくなります。

  • 誰が対応すべき?

    • 基本的には**パッケージ作者(sageattentionの開発者)**が`pyproject.toml`を追加して対応すべき内容です。

    • 利用者は、pipのバージョンアップ後にインストールできなくなった場合、

      • pipのバージョンを下げる

      • `--use-pep517`オプションを付ける

      • などの一時的な回避策が必要になるかもしれません。


まとめ

  • 今は警告だけなので、そのままでもインストールできます。

  • 将来的にはsageattentionの開発者がpyproject.toml対応しないと、pipの新バージョンでインストールできなくなります。

  • 利用者としては、今は特に気にしなくて大丈夫ですが、pipのバージョンアップ時に注意してください。


もしpipのバージョンやインストールで困ったことがあれば、またご相談ください!

次に、公開されているwhlからのインストール方法ですが、こちらの方が簡単にインストールできます。

Windowsのみですが、最新のPytorch環境に合わせてビルドしたwhlを公開しています。

以下のコマンドでインストールします。

 python_embeded\python.exe -m pip install "ダウンロードしたwhlファイルのパス"

sage-attention-2については以下、Manusに概略をまとめてもらいました。ただ、RTX4000系のミドルクラスでは、この性能は完全に発揮されないかもしれません。RTX3000系ユーザーからは、1と2でほとんど差が出ないという報告もありました。

大幅な性能向上という報告はRTX5090ユーザーからのもので、大半のユーザーには無関係の世界です。

SageAttention-2 に関する調査結果

ご要望のありました、より高速化された「SageAttention-2」について調査した結果を以下にまとめます。

SageAttention-2の存在と概要

SageAttention-2は、SageAttentionの改良版として実際に開発されており、その詳細は公式のGitHubリポジトリおよび関連論文で公開されています。

  • 公式情報源:

    • GitHubリポジトリ: thu-ml/SageAttention (SageAttentionとSageAttention2の両方を含む)

    • 論文: 「SageAttention2: Efficient Attention with Thorough Outlier Smoothing and Per-thread INT4 Quantization」 (arXiv:2411.10958)

SageAttention-2の主な特徴と高速化の仕組み

SageAttention2は、初代SageAttentionからさらに効率を追求し、以下の点で顕著な改善が見られます。

  1. INT4量子化の採用: 初代SageAttentionが主に8ビット量子化を利用していたのに対し、SageAttention2ではさらにアグレッシブな4ビット整数(INT4)量子化を導入しています。これにより、計算に必要なデータ量が大幅に削減され、メモリアクセスと演算処理の両面で高速化が図られています。

  2. スレッドレベルの量子化粒度: 量子化をハードウェアフレンドリーなスレッドレベルの粒度で行うことで、効率を最大化しています。

  3. 精度維持のための技術: INT4のような低ビット量子化は精度低下のリスクを伴いますが、SageAttention2では以下の技術を導入することで、精度を維持しつつ高速化を実現しています。

    • Q(クエリ)行列の平滑化(Outlier Smoothing): 外れ値を平滑化することで、量子化による情報損失を低減します。

    • P̃V行列計算における二段階累積戦略: FP8形式でP̃V行列を計算する際の精度を向上させます。

性能向上

これらの改良により、SageAttention2は以下のような大幅な性能向上を達成しています(論文発表時点)。

  • RTX4090において:

    • FlashAttention2と比較して約3倍の高速化

    • xformersと比較して約4.5倍の高速化

  • Hopper GPUにおいて:

    • FlashAttention3 (fp8) と同等の速度を達成しつつ、より高い精度を実現。

まとめ

SageAttention-2は、初代SageAttentionを大幅に進化させたバージョンであり、特にINT4量子化と関連する最適化技術によって、既存の高速化手法と比較しても顕著な速度向上を実現しています。これにより、大規模言語モデル(LLM)、画像生成、動画生成など、さまざまなAIモデルの推論処理をさらに高速化できると期待されています。

Flux1に関しては、torch.compileが効果を発揮する2回目以降に関しては大して効果がありませんが、初回は確実にsage-attention-1よりも速いです。従前、約70-80秒程度のタスクでした。

また、これを受けて、SDXL用jsonにもsage-attention-2を適用していきます(効果があるかは何とも言えないが)。但し、sage-attentionは、1だろうと2だろうと、SD1.5に対して互換性がありません。私は、SD1.5を使用する場合には、xformersのみを使用する形での起動バッチファイルを別途作成して使い分けています。

以下記事で進行中の、過去製作json見直しプロジェクト内で、随時進捗は反映させていきます。少しずつでも、毎日やってんですよ。


いいなと思ったら応援しよう!