Download

Download

The current stable build. chaiNNer sets up its own Python environment the first time you open it, so there is nothing to install beforehand.

Alpha v0.25.1

2025-10-23

Download

Pick your platform from the list below.

All platforms

Windows

Windows Installer .exe

103 MB

Windows

Windows Portable .zip

106 MB

macOS

macOS Installer .dmg

125 MB

Linux

Linux Debian, Ubuntu .deb

78 MB

Linux

Linux Fedora, RHEL .rpm

71 MB

Linux

Linux Portable .zip

101 MB

Nightly builds →

Release notes

Alpha v0.25.1

2025-10-23

This is a small update to address a few issues that have been resolved since the last release. If the current version of chaiNNer is working fine for you, you can ignore this update.

If you have an older (1000 series or lower) Nvidia GPU, please reinstall PyTorch from the dependency manager.

What's Changed

  • Fix GTX 1000 series GPU compatibility with PyTorch (#3161)
  • Fix conditional input validation bug causing NOT logic operation to require hidden input B (#3154)
  • Fix audio not saving in save video node (#3174)
  • Fix dependency resolution to prevent using global Python site-packages (#3134)
  • Fix TensorRT engine cache persistence across application restarts (#3139)
  • Fix grammar and capitalization in Python setup error messages (#3133)
  • Hide "install all packages button", due to its functionality being broken (#3179)

NOTE: I had to disable code signing for MacOS due to it causing build issues. I do not know how exactly that will manifest when trying to install this update, but just a heads up that you might get some kind of warning now that you did not used to.

Full Changelog: v0.25.0...v0.25.1

Alpha v0.25.0

2025-10-19

After more than a year without a stable release, chaiNNer development has resumed at reduced capacity. This release brings the features from the nightly version to stable (with many of the reported bugs from the nightly version fixed).

The main new feature is support for using multiple iterators of equal length together. Nested or combined iteration is still not supported. UX for this feature remains limited but stable based on user feedback.

Users with RTX 5000-series GPUs should install this update and update PyTorch through the dependency manager.

Changelog:

Major Changes:

  • Add support for combined iterator lineage by @joeyballentine and @RunDevelopment in #2949, #2960, #2973, #2975, #2971, #3141
    • This allows mixing and matching of same-length iterators.
  • Allow more nodes to be "starting nodes" by @joeyballentine in #2944
    • This allows the ability to pass a path into Load Image, for example
  • Update Torch & Torchvision to support RTX 50 series by @LlamaEnjoyer in #3103

Minor Changes:

  • Add padding input to PyTorch Upscale node by @RunDevelopment in #2966
  • Add support for 3 TIFF compression modes by @RunDevelopment in #2970
  • Add ONNX size requirements and more robust shape detection by @RunDevelopment in #2978, #2979
  • Add support for new SR architectures as supported by Spandrel version 0.4.1 by the-database in #3038, #3082
  • Add support for subtle noise generation in "Add Noise" node by @Arcitec in #3055
  • Updates to "Align Image to Reference" node by @pifroggi in #3091
  • Rename "Model Scale" node to "Get Model Info" node by @tumuyan in #3090

New Nodes:

Bug Fixes:

  • Fix undo history containing select state by @joeyballentine in #2961
  • Fix label for != in Compare node by @RunDevelopment in #2991
  • Clarify "Load Model" SafeTensors documentation by @JeremyRand in #3028
  • (A1111/SD) Fix SwinIR 4X being referenced with wrong name by @PereViader in #2998
  • Fix "Install All Packages" hanging indefinitely in Dependency Manager by @copilot in #3127

Known Issues:

  • "Logic Operation" currently has an issue with the NOT operation that is being looked into
  • DML support for ONNX was added by @FNsi but is currently broken

New Contributors

Full Changelog: v0.24.1...v0.25.0

Alpha v0.24.1

2024-06-07

This update contains a few bug fixes and some QOL improvements.

What's Changed

  • Add UI for anchor/position dropdowns by @RunDevelopment in #2940
  • Add "Install All" button to dependency manager by @RunDevelopment in #2931
  • Make node widths slightly more consistent when dealing with handles by @RunDevelopment in #2938
  • (PyTorch) Add a setting for clearing CUDA cache after each inference by @joeyballentine in #2930
  • (PyTorch) Never auto update PyTorch to allow custom versions to remain installed by @joeyballentine in #2943

Bug Fixes

  • (PyTorch) Fix incorrect tile size estimations after upscaling optimizations by @joeyballentine in #2929
  • Fix output types for the Resolutions node by @RunDevelopment in #2937

Full Changelog: v0.24.0...v0.24.1

Alpha v0.24.0

2024-06-01

This update brings many new major features to chaiNNer, including but not limited to conditional branching (via two new nodes: Conditional and Compare), node passthrough/skipping, new themes, PyTorch optimizations, and many more fixes and quality of life improvements all around.

The conditional and compare nodes bring a long-awaited feature: branching support. Well, mostly. These nodes allow you to switch between inputs based on a condition created by comparing two values in various ways. This means users can finally set up chains that do one thing under a certain condition and another thing under a different one (e.g. if an image is over a certain size vs under a certain size). The thing to keep in mind is how you have to set this up might be opposite of what's intuitive. Since you're switching between values, it's what comes before the condition that is decided between, not what comes after.

The disable toggle has also been replaced with a button that allows you to swap between three states: "enabled", "disabled", and "skipped". In skipped mode, the node will not be run, but it also will not disable downstream nodes like disabling it would. This is another heavily-requested feature that we are happy is finally in chaiNNer.

New themes can be selected in settings. This is semi-experimental as we plan on adding support for fully custom themes in the future, as well as improving the existing default selection. The current selection is mainly just a proof of concept to show that we can support themes of some kind, and also to give users some options for customization. We'd love to hear feedback on the current selection and if you have any suggestions on themes to add.

PyTorch upscaling has been heavily optimized. I was able to using a visual profiling tool (called VizTracer, which I highly recommend for anyone wanting to optimize a python project) to see what was slowing down upscaling. Upscaling has been optimized to a point where it's roughly 1.25x faster than it was before (though YMMV depending on what model you use, as well as other factors). While not perfect, it's still a large improvement and should help your PyTorch upscaling chains run faster.

Major Changes

  • Support passthrough/skipping nodes by @RunDevelopment in #2805, #2864, #2887
  • Add new themes by @joeyballentine in #2833, #2847, #2874, #2921
  • Various optimizations to PyTorch upscaling by @joeyballentine in #2853, #2852, #2861, #2859, #2858, #2860, #2862, #2869, #2884, #2886

Minor Changes

New Nodes

Bug Fixes

  • Fixed input gathering for collectors by @RunDevelopment in #2818
  • Use atexit to always kill worker by @RunDevelopment in #2822
  • Rework GPU API to fix issues with older GPUs by @RunDevelopment in #2821
  • Avoid RGB contamination by transparent pixels in "Color Transfer" node by @Splendide-Imaginarius in #2389
  • Prevent chain files from being saved in install directory by @joeyballentine in #2835
  • Fix that empty string was not allowed as the default value by @RunDevelopment in #2856
  • Fix converting indexed PIL images to NumPy by @RunDevelopment in #2881
  • Fix node documentation modal opening on reload by @joeyballentine in #2883
  • Fix timing issue for lazy inputs by @RunDevelopment in #2890
  • Prevent log spam by not logging useless stack traces by @RunDevelopment in #2900\
  • Fix image pairs length validation when using limit by @joeyballentine in #2917
  • (ONNX) Fix size requirement padding by @RunDevelopment in #2918
  • Add status API to get executor status to prevent stale/stuck status by @RunDevelopment in #2928

New Contributors

Full Changelog: v0.23.2...v0.24.0

Alpha v0.23.3

2024-04-24

This is a hotfix release to fix a regression introduced in the v0.23.2 which caused iterators to error when running. Apologies to anyone who was affected by this issue.

Bug Fixes

Alpha v0.23.2

2024-04-23

This update fixes a few bugs and adds some new features.

Please note: If you install or update chaiNNer and get a critical error upon setup completion, please attempt restarting chaiNNer before reporting.

What's Changed

New Nodes

  • Add "Crop Border" node to remove border/frame with constant color by @RunDevelopment in #2794

Bug Fixes

  • Fix startup crash when using a system language other than English on Windows by @joeyballentine in #2815
  • Prevent middle-mouse and right-click from triggering tab clicks by @RaySit in #2792
  • Fixed 'Copy File Name' option for file inputs by @RunDevelopment in #2793
  • Don't allow ONNX conversion for Craft models by @RunDevelopment in #2797
  • Fixed SSE request not getting canceled and getting SSE stuck by @RunDevelopment in #2806

New Contributors

  • @RaySit made their first contribution in #2792

Full Changelog: v0.23.1...v0.23.2

Alpha v0.23.0

2024-04-11

This biggest part of this release was a bunch of internal changes we made that aren't super easily reflected to users. However, you will (hopefully) notice a bit more stability in certain areas.

There are a bunch of new features, changes, bug fixes, and all the rest of the usual stuff included as well.

As always, please report any new issues that pop up in this release.

Major Changes

  • Major internal refactors by @joeyballentine, @RunDevelopment in #2597, #2647, #2649, #2651, #2650, #2659, #2675, #2677, #2683, #2718, #2719, #2726, #2738, #2745, #2748, #2754, #2755, #2767, #2769
    • Improves the reliability of stopping execution
    • Improves the reliability of installing dependencies from the dependency manager
    • Allows the UI to handle dependency installation even when using a remote host (note: remote hosts are still not fully supported)
  • Add ability to rename nodes by double clicking on the node's name by @joeyballentine in #2749
  • Remove the splash screen, chaiNNer now starts directly to its main window by @joeyballentine in #2731, #2758
  • Add key information to collapsed nodes by @RunDevelopment in #2656, #2657
  • (PyTorch) Make PyTorch upscaling pauseable by @RunDevelopment in #2705, #2732
  • Improve Python setup process by @RunDevelopment in #2768
  • Improve iterator ETA by @RunDevelopment in #2775
  • Allow math expressions in number inputs by @RunDevelopment in #2697

Dependency Updates

  • (PyTorch) Update Spandrel for improved model support by @RunDevelopment, @joeyballentine in #2655, #2710, #2661, #2646
    • Adds support for RGT, Restormer, FFTformer, M3SNet, DCTLSA, APISR, MixDehazeNet, ATD, AdaCode, MPRNet, MIRNet2, DnCNN, FDnCNN, and DRUNet
    • Removes SPSR support
  • (ONNX) Update ONNX & ONNX Runtime which fixes execution issues @joeyballentine in #2717

New Nodes

Minor Changes

Bug Fixes

Full Changelog: v0.22.2...v0.23.0

Every release on GitHub →

chaiNNer, a node-based image processing editor