Releases: chaiNNer-org/chaiNNer
Alpha v0.24.1
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
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
- Add avif support by @the-database in #2820
- Add convolve usage example by @BigBoyBarney in #2827
- (PyTorch) Add custom tiling option by @the-database in #2828, #2870, #2880
- (PyTorch) Update spandrel (adds support for PLKSR, RealPLKSR, IPT, SAFMN_BCIE, DRCT) by @RunDevelopment in #2837, #2846
- Default chain file saving to documents folder by @joeyballentine in #2836
- Rename parameters of numeric inputs and clean up parameters by @RunDevelopment in #2863
- Increase font size for type tags by @RunDevelopment in #2865
- Make all Switch inputs optional by @RunDevelopment in #2867
- Slightly redesign the Math node by @RunDevelopment, @joeyballentine in #2868, #2873
- Better type errors for text nodes by @RunDevelopment in #2871
- Add "order" dropdown for both spritesheet nodes by @joeyballentine in #2878
- Improve style of multiline text area by @RunDevelopment in #2885
- Add a "simple" mode for saving video by @joeyballentine in #2879
- Slightly more space for text in dropdowns by @RunDevelopment in #2892
- Slightly more compact Save Video node by @RunDevelopment in #2893
- Optimize away Passthrough nodes by @RunDevelopment in #2896
- Add type color for Booleans by @joeyballentine in #2891
- Add type color for Colors by @joeyballentine in #2898, #2904
- Stricter condition for type assignability by @RunDevelopment in #2902
- Select best-matching node based on search query by @RunDevelopment in #2903
- Support connected handles with multiple colors by @RunDevelopment in #2906
- Better type error message for division by zero by @RunDevelopment in #2907
- Fix assignability for outputs with errors by @RunDevelopment in #2909
- Add special suggestion for Math and Compare nodes in node selector by @RunDevelopment in #2908
- Mention node names in error messages by @RunDevelopment in #2920
- Add similarity check to ONNX model conversions by @RunDevelopment in #2915
- Add support for ONNX type and tag broadcasting by @RunDevelopment in #2919
- Improve types for model conversion nodes by @RunDevelopment in #2925
New Nodes
- Add "Compare" & "Conditional" nodes by @RunDevelopment in #2866, #2895
- Add "Image Align with Rife" and "Wavelet Color Fix" Nodes by @pifroggi, @RunDevelopment in #2714, #2888, #2889
- Add "Regex Find" node by @RunDevelopment in #2855
- Add "Separate Color" node by @joeyballentine, @RunDevelopmentg in #2897, #2910
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
- @the-database made their first contribution in #2820
- @pifroggi made their first contribution in #2714
Full Changelog: v0.23.2...v0.24.0
Alpha v0.23.3
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
- Fixed input gathering for collectors by @RunDevelopment in #2818
Alpha v0.23.2
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
- Optimized Box Blur for different x-y radii by @RunDevelopment in #2795
- Move FFMPEG download to the backend by @RunDevelopment in #2799
- Improved validation for
goIntoDirectory
by @RunDevelopment in #2801 - Support multi-en/disabling nodes by @RunDevelopment in #2800
- Validate all relative paths by @RunDevelopment in #2809
- Add Skip existing files option for Save Image by @RunDevelopment in #2808
- Add softness for Threshold anti-aliasing by @RunDevelopment in #2812
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
Full Changelog: v0.23.1...v0.23.2
Alpha v0.23.1
What's Changed
- Optimize Clamp node by @RunDevelopment in #2785
- Rename Fast NL means node to Denoise by @RunDevelopment in #2786
Bug Fixes
- Fix nodes not refreshing after changing dependencies by @joeyballentine in #2787
Full Changelog: v0.23.0...v0.23.1
Alpha v0.23.0
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
- Add Directory Go Up and Directory to Text nodes @RunDevelopment in #2695
- Add Directory Go Into node by @RunDevelopment in #2702
Minor Changes
- Use a single settings file and refactor settings by @RunDevelopment in #2640, #2735
- Make the "Random Seed" button non-draggable by @RunDevelopment in #2653
- Add setting to hide minimap by @RunDevelopment in #2652
- Use package display name in dependency manager by @RunDevelopment in #2672
- Improve error reporting by @RunDevelopment in #2685
- Automatically remove unused nodes with side effects by @RunDevelopment in #2690
- Automatically create directory for Save X nodes by @RunDevelopment in #2691
- Move important nodes up in Image category by @RunDevelopment in #2692
- Automatically set value after clicking on steppers by @RunDevelopment in #2698
- Ignore error types in docs by @RunDevelopment in #2704
- Improve missing module error logging by @RunDevelopment in #2737
- Improve UI for dependency manager by @RunDevelopment in #2742, #2743
- Clean up files on uninstall (windows only) by @RunDevelopment in #2746
- Stop progress bar from moving logo by @RunDevelopment in #2756
- Hide minimap by default by @RunDevelopment in #2757
- Add "Clear" options for file and directory inputs by @RunDevelopment in #2760
- Optimize Brightness and Contrast node by @RunDevelopment in #2773
- Optimize Hue & Saturation node by @RunDevelopment in #2774
- Organize adjustments category by @RunDevelopment in #2776
Bug Fixes
- Fix default values not being added correctly on load by @RunDevelopment in #2658
- Fix vivid light blend mode implementation by @BigBoyBarney in #2664
- Fix connection error tooltip getting stuck by @RunDevelopment in #2676
- Fix glob negation by @joeyballentine in #2678
- Fix division by zero in progress calculation by @RunDevelopment in #2686
- Fix F5 (and others) from inside number and text inputs by @RunDevelopment in #2696\
- Fix FLT_MAX ONNX -> NCNN error by @joeyballentine in #2684
- Fix padding on number inputs by @RunDevelopment in #2699
- Fix unused side-effect node optimization for Copy To Clipboard by @RunDevelopment in #2700
- Fix symbols in path type tags by @RunDevelopment in #2701, #2706
- Fix search bar in node documentation being below nodes by @RunDevelopment in #2703
- Fix context selector pane moving body by @RunDevelopment in #2733
- Don't re-log empty messages by @RunDevelopment in #2736
- Disallow converting SPAN models to NCNN by @RunDevelopment in #2763
- Fix Execution Number node not working when collapsed by @RunDevelopment in #2766
- Proper capitalization for TensorRT in ONNX settings by @RunDevelopment in #2764
- Fix saving images with non-ASCII characters by @RunDevelopment in #2772
Full Changelog: v0.22.2...v0.23.0
Alpha v0.22.2
What's Changed
- Various UI optimizations by @RunDevelopment in #2625, #2627, #2631
- Add suggested connections in editor node selector panel by @joeyballentine in #2582, #2637
- Rename "Change Colorspace" node to "Change Color Model" by @mrjschulte in #2574
- Stretch type tags to fill available space by @RunDevelopment in #2635
- Add smooth value noise to "Create Noise" node by @RunDevelopment in #2638
New Nodes
- Add "Resolutions" node by @mrjschulte in #2610
Bug Fixes
- Various UI fixes by @RunDevelopment in #2631, #2633, #2634, #2632
- Fix "Create Checkerboard" node not properly handling grayscale and RGB images by @RunDevelopment in #2628
Full Changelog: v0.22.1...v0.22.2
Alpha v0.22.1
What's Changed
- Add MiniMap by @mrjschulte in #2596, #2602
- Support custom scales for PyTorch upscale by @RunDevelopment in #2613
- Small optimization for Save Video by @joeyballentine in #2617
New Nodes
- Add "Create Checkerboard" node by @mrjschulte, @joeyballentine in #2606, #2614
- Add "Premultiplied Alpha" Node by @mrjschulte in #2578
Bug Fixes
- Fix loading certain older chains that contained video nodes by @joeyballentine in #2619, #2618
Full Changelog: v0.22.0...v0.22.1
Alpha v0.22.0
Dependency Changes
- Auto update dependencies by default, except GPU Pytorch & Torchvision by @joeyballentine in #2524
- Most dependencies will now be auto-updated if installed, to avoid any issues due to users not updating
- (PyTorch) Update Spandrel to v0.2.2 by @joeyballentine in #2553
- Fixes SPAN model loading when created by updated neosr
Major Changes
- Collapsing & expanding nodes by @joeyballentine, @RunDevelopment in #2544, #2560
- A new button on the top-left corner of nodes to collapse or expand nodes
- Add "Breakpoints" feature to edges for custom edge routing by @joeyballentine, @RunDevelopment in #2548, #2583, #2586
- Right-click > Add Breakpoint or hold alt and click to add a "breakpoint" to a connection line
- Arrow-key navigation in node search panel by @joeyballentine in #2575
- The viewport's right-click/drag-out node search panel now supports arrow key navigation
Changes
- Make iterator handles more square by @RunDevelopment in #2503
- Generate tileable normal maps by @RunDevelopment in #2505
- Make Fill Alpha output the alpha channel by @RunDevelopment in #2510
- New inline label design for number, text, and dropdown inputs by @RunDevelopment in #2502
- Change "Note" node styling and make it more versatile by @joeyballentine in #2465
- Remove the unfinished experimental presets feature by @joeyballentine in #2522
- Update Load Video node for more accurate color conversion and chroma reconstruction by @mrjschulte in #2532
- Add more inputs/outputs to Pass Through by @joeyballentine in #2549
- Improve UI for Text as Image and Color Levels nodes by @RunDevelopment in #2552, #2554, #2561, #2564, #2571
- Improve color accuracy in Remove Background node by @RunDevelopment in #2557
- Hide Copy to Clipboard input label by @RunDevelopment in #2562
- Improve UI of Normal Map Generator node by @RunDevelopment in #2567
- Support hints for inline labels by @RunDevelopment in #2569
- Improved node resetting by @joeyballentine, @mrjschulte in #2566, #2547
New Nodes
- Add "Accumulate" node for sequences of numbers by @RunDevelopment in #2507
- Add "Edge Detection" node by @RunDevelopment in #2509, #2590
- Add "Multiply" node by @mrjschulte in #2540
- Add "Add" node by @mrjschulte in #2528
- Add "Divide" node by @mrjschulte in #2541
- Add "Log To Linear" node by @mrjschulte in #2546
- Add "Create Colorwheel" node by @mrjschulte in #2576
- Add "Clamp" node by @mrjschulte in #2573
Bug Fixes
- Fix load error messages not having a stack trace by @RunDevelopment in #2508
- List images starting with dot by @RunDevelopment in #2511
- Disallow ONNX conversions for SAFMN by @RunDevelopment in #2512
- Save video input fix by @RunDevelopment in #2514
- Move model to device after pytorch interpolation by @joeyballentine in #2525
- Avoid undefined behavior in PyTorch by @RunDevelopment in #2570
- Fix Threshold + AA resulting in wrong broadcasting by @RunDevelopment in #2592
- Fix pixelate node resizing the image by @RunDevelopment in #2589
- Yield in iterator to process events by @RunDevelopment in #2535
- Quiet FFMPEG terminal output by @mrjschulte in #2543
- Fix color of inline code in tooltips by @RunDevelopment in #2568
New Contributors
- @mrjschulte made their first contribution in #2532
Full Changelog: v0.21.2...v0.22.0
Alpha v0.21.2
This update fixes a few things as well as makes some general improvements. You know the drill.
Dependency Updates
- (PyTorch) Update to spandrel v0.2.1 by @RunDevelopment in #2487
- Adds support for SAFMN and fixes a few minor issues with upscaling small images.
What's Changed
- Add "Copy" to right-click context menus by @joeyballentine in #2473
- Make Save Video input names consistent with Save Image by @RunDevelopment in #2480
- Correctly show mixed iterator-non-iterator inputs/outputs by @RunDevelopment in #2481
- Avoid running non-chosen "Switch" node paths by @RunDevelopment in #2477
- Pad images according to size requirements when upscaling by @RunDevelopment in #2485
- Add PyTorch memory budget limit setting by @joeyballentine in #2472
- Add "Manual/Copy" install mode to dependency manager by @joeyballentine in #2462
- Mark iterated inputs/outputs as sequenced in docs by @RunDevelopment in #2495
- Fix iterator limit and improved output types by @RunDevelopment in #2496
- Fix iterator lineage checks in UI by @RunDevelopment in #2494, #2498
- Allow handles for "Merge Spritesheet" number inputs by @RunDevelopment in #2499
- Rename "Strengthen Normals" to "Scale Normals" by @RunDevelopment in #2500
New Nodes
- "Execution Number" node by @joeyballentine in #2433
Bug Fixes
- Fix scale of Hq2X in output type by @RunDevelopment in #2467
- Fix NCNN model interpolation execution context by @RunDevelopment in #2468
- Fix accent color for
any
outputs by @RunDevelopment in #2479
Other/Dev Changes
- ONNX upscale reworked by @adegerard in #2417
Full Changelog: v0.21.1...v0.21.2