Releases: chaiNNer-org/chaiNNer
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
Alpha v0.21.1
This update fixes a pretty crucial bug with upscaling images with transparency with PyTorch models.
Important note: I forgot to mention last update to make sure you have the latest Nvidia drivers after you update PyTorch. If your drivers haven't been updated in over a year, PyTorch upscaling might start not working or being extremely slow.
What's Changed
- Better node errors using error messages in output types by @RunDevelopment in #2445
- Add a popup message on start for dependency updates by @joeyballentine in #2453, #2458
Bug Fixes
- Fixed upscaling with transparency by @RunDevelopment in #2457
Other/Dev Changes
- Replace global execution options with node context parameter by @RunDevelopment in #2444
- Use screenToFlowPosition() instead of project() by @joeyballentine in #2459
Full Changelog: v0.21.0...v0.21.1
Alpha v0.21.0
This might be chaiNNer's biggest update ever! Sorry for how long it took, we spent a lot of time making sure this release had the polish we deemed necessary. There are a lot of big changes in this update, but here are some highlights: Better iterators, general optimizations, support for more PyTorch models, chain auto-organization, and much more. Here are the major changes in greater detail:
Better Iterators
This might not be the final step in our goal of getting iteration in chaiNNer to where we want to be, but it's certainly a step in the right direction. Iterators are no longer gigantic nodes with their own sub-flow editor in them. Now, they are single nodes that can be attached like normal, which makes working with iteration a whole lot easier. Not only that, but it also allows mixing and matching iterators and "collectors", so now you can do things like convert an image sequence to a video, or split a spritesheet to separate images.
However, only one iterator is actually allowed to be part of the same chain "lineage", so you still are not able to do things like match multiple iterators together or combine an image iterator and a model iterator. That is a lot more complex and will hopefully come in the future. Oh yeah, and all the iterator nodes have new names as well, so instead of "Image File Iterator", look for "Load Images".
General Optimizations
We spent some time working on optimizing a few aspects of chaiNNer and generally improving speed. From making PyTorch upscales faster to optimizing things like resizing to making the frontend use less CPU, you should notice a general speedup all around.
Support for more PyTorch models
Part of what made this release take a while was that we took a small break from working on chaiNNer to separate out our model support code into a new Python package called Spandrel. Doing so allowed us to more easily add support for a variety of new models (such as SPAN, Real-CUGAN, FBCNN, and more) and we even got some contributions from the community. Spandrel is now being used in AUTOMATIC1111's stable diffusion webui, and will most likely also be used in ComfyUI soon. If you want chaiNNer's automatic model support in your Python project, go check out Spandrel. To see a list of all the currently supported models, check here.
Other notable changes
- Chains can now be auto-formatted/organized using Edit > Format Chain (or using ctrl+shift+f).
- Upscale tiling is now even more seamless, using a blending technique to avoid hard seams with certain models like SCUNet.
- Some general UI improvements and quality-of-life additions.
- Many new nodes.
And now for the changelog:
Dependency Updates
PyTorch
- Update PyTorch to 2.1.2 by @joeyballentine in #2265, #2349, #2429
- Add SafeTensors support by @joeyballentine in #2272, #2440
- Use new Spandrel package for model loading by @joeyballentine and @RunDevelopment in #2330, #2343, #2348, #2354, #2359, #2392, #2412, #2428, #2409
Changes
New Nodes
- "Alpha Matting" node by @RunDevelopment in #2292
- "Pixel Art Upscale" node by @RunDevelopment in #2326
- "Strengthen Normals" node by @RunDevelopment in #2372
- "Unified Pad" node by @RunDevelopment in #2373
- "Unified Resize" node by @RunDevelopment in #2380
- "Chroma Key" node by @RunDevelopment in #2381
- "Optimize ONNX Model" node by @RunDevelopment in #2408
Optimizations
- Optimize box blur by @RunDevelopment in #2325
- Optimize gamma implementation by @RunDevelopment in #2386
- Optimize image resizing and add more resizing algorithms by @RunDevelopment in #2387, #2390, #2394
- Optimize Split Transparency output for subsequent operations by @RunDevelopment in #2391
- Optimize PyTorch upscale by @RunDevelopment in #2407
- Optimize regex replace by @RunDevelopment in #2411
- Change edge running animation and behavior by @joeyballentine in #2424
Changes
- Iterator rewrite by @joeyballentine and @RunDevelopment in #2254, #2267, #2276, #2280, #2286, #2442, #2449
- Add chain auto-organization/formatting by @joeyballentine and @RunDevelopment in #2377, #2395
- Add type tags for number ranges by @RunDevelopment in #2284
- Improve "Remove Background" node types by @RunDevelopment in #2291
- Simple fused input-output elements by @RunDevelopment in #2338
- Improve screenshots by @RunDevelopment in #2340
- Add fused output for "Pass Through" node by @RunDevelopment in #2341
- Allow configuring multithreading for ncnn by @JeremyRand in #2342
- Make ncnn memory budget configurable by @JeremyRand in #2351
- Allow setting ONNX opset by @RunDevelopment in #2361
- Add overlap blending for auto split by @RunDevelopment in #2363
- Add open delay to status tooltips by @RunDevelopment in #2364
- Add threshold group by @RunDevelopment in #2368
- Add "tabs" style for dropdown inputs by @RunDevelopment in #2367
- Improve "Normalize Normals" node by @RunDevelopment in #2371
- Add a bit of padding to tab list by @RunDevelopment in #2374
- Add relative coordinates for Pick Color by @RunDevelopment in #2382
- Allow custom blurred images in High Pass by @RunDevelopment in #2388
- Add opset output to Convert ONNX by @RunDevelopment in #2396
- Add categories and dividers for dropdowns by @RunDevelopment in #2398
- Add Separate Alpha option to "Resize" node by @RunDevelopment in #2400
- Change default crop width & height to 100 by @RunDevelopment in #2401
- Mark ignored inputs by @RunDevelopment in #2403
- Support capturing groups in "Regex Replace" node types by @RunDevelopment in #2404
- Make tiling support colorization models by @RunDevelopment in #2406
- Add relative coordinates and tile fill for Shift node by @RunDevelopment in #2413
- Make "Resize To Side" input order consistent with Resize by @RunDevelopment in #2414
- Simplify size requirements logic in "Inpaint" node by @RunDevelopment in #2430
- Allow glob negation in image iterator by @joeyballentine in #2432
Bug Fixes
- Clamp YUV->RGB out of gamut by @RunDevelopment in #2264
- Detect HTTPS WebUI on localhost by @RunDevelopment in #2278
- Fix a^b in Math node and improved output type by @RunDevelopment in #2282
- Remove unnecessary alpha channels for loaded DDS files by @RunDevelopment in #2293
- Enable tiling for SCUNet by @joeyballentine in #2294
- Fix execution buttons disabled state by @joeyballentine in #2316
- Filter events in
/run/individual
by @RunDevelopment in #2320 - Prevent dragging on view image button by @RunDevelopment in #2339
- Refactor out onnx conversion + use data for ncnn input name by @joeyballentine in #2360
- Fix alert box closing delay by @RunDevelopment in #2383
- Fix race condition in
/run/individual
by @RunDevelopment in #2410
Other/Dev Changes
- Switch to linting & formatting the backend with Ruff by @RunDevelopment and @joeyballentine in #2296, #2301, #2303, #2302, #2300, #2304, #2306, #2305, #2308, #2314, #2315, #2435
- Update react flow by @joeyballentine in #2268, #2344
- Remove
inputSize
in save files by @RunDevelopment in #2273 - Update navi to 0.6.2 by @RunDevelopment in #2283
- Restructured API files by @RunDevelopment in #2285
- Fix release workflows on macOS by @RunDevelopment in #2298, #2299
- Add caching to backend dependency installs for both CI and application by @joeyballentine in #2311
- Fix node_check for 3.8 by @RunDevelopment in #2321
- Remove GPU list endpoints by @joeyballentine in #2333
- Rework how nodes are sorted by @RunDevelopment in #2323
- Update Navi PyTorch model types by @RunDevelopment in #2337
- Update electron forge to latest + fix mac release by @joeyballentine in #2350
- Update pyright and use library types by @RunDevelopment in #2356
- Type-safe model purpose for model inputs by @RunDevelopment in #2358
- Enforce objects by @RunDevelopment in #2357
- Updated to latest version of chakra ui by @RunDevelopment and @joeyballentine in #2365, #2366, #2370
- Migrate VSCode
settings.json
by @RunDevelopment in #2399 - Rework backend events by @RunDevelopment in #2402
- Refactor High Pass implementation to avoid code duplication by @RunDevelopment in #2415
Full Changelog: v0.20.2...v0.21.0