Skip to content

Releases: DazzleML/comfyui-triton-and-sageattention-installer

v0.8.15 - Post-Install Verification & Phantom Triton Upgrade Fix

Choose a tag to compare

@djdarcy djdarcy released this 11 Aug 05:58
v0.8.15
816d6e0

ComfyUI Triton and SageAttention Installer v0.8.15

Cross-platform installer for Triton and SageAttention on ComfyUI. Simplifies GPU-accelerated inference setup with automated dependency management and RTX 5090 support.

What's New in v0.8.15

Post-Install Verification (#24)

Every install and upgrade now ends by re-reading your environment and comparing it against the plan it showed you:

----------------------------------------------------------------------
Post-install verification (plan vs. environment)
----------------------------------------------------------------------
  [OK]        PyTorch        KEEP      2.10.0+cu130 (unchanged)
  [OK]        Triton         KEEP      3.6.0.post26 (unchanged)
  [OK]        SageAttention  KEEP      2.2.0+cu130torch2.9.0andhigher.post4 (unchanged)
  [OK]        build tools    pip/setuptools unchanged (not authorized)

  Result: 4 check(s) passed, 0 deviation(s).
----------------------------------------------------------------------

Components the plan said it would keep must be unchanged, changes it said it would make must have actually happened, and pip/setuptools must be untouched unless the plan said otherwise. It changes nothing and can never fail an install. If something doesn't match, it prints a [DEVIATION] block built to be pasted straight into a bug report (and the final line reads Completed -- N verification deviation(s) instead of an unearned Success!).

Why this exists: three releases in this line (0.8.6, 0.8.12, 0.8.14) fixed cases where the preview said one thing and the install did another, and every one was found by luck. Now every run is a detector -- on your hardware, in the configurations I can't reproduce.

Phantom Triton Upgrade Fixed (#37)

On PyTorch 2.10, --upgrade --dryrun proposed Triton 3.6.0.post26 -> 3.7.1.post27, but Triton 3.7 is built for PyTorch 2.12, and upstream is explicit that each PyTorch minor pairs with exactly one Triton minor. The real run then refused and skipped, so the preview claimed that upgrade forever and never performed it.

The version table now maps each PyTorch minor to its one Triton minor, the update check asks pip for the newest compatible version instead of the newest overall, and the install step performs whatever the plan decided instead of re-deciding on its own.

# On a healthy PyTorch 2.10 + Triton 3.6.x setup, both now agree:
python comfyui_triton_sageattention.py --upgrade --dryrun
#   Triton          [KEEP]            3.6.0.post26 (already installed)

Two things worth knowing:

  • This should never touch a Triton you installed yourself. If you pip install --upgrade triton-windows on your own, the installer leaves it alone -- combinations it doesn't recognize default to "don't touch," same as always.
  • On some ComfyUI Portable setups (no packaging library), the compatibility filter used to silently allow any proposed upgrade. It now verifies with a built-in fallback, and anything it can't verify it simply doesn't propose.

Smaller Fixes

  • A no-change run no longer silently replaces setuptools (a side effect of the phantom upgrade above).
  • --with-custom-nodes --dryrun listed four custom-node entries (two duplicates under inconsistent names); it now lists the same two the install acts on.
  • CI actually runs the 317-test suite on every push now. It previously installed the test runner and never invoked it (part of how the bug above survived three releases of "fixed.)"

Kick the Tires

Same request as the last three releases:

python comfyui_triton_sageattention.py --backup           # before anything else
python comfyui_triton_sageattention.py --upgrade --dryrun # should propose nothing surprising
python comfyui_triton_sageattention.py --upgrade          # healthy setup: all KEEP, verification passes

If the dryrun proposes something surprising, or the verification block ever prints [DEVIATION], that output pasted into an issue is the most valuable bug report you can send.

Installation

git clone https://github.com/DazzleML/comfyui-triton-and-sageattention-installer.git

And run the script directly:

python comfyui_triton_sageattention.py --install

Version History (0.8.x)

Version Key Change
v0.8.15 Current — post-install verification; phantom Triton upgrade fixed
v0.8.14 Safer --cleanup (PyTorch opt-in) & recovery guidance
v0.8.13 Non-English Windows crash fix; rollback limited to the run's own installs
v0.8.12 CUDA 13.2 install fix & plan/execute integrity
v0.8.10 PyTorch 2.13 support; post6 wheels (black/noise fix)
v0.8.9 CUDA 13.2 / PyTorch 2.12 support

Platform Support

Platform Status
Windows (RTX 50-series / Blackwell, sm_120) Tested (v0.8.15 verified end-to-end on RTX 5090, PyTorch 2.10 + CUDA 13.0)
Windows (RTX 40-series and earlier) Expected to work
Linux / macOS Experimental

Requirements

  • Windows with an NVIDIA GPU and a CUDA-enabled PyTorch build
  • Python 3.9+ for most wheels; Python 3.10+ for the post5/post6 (PyTorch 2.12/2.13) wheels
  • No system CUDA toolkit change needed — the CUDA runtime ships inside the PyTorch wheel

v0.8.14 - Safer --cleanup & PyTorch Recovery Guidance

Choose a tag to compare

@djdarcy djdarcy released this 09 Aug 07:18
v0.8.14
089d046

Back up first. Then kick the tires.

If your ComfyUI works today, run this before anything else:

python comfyui_triton_sageattention.py --backup

It copies your whole environment and takes a couple of minutes. --backup list shows what you have, --backup-restore <n> puts it back. That is the difference between a bad afternoon and a five-minute recovery, and it is the single thing I would ask everyone to do.

Same request as 0.8.12, and for the same reason: this run of releases reworked how the installer decides what to do, and closed several ways it could touch things you never asked it to touch. If you are coming from 0.8.11 or earlier, everything below applies to you -- it covers 0.8.12 through 0.8.14.

It was tested on my dev box, including a from-scratch install and a GPU check confirming SageAttention's output still matches PyTorch's own attention. But this project runs on a multitude of hardware, drivers, CUDA and Python combinations I can't reproduce. Treat it accordingly, and please do not skip the backup.

Next, the check:

python comfyui_triton_sageattention.py --install --dryrun

That shouldn't change anything at all. It just prints what the installer would do. If it proposes anything surprising for a setup you know is fine, please open an issue with that output. That one command is the most valuable bug report I can get.

Then, if you're willing:

python comfyui_triton_sageattention.py --install

On an already-working setup this should report KEEP for all three components and change nothing whatsoever.


New in 0.8.14: --cleanup no longer removes PyTorch

--cleanup used to uninstall torch, torchvision and torchaudio alongside Triton and SageAttention -- the two were a single hardcoded list carried over from the original batch script. That made the documented "clean slate reinstall" (--cleanup then --install) delete a multi-gigabyte dependency that everything else in your ComfyUI environment imports, and then depend on the reinstall succeeding. As 0.8.13 showed, a reinstall can fail for reasons that have nothing to do with you.

It now removes Triton and SageAttention only. If you do want the full teardown:

python comfyui_triton_sageattention.py --cleanup all

Both forms list exactly what they will remove and ask before removing anything.

Also in 0.8.13: a failed install could remove PyTorch

The crash. Command output was decoded using the machine's ANSI codepage (cp1252 on a German system), but nvcc, cl and nmake print in the OEM console codepage (cp850). One umlaut was enough (ü is byte 0x81, which cp1252 cannot decode) so the install died with UnicodeDecodeError and then argument of type 'NoneType' is not iterable. Output is now decoded so that undecodable bytes cannot fail, in any locale.

The damage. When anything went wrong, the installer ran a "cleanup" that uninstalled a fixed list (torch, torchvision, torchaudio, triton, triton-windows, sageattention) regardless of whether that run had installed any of them. A crash before installation even began still removed all six. Rollback after a failure is now limited to packages the run actually installed; if it installed nothing, nothing is removed.

A third, found while verifying the above: switching a CPU-only PyTorch to a CUDA build requires uninstalling it first, and if the reinstall then failed you were left with neither. The installer now records the exact versions beforehand and puts them back, printing the manual pip install command if even that fails.

Reproduced with compiled nvcc/nmake tests emitting German cp850 output: before the fix, the install died at the build-tools check and triggered the cleanup above; after it, a full install completes and the kernel matches PyTorch's own attention at cosine 0.99933.

--cleanup now asks first. It removes PyTorch along with everything else, so it lists what will go and waits for confirmation, and declines under --non-interactive rather than assuming consent.

Also fixed while in there. --force crashed on Windows instead of showing its confirmation prompt, so it has been unusable since 0.8.12 on any machine that already had Visual Studio Build Tools -- if you tried it and it fell over, that was this, not your setup. On Linux and macOS, a virtual environment that failed a version check could be deleted along with every package in it; it is now left alone. And Ctrl-C during an install now tells you what state your environment is in, and how to put it back, instead of printing a traceback.

Original report from a German Windows install (#36).


Still worth knowing from 0.8.12

If you skipped that release, these matter more than the fixes above.

CUDA 13.2 installs were borked

A fresh install on CUDA 13.2 failed and installed nothing:

ERROR: Could not find a version that satisfies the requirement torchaudio (from versions: none)

PyTorch publishes torch and torchvision for CUDA 13.2 but has not published torchaudio for it on any platform, and the installer asked pip for all three at once. Installs on 13.2 now use the CUDA 13.0 packages, which are complete and run correctly on a 13.2 driver -- measured, not assumed, on an RTX 5090 at cosine similarity 0.99933.

This only affected setups without PyTorch already installed, which is why existing users never hit it.

The preview should be accurate

--dryrun exists so you can see what will happen before it happens. Bugs happen:

  • --sage-version 1 previewed "Nothing to do" and then, if you had requested SageAttention 1, downgraded a working 2.x install to 1.0.6 (as requested -- just not matching the plan).
  • Answering "no" to a confirmation prompt did not cancel it. Only the single character n worked.
  • --force quietly did nothing for Triton and SageAttention; it only applied to PyTorch.
  • A plain --install on an up-to-date setup still reinstalled SageAttention, upgraded pip and setuptools, re-extracted Python headers, and overwrote your run_nvidia_gpu.bat -- discarding any edits. An install with nothing to do now genuinely writes nothing.
  • An explicit --sage-version 2.1.1 could be silently ignored depending on which Python you launched the installer with.
  • Asking about backups from a directory that isn't a ComfyUI install created a virtual environment there before reporting there was nothing to find.

Full list in the CHANGELOG.

What changed underneath

The installer builds a plan, then executes it. That was already the design, but parts of execution were quietly ignoring the plan and deciding for themselves -- which is how a preview and a real run drift apart. The through-line across both releases is narrower: the installer may undo its own work, but not yours.

Test count went from 158 to 249 across the two releases, and there are hand-runnable checklists in tests/checklists/ for what no mocked test can reach: real pip behaviour, GPU correctness, interactive prompts, console rendering, and non-English Windows.

Most of these bugs were found by running the installer against real setups, not by the test suite. That's why the request at the top is prominent rather than boilerplate.

Upgrading

Nothing to do differently -- git pull and run the installer as usual. No changes to how you invoke it, no new required flags.

v0.8.12 - CUDA 13.2 Install Fix & Plan/Execute Integrity

Choose a tag to compare

@djdarcy djdarcy released this 07 Aug 23:28
v0.8.12
ddd3c86

Please kick the tires on this one

This is not a routine wheel-table update. Most 0.8.x releases added support for a new SageAttention or PyTorch version and touched little else. This one reworks how the installer decides what to do and how faithfully it reports that back to you. In addition it fixes a bug that stopped new CUDA 13.2 users from installing at all.

It was tested on my dev machine: a from-scratch ComfyUI and empty environment through to a working install, plus a GPU check confirming SageAttention's output still matches PyTorch's own attention. But this project runs on a multitude of hardware, drivers, CUDA and Python combinations I can't reproduce. So...

If you have a setup that already works, the most useful thing you can do is:

python comfyui_triton_sageattention.py --install --dryrun

That changes nothing at all. It just prints what the installer would do. If it proposes anything surprising for a setup you know is fine, please open an issue with that output. That one command is the most valuable bug report I can get.

Then, if you're willing:

python comfyui_triton_sageattention.py --backup      # optional, recommended
python comfyui_triton_sageattention.py --install

On an already-working setup this should now report KEEP for all three components and change nothing whatsoever.


The headline fix: CUDA 13.2 installs were borked

If you're on CUDA 13.2 and tried a fresh install, it failed and installed nothing:

ERROR: Could not find a version that satisfies the requirement torchaudio (from versions: none)

PyTorch publishes torch and torchvision for CUDA 13.2, but has not published torchaudio for it on any platform. Because the installer asked pip for all three at once, the missing one killed the whole transaction.

Installs on CUDA 13.2 now use the CUDA 13.0 packages, which are complete. CUDA minor versions are forward-compatible, so those run correctly on a 13.2 driver. And that isn't an assumption, it was measured: a full fresh install on an RTX 5090 with CUDA 13.2, ending in a SageAttention kernel matching PyTorch's own attention at cosine similarity 0.99933.

This only ever affected setups without PyTorch already installed, which is why existing users (hopefully) never hit it and why testing missed it, since every test environment already had PyTorch in it.

The theme: preview should be accurate

--dryrun exists so you can see what will happen before it happens. But bugs happen:

  • --sage-version 1 previewed "Nothing to do" and then, if the user requested SageAttention 1, downgraded a working SageAttention 2.x install to 1.0.6 (as requested -- just not matching the plan)
  • Answering "no" to the confirmation prompt before a downgrade did not cancel it. Only the single character n worked -- no was read as agreement, and the change went ahead and reported success.
  • --force quietly did nothing for Triton and SageAttention; it only ever applied to PyTorch.
  • A plain --install on an up-to-date setup still reinstalled SageAttention, upgraded pip and setuptools, re-extracted Python headers, and overwrote your run_nvidia_gpu.bat -- discarding any edits you'd made to it. An install with nothing to do now genuinely writes nothing.
  • An explicit --sage-version 2.1.1 could be silently ignored depending on which Python you launched the installer with.
  • Asking about backups from a directory that isn't a ComfyUI install created a virtual environment there before reporting there was nothing to find. Only --install, --upgrade and --run create an environment now.

Full list in the CHANGELOG.

What changed underneath

The installer builds a plan, then executes it. That was already the design, but several parts of execution were quietly ignoring the plan and deciding for themselves -- which is exactly how a preview and a real run drift apart.

This release closes those gaps and adds tests that can actually see the problem. The previous suite passed cleanly through every single one of the bugs, because it only checked that the plan was built correctly and never checked that execution followed it. Test count went from 158 to 224, and there's now a hand-runnable checklist in tests/checklists/ for what no mocked test can reach: real pip behaviour, GPU correctness, interactive prompts, console rendering.

Most of these bugs were found by running the installer against real setups, not by the test suite. That's why the request at the top is prominent rather than boilerplate.

Upgrading

Nothing to do differently -- git pull and run the installer as usual. No changes to how you invoke it, no new required flags.

If a previous version left setuptools out of range (the original #34 report), running the installer once puts it back.

Thanks to @cushycrux for the report that started this.

v0.8.10 - PyTorch 2.13 Support & Black/Noise Output Fix

Choose a tag to compare

@djdarcy djdarcy released this 23 Jul 17:21
v0.8.10
bdc531e

ComfyUI Triton and SageAttention Installer v0.8.10

Cross-platform installer for Triton and SageAttention on ComfyUI. Simplifies GPU-accelerated inference setup with automated dependency management and RTX 5090 support.

What's New in v0.8.10

PyTorch 2.13 Support (#33)

A CUDA 13.0 + PyTorch 2.13 environment previously fell back to SageAttention 1.x — CUDA 13.0 was already supported, but there was no PyTorch 2.13 wheel config yet. Torch 2.13 now installs SageAttention 2.2.0.post6 (~3x speedup over FlashAttention2). CUDA 13.2 + torch 2.13 is also covered via the existing cu132 → cu130 alias.

# On a PyTorch 2.13 + CUDA 13.0 environment
python comfyui_triton_sageattention.py --show-installed
#   CUDA            | 13.0         | Detected
#   SA 2.x Compatibility: [OK] Supported (SA 2.2.0.post6)

python comfyui_triton_sageattention.py --install

Verified end-to-end on an RTX 5090: real --install pulls the post6 cu130 wheel, and a kernel run matches PyTorch's SDPA (cosine 0.99933).

andhigher Wheels Moved to post6 (black/noise fix)

The torch2.10.0andhigher wheels (used for PyTorch 2.12 and 2.13) now use upstream's post6 build, which fixes an out-of-bound bug that could cause black or noise outputs (woct0rdho/SageAttention#98). post5 — shipped for torch 2.12 in v0.8.9 — has that bug. Both torch 2.12+post6 and torch 2.13+post6 were verified end-to-end (cosine 0.99933).

Existing torch 2.12 users are not force-migrated. A plain --install keeps your current SageAttention install untouched. To move to the fixed post6 wheel, run:

python comfyui_triton_sageattention.py --upgrade

post5 remains a valid upstream wheel — this just makes post6 the default so new installs get the fix.

Note: post6 wheels are cp310-abi3, i.e. they require Python 3.10+. Python 3.9 environments still fall back to SA 1.x.

Installation

git clone https://github.com/DazzleML/comfyui-triton-and-sageattention-installer.git

And run the script directly:

python comfyui_triton_sageattention.py --install

Version History (0.8.x)

Version Key Change
v0.8.10 Current — PyTorch 2.13 support; andhigher wheels moved to post6 (black/noise fix)
v0.8.9 CUDA 13.2 / PyTorch 2.12 support (post5 wheels)
v0.8.8 CUDA 12.9 support via tested cu128 wheel alias
v0.8.7 SA 2.x for PyTorch 2.11, post4 promoted to stable
v0.8.6 Blackwell support + upgrade reliability fixes

Platform Support

Platform Status
Windows (RTX 50-series / Blackwell, sm_120) Tested (CUDA 12.9–13.2, PyTorch 2.10–2.13 verified on RTX 5090)
Windows (RTX 40-series and earlier) Expected to work
Linux / macOS Experimental

Requirements

  • Windows with an NVIDIA GPU and a CUDA-enabled PyTorch build
  • Python 3.9+ for most wheels; Python 3.10+ for the post5/post6 (PyTorch 2.12/2.13) wheels
  • For CUDA 13.0 / 13.2: any matching PyTorch build — no system CUDA toolkit change needed (the CUDA runtime ships inside the PyTorch wheel)

v0.8.9 - CUDA 13.2 / PyTorch 2.12 Support

Choose a tag to compare

@djdarcy djdarcy released this 17 Jun 20:07
v0.8.9
3703fd0

ComfyUI Triton and SageAttention Installer v0.8.9

Cross-platform installer for Triton and SageAttention on ComfyUI. Simplifies GPU-accelerated inference setup with automated dependency management and RTX 5090 support.

This release extends SageAttention 2.x coverage to the newest CUDA toolkits and PyTorch builds -- and rounds out the CUDA 12.9 support added in v0.8.8 (just released, so it's highlighted again below in case you missed it).

What's New in v0.8.9

CUDA 13.2 + PyTorch 2.12 Support

PyTorch ships cu132 (CUDA 13.2) and torch 2.12 wheels, but SageAttention has no cu132 wheel. A cu132 environment now installs SageAttention 2.2.0.post5 using the cu130 wheel, which is ABI-compatible via CUDA's minor-version compatibility (same approach proven for cu129 in v0.8.8).

# On a PyTorch 2.12 + CUDA 13.2 environment
python comfyui_triton_sageattention.py --show-installed
#   CUDA            | 13.2         | Detected
#   SA 2.x Compatibility: [OK] Supported (SA 2.2.0.post5)

python comfyui_triton_sageattention.py --install

Verified before enabling -- not assumed. Isolated venv with torch 2.12.0+cu132, installed the cu130 post5 wheel, ran attention kernel vs PyTorch SDPA: cosine similarity 0.99933 on an RTX 5090 (sm_120). The full path was also confirmed through the installer (--show-installed, --dryrun, and an actual --install).

This release also brings the installer current with upstream's post5 wheels (the wheel line that targets PyTorch 2.12). post5 is cp310-abi3 -- i.e. it requires Python 3.10+ -- so the installer now derives the ABI tag per-wheel instead of assuming cp39.

CUDA 12.9 Support (from v0.8.8)

If you're on CUDA 12.9, v0.8.8 already added support: a cu129 environment installs SageAttention 2.2.0.post3 via the cu128 wheel (verified, cosine 0.99933). Previously these environments fell back to SageAttention 1.x. Thanks to @idolize for reporting it.

Tested-Only CUDA Aliasing

Both gap fills use a deliberately narrow alias map -- only combinations verified end-to-end are enabled:

Detected CUDA Wheel used Status
12.9 (cu129) cu128 Tested -- cosine 0.99933 vs SDPA on RTX 5090
13.2 (cu132) cu130 Tested -- cosine 0.99933 vs SDPA on RTX 5090

Any other CUDA-minor gap still falls back to SageAttention 1.x until individually verified (e.g. cu118/cu121 have no safe lower wheel to reuse; torch 2.12 on cu126 has no post5 wheel). A new read-only gap detector (tests/one-offs/detect_cuda_wheel_gaps.py) re-checks PyTorch vs SageAttention CUDA coverage on demand.

Installation

git clone https://github.com/DazzleML/comfyui-triton-and-sageattention-installer.git

And run the script directly:

python comfyui_triton_sageattention.py --install

Version History (0.8.x)

Version Key Change
v0.8.9 Current -- CUDA 13.2 / PyTorch 2.12 support (post5 wheels)
v0.8.8 CUDA 12.9 support via tested cu128 wheel alias
v0.8.7 SA 2.x for PyTorch 2.11, post4 promoted to stable
v0.8.6 Blackwell support + upgrade reliability fixes
v0.8.5 SA 2.x wheel support for PyTorch 2.10

Platform Support

Platform Status
Windows (RTX 50-series / Blackwell, sm_120) Tested (CUDA 12.9 and 13.2 verified on RTX 5090)
Windows (RTX 40-series and earlier) Expected to work
Linux / macOS Experimental

Requirements

  • Windows with an NVIDIA GPU and a CUDA-enabled PyTorch build
  • Python 3.9+ for most wheels; Python 3.10+ for the post5 (PyTorch 2.12) wheels
  • For CUDA 12.9 / 13.2: any matching PyTorch build -- no system CUDA toolkit change needed (the CUDA runtime ships inside the PyTorch wheel)

v0.8.8 - CUDA 12.9 Support

Choose a tag to compare

@djdarcy djdarcy released this 17 Jun 19:06
v0.8.8
29b88b5

ComfyUI Triton and SageAttention Installer v0.8.8

Cross-platform installer for Triton and SageAttention on ComfyUI. Simplifies GPU-accelerated inference setup with automated dependency management and RTX 5090 support.

What's New in v0.8.8

CUDA 12.9 Support (#32)

A PyTorch build reporting CUDA 12.9 previously fell back to SageAttention 1.x because no cu129 wheel is published upstream (woct0rdho/SageAttention ships only cu124/126/128/130). The installer now recognizes CUDA 12.9 and installs SageAttention 2.2.0.post3 (~3x speedup over FlashAttention2) using the cu128 wheel, which is ABI-compatible thanks to CUDA's minor-version compatibility within the 12.x series.

# On a PyTorch + CUDA 12.9 environment
python comfyui_triton_sageattention.py --show-installed
#   CUDA            | 12.9         | Detected
#   SA 2.x Compatibility: [OK] Supported (SA 2.2.0.post3)

python comfyui_triton_sageattention.py --install

Verified before enabling -- not assumed. Rather than assuming/trust compatibility, built an isolated venv with torch 2.9.0+cu129, installed the cu128 SageAttention wheel, ran the attention kernel, and compared it against PyTorch's SDPA:

  • Cosine similarity 0.99933 vs SDPA on an NVIDIA RTX 5090 (sm_120)
  • No system CUDA toolkit change required -- the installer keys off torch.version.cuda, and the CUDA runtime ships inside the PyTorch wheel

The end-to-end test ships as a reusable regression guard (tests/one-offs/test_cuda129_compat.py).

Tested-Only CUDA Aliasing

The mechanism is a deliberately narrow alias map -- only the combination we verified end-to-end is enabled:

Detected CUDA Wheel used Status
12.9 (cu129) cu128 Tested -- cosine 0.99933 vs SDPA on RTX 5090

Any other CUDA-minor gap still falls back to SA 1.x until individually verified, consistent with the project's principle of never enabling an untested version combination. A broader gap-coverage sweep is tracked as a follow-up.

Installation

git clone https://github.com/DazzleML/comfyui-triton-and-sageattention-installer.git

And run the script directly:

python comfyui_triton_sageattention.py --install

Version History (0.8.x)

Version Key Change
v0.8.8 Current -- CUDA 12.9 support via tested cu128 wheel alias
v0.8.7 SA 2.x for PyTorch 2.11, post4 promoted to stable
v0.8.6 Blackwell support + upgrade reliability fixes
v0.8.5 SA 2.x wheel support for PyTorch 2.10
v0.8.0 ComfyUI installation discovery

Platform Support

Platform Status
Windows (RTX 50-series / Blackwell, sm_120) Tested (CUDA 12.9 verified on RTX 5090)
Windows (RTX 40-series and earlier) Expected to work
Linux / macOS Experimental

Requirements

  • Windows with an NVIDIA GPU and a CUDA-enabled PyTorch build
  • Python 3.9+ (ABI3 wheels); tested on 3.12
  • For CUDA 12.9: any PyTorch cu129 build (e.g., torch 2.9.0+cu129) -- no system CUDA toolkit change needed

v0.8.7 - PyTorch 2.11 Wheels & post4 Promoted to Stable

Choose a tag to compare

@djdarcy djdarcy released this 31 Mar 19:16
v0.8.7
25c9f75

ComfyUI Triton and SageAttention Installer v0.8.7

Cross-platform installer for Triton and SageAttention on ComfyUI. Simplifies GPU-accelerated inference setup with automated dependency management and RTX 5090 support.

What's New in v0.8.7

SA 2.x Wheel Support for PyTorch 2.11

PyTorch 2.11.0 shipped as the latest stable release with cu130 as the default CUDA build. The installer now recognizes this version and installs SageAttention 2.2.0.post4 (~3x speedup over FlashAttention2) using the same forward-compatible ABI3 wheel from woct0rdho/SageAttention.

Verified working: PyTorch 2.11.0+cu130, Python 3.12.0, NVIDIA RTX 5090, Triton 3.6.0

# Install or upgrade on a PyTorch 2.11 environment
python comfyui_triton_sageattention.py --install

# Check what would be installed
python comfyui_triton_sageattention.py --install --dryrun

post4 Promoted to Stable for PyTorch 2.9

SA 2.2.0.post4 no longer requires --experimental for PyTorch 2.9.x environments. The same wheel was already serving torch 2.10 and 2.11 as non-experimental -- gating it behind --experimental for 2.9 was inconsistent.

What post4 adds over post3: torch.compile support. SageAttention no longer needs to be wrapped in torch.compiler.disable, enabling full-graph compilation. The underlying attention kernels are identical.

Impact on existing users:

  • Fresh installs on torch 2.9: get post4 (was post3)
  • Existing post3 users: unaffected (plan says KEEP, no forced upgrade)
  • --experimental flag: now reports "no experimental wheels available" instead of a misleading warning. The flag remains functional for future prerelease wheels.

Updated SA 2.x Wheel Matrix

SA Version CUDA PyTorch Notes
2.2.0.post4 13.0 2.11.x New
2.2.0.post4 12.8 2.11.x New
2.2.0.post4 13.0 2.10.x RTX 50-series / Blackwell
2.2.0.post4 12.8 2.10.x
2.2.0.post4 13.0 2.9.x Promoted from experimental
2.2.0.post4 12.8 2.9.x Promoted from experimental
2.2.0.post3 13.0 2.9.x Still available via --sage-version 2.2.0.post3
2.2.0.post3 12.8 2.7-2.9.x
2.2.0.post3 12.6 2.6.x
2.2.0.post3 12.4 2.5.x

See docs/supported_wheels.md for the full matrix including SA 2.1.1 and legacy wheels.

Installation

git clone https://github.com/DazzleML/comfyui-triton-and-sageattention-installer.git

And run the script directly:

python comfyui_triton_sageattention.py --install

Version History (0.8.x)

Version Key Change
v0.8.7 Current -- PyTorch 2.11 wheels, post4 promoted to stable
v0.8.6 Upgrade reliability fixes (plan-execute consistency)
v0.8.5 SA 2.x wheels for PyTorch 2.10 / Blackwell (Issue #29)
v0.8.0 ComfyUI installation discovery mode

Platform Support

Platform Status
Windows 11 + RTX 5090 (cu130) Tested
Windows + RTX 40xx (cu128) Expected to work
Windows + RTX 30xx (cu126/cu124) Expected to work

Testing

  • 121 unit tests passing
  • Live verified on RTX 5090: PyTorch 2.11.0+cu130, SageAttention 2.2.0.post4, Triton 3.6.0

Full Changelog

See CHANGELOG.md for complete details.

v0.8.6 - Blackwell Support + Upgrade Reliability Fixes

Choose a tag to compare

@djdarcy djdarcy released this 16 Mar 20:37
v0.8.6
0b2a79a

ComfyUI Triton and SageAttention Installer v0.8.6

This release pairs with v0.8.5 to bring RTX 50-series (Blackwell) GPU support and fix long-standing upgrade reliability issues.

RTX 50-series / PyTorch 2.10 Support (v0.8.5)

If you missed v0.8.5: this patch brings support for CUDA 13.0 and 12.8 + PyTorch 2.10 environments. Users with RTX 50-series (Blackwell) GPUs now get SageAttention 2.2.0.post4 installed automatically instead of falling back to SA 1.0.6.

Thanks to @joednemesis for reporting the missing configuration.

Blackwell note: SageAttention's CUDA kernel path has known instability on some RTX 50-series GPUs (woct0rdho/SageAttention#87). The Triton fallback path works but may not yet provide the expected speedup. This is an upstream issue being tracked there.

What's New in v0.8.6: Upgrade Reliability

During live testing of v0.8.5, it was discovered that --upgrade mode had two dryrun/actual disagreements. The preview showed one thing, but execution did another:

Bug 1 — Triton false upgrade: --upgrade --dryrun proposed upgrading Triton from 3.3.x to 3.6.x even on PyTorch 2.7 (which requires Triton 3.3.x). Running --upgrade for real correctly skipped the upgrade, but the preview was misleading.

Bug 2 — SageAttention unnecessary reinstall: --upgrade unconditionally uninstalled and reinstalled SageAttention even when already at the target version. The dryrun correctly said [KEEP], but execution ignored it and did a full uninstall/reinstall cycle of the same wheel. Initially this was intended as a feature to help check the install was valid with the user configuration by forcing the reinstall but to date it doesn't seem to catch anything and just seems to waste network traffic and CPU time.

The reason: The Plan-Execute architecture (introduced to prevent exactly this class of bug) was only applied to PyTorch. Triton and SageAttention still had their original "decide at execution time" logic, creating invisible divergence between --dryrun and --upgrade.

Fixes

Fix What changed
Triton plan filtering Pip's upgrade proposal is now checked against the PyTorch-Triton compatibility constraint before being shown in the plan. Triton 3.6 won't be proposed for PyTorch 2.7.
Triton execution install_triton() now consults the InstallPlan before acting (same pattern as install_pytorch()). If plan says KEEP, it returns immediately.
SA execution clone_and_install_repositories() now consults the plan in upgrade mode. If plan says KEEP, it skips the uninstall/reinstall cycle.
Triton constraint split _get_triton_version_constraint() now correctly returns >=3.6,<4 for PyTorch >= 2.10 (was lumped into >=3.5,<4 with PyTorch 2.9).
Future version safety Compatibility checks now use exact-range lookups instead of cascading >=. Unknown future versions (e.g., Triton 4.0, PyTorch 3.0) assume compatible — we don't touch what we don't have data on.

Design Principle: Don't Break Working Configs

This release formalizes the project's version compatibility philosophy:

  • Known compatible (tested, upstream confirmed) — enforce the constraint
  • Known incompatible (tested, breaks) — flag it
  • Unknown (future versions, no data) — assume compatible, don't touch

The goal is to treat "unknown" as technical debt to close, not a permanent state. When upstream releases new versions, the intention is to proactively add them to the test matrix.

Updated Triton/PyTorch Compatibility Table

PyTorch Triton Status
>= 2.10 3.6.x Known compatible
2.9.x 3.5.x Known compatible
2.8.x 3.4.x Known compatible
2.7.x 3.3.x Known compatible
2.6.x 3.2.x Known compatible

Updated SA 2.x Wheel Matrix

SA Version CUDA PyTorch Flag
2.2.0.post4 13.0 2.10.x --
2.2.0.post4 12.8 2.10.x --
2.2.0.post4 13.0 2.9.x --experimental
2.2.0.post4 12.8 2.9.x --experimental
2.2.0.post3 13.0 2.9.x --
2.2.0.post3 12.8 2.7-2.9.x --
2.2.0.post3 12.6 2.6.x --
2.2.0.post3 12.4 2.5.x --

See docs/supported_wheels.md for the full matrix.

Testing

  • 121 unit tests passing (6 new across v0.8.5 and v0.8.6)
  • All 21 active wheel URLs verified via HTTP HEAD
  • Live integration test confirmed: --upgrade --dryrun and --upgrade now agree exactly

Full Changelog

See CHANGELOG.md for complete details.

v0.8.5 - SA 2.x Wheel Support for PyTorch 2.10 (Blackwell)

Choose a tag to compare

@djdarcy djdarcy released this 16 Mar 19:33
v0.8.5
54c18c2

ComfyUI Triton and SageAttention Installer v0.8.5

This release adds SageAttention 2.x support for RTX 50-series (Blackwell) GPUs running PyTorch 2.10 with CUDA 13.0 or 12.8.

Thanks to @joednemesis for reporting the missing configuration.

What's New in v0.8.5

Users with PyTorch 2.10 + CUDA 13.0 (or 12.8) now get SA 2.2.0.post4 installed automatically -- no --experimental flag needed. Previously, these environments fell back to SA 1.0.6.

The fix uses woct0rdho's "andhigher" forward-compatible ABI3 wheels, which are confirmed working with PyTorch 2.10 by both the upstream maintainer (#83) and users (#86).

Blackwell caveat: SageAttention's CUDA kernel path has known instability on some RTX 50-series GPUs (woct0rdho/SageAttention#87). The Triton fallback path works but may not provide the expected speedup yet. This is being tracked upstream.

What's New Since v0.8.0

The 0.8.x series added significant infrastructure alongside the core installer:

Version Highlights
v0.8.5 SA 2.x wheels for PyTorch 2.10 + CUDA 13.0/12.8 (Blackwell support)
v0.8.4 Stats workflow: schema versioning, delta-based dedup, totals repair
v0.8.3 CI clone detection, organic clone separation, Dev tab with GitHub Statistics API charts
v0.8.2 Tabbed stats dashboard (Installs, Views, Community, Overview)
v0.8.1 Install statistics dashboard and traffic badges (#27)
v0.8.0 ComfyUI installation auto-discovery (#25, #26)

Supported Wheel Matrix (Updated)

SA Version CUDA PyTorch Type Flag
2.2.0.post4 13.0 2.10.x ABI3 --
2.2.0.post4 12.8 2.10.x ABI3 --
2.2.0.post4 13.0 2.9.x ABI3 --experimental
2.2.0.post4 12.8 2.9.x ABI3 --experimental
2.2.0.post3 13.0 2.9.x ABI3 --
2.2.0.post3 12.8 2.7-2.9.x ABI3 --
2.2.0.post3 12.6 2.6.x ABI3 --
2.2.0.post3 12.4 2.5.x ABI3 --

See docs/supported_wheels.md for the full matrix including SA 2.1.1 and legacy versions.

Testing

  • 118 unit tests passing (3 new for Issue #29 scenarios)
  • All 21 active wheel URLs verified via HTTP HEAD

Full Changelog

See CHANGELOG.md for complete details.

v0.8.0 - ComfyUI Installation Discovery

Choose a tag to compare

@djdarcy djdarcy released this 26 Jan 20:59
ccbe01a

ComfyUI Triton and SageAttention Installer v0.8.0

This release focuses on making the installer easier to use by automatically finding your ComfyUI installation. No more confusing errors when running from the wrong directory!

Fix for Issue #25 - "Where do I run this from?"

Users were unsure about where to clone and run the installer. Running from the wrong directory resulted in cryptic errors or accidentally installing to the wrong Python environment.

Solution: The installer now automatically discovers ComfyUI installations and offers to use them.

New: ComfyUI Installation Discovery

# From anywhere - installer finds your ComfyUI
python comfyui_triton_sageattention.py --install discover

# List all found installations
python comfyui_triton_sageattention.py --show-installed locations

# Smart auto-detection (single install = auto-select)
python comfyui_triton_sageattention.py --show-installed

Discovery sources:

  • ComfyUI Desktop config (%APPDATA%\ComfyUI\config.json)
  • Common locations (Documents, C:, D:)
  • Current working directory (if valid ComfyUI)

New CLI Modes

Flag Description
--install discover Find installations, select interactively
--upgrade discover Same for upgrades
--show-installed locations List all found ComfyUI installations
--show-installed discover Select installation, then show components
--base-path discover Force discovery mode
--base-path auto Check CWD first, discover if invalid

ComfyUI Desktop Support

Full support for the official ComfyUI Desktop application:

  • Detects Desktop's user data directory structure (custom_nodes + models)
  • Works with .venv environments created by uv package manager
  • Reads Desktop's config.json for reliable path discovery

Smart Auto Mode

When running --show-installed from outside a ComfyUI directory:

  • Single installation found: Auto-selects and shows components (no interaction needed)
  • Multiple installations: Lists them with hint to use --show-installed discover

Architecture Improvements

New abstractions for cleaner, more maintainable code:

  • PythonEnvironment dataclass - Encapsulates environment details
  • InstallationTarget dataclass - WHERE (base_path) + HOW (environment)
  • is_comfyui_directory() - Validates ComfyUI installations
  • discover_comfyui_installations() - Finds all installations
  • select_installation_interactive() - Menu for selection

Testing

  • 32 new unit tests for discovery functionality
  • Test count: 83 → 115
  • All tests passing

Full Changelog

See CHANGELOG.md for complete details.