Releases: chaiNNer-org/chaiNNer
Alpha v0.6.0
New Features:
- PyTorch's Load Model node now has an information preview, telling you the scale, what architecture it is, and other model information.
- Added NCNN interpolation. Interpolate compatible NCNN models similarly to how it is done with PyTorch. This change comes with both an Interpolate Models node and a Save Model node.
- NCNN models now respect the FP16 setting in the settings menu.
- New setting to disable hardware acceleration. This is only useful if hardware acceleration causes issues for you.
- Hue & Saturation Node (thanks @theflyingzamboni)
- Made the Brightness & Contrast node work more like how it works in GIMP (thanks @theflyingzamboni)
- If PIL is installed, chaiNNer will use its more accurate downscaling algorithms instead of OpenCV's (thanks @theflyingzamboni)
- Added two nodes to help with Normal Maps: Add Normals and Normalize. Now you can add two normal maps together, or normalize existing normal maps (thanks @RunDevelopment)
- Added a Color Fix node that allows you to fix any color shifts that happened as a result of upscaling (thanks @RunDevelopment)
- Added a Fill Alpha node which has two modes for extending the edges of images that have a transparent background. Combined with the Split/Merge Transparency nodes, this will be very useful for making better upscales that have transparency (thanks @RunDevelopment)
- Changed node search to use fuzzy string matching (thanks @RunDevelopment)
Bug Fixes:
- Fixed the RAM counter not being accurate on Linux (this might not actually be fully fixed, so please let me know if it isn't)
- M1 MacBooks should now download the correct version of Python that supports ARM CPUs. If you had previously installed chaiNNer, you may need to manually remove the old Python version from your app data folder (the same folder that your logs folder is in, which you can get to by doing Help>Open logs folder)
- Added slightly better error handling that should now prevent chaiNNer from getting stuck when there is a critical error.
- Fixed bugs with the overlay node that would cause transparency to not overlay correctly (thanks @theflyingzamboni)
- Fixed an issue that would prevent chaiNNer from being used with Python 3.7 and 3.8 when using System Python (thanks @RunDevelopment)
Alpha v0.5.2
This update mainly addresses issues and bugs users were facing, as well as introduces a few quality of life improvements.
Dependency Updates:
- Updated OpenCV-Python, Pillow, and NumPy dependencies to their latest versions.
Features:
- Relative path support to Load Image and Save Image nodes for subdirectory preservation (thanks @theflyingzamboni).
- Automatic Param/Bin selection for NCNN's Load Model node on change of one.
- New "Preview Image" node. This is a replacement for the existing Preview Image node that opens up the image in your default photo viewer. This is my fix for those who were having trouble with the current Preview Image node on Linux. Plus, any image viewer is going to be better than what it was using before. Note: This node has the ability to open multiple windows simultaneously, so be careful when using it in an iterator.
Bug Fixes:
- Fixed Image File Iterators only running on PNGs and JPEGs. Now they will run with any supported image type.
- Fixed CUDA being required for ONNX model conversion.
- Fixed CUDA not being detected for certain GPUs.
- Fixed images with uppercase filenames not being loaded properly in Load Image.
- Fixed the iterator progress bar not properly updating.
Alpha v0.5.1
This is a small hotfix release to fix a critical issue affecting Linux and macOS users.
Bug Fixes:
- Fixed an import error that caused Linux and macOS versions of chaiNNer to fail to import image nodes.
Alpha v0.5.0
Alpha v0.5.0
Batch Upscaling is finally here! This is chaiNNer's biggest update yet with this long overdue, highly requested feature being the center of attention. Batch upscaling is performed using an "Image File Iterator" node. Iterators are a new type of node in chaiNNer that allow you to run the nodes inside the iterator on multiple items. Right now, the only iterator is the "Image File Iterator" which takes a folder input and runs the sub-nodes on each image file in the folder (and its sub-folders). This means you can finally perform batch upscaling in chaiNNer! They can be a bit tricky to get used to, so if you have any questions about how to use them, don't hesitate to ask in the Discord server.
Along with Iterators, DDS, TGA, and many more filetypes are now supported when you install the Pillow dependency in the dependency manager. You still cannot save images as these filetypes at the moment, but at least this should help when upscaling game textures. This was another highly requested feature that I am happy to finally have in chaiNNer.
For Iterators especially, please let me know as soon as possible if you run into any issues with them, and I will try to get those issues fixed as soon as I can.
New Dependencies:
- Pillow (PIL). This dependency is optional but recommended to get all the features of chaiNNer.
Dependency Updates:
- NCNN has a new update with tensorcore optimizations. This means better performance on RTX cards.
Bug Fixes:
- Fixed node menus not closing on canvas click.
- Fixed "snap to grid" setting not properly aligning nodes.
- Fixed Text Append node not validating correctly.
- Added missing "model name" output to NCNN's Load Model node (thanks @theflyingzamboni).
- Fixed the dependency manager sometimes failing to install or update a package. This might still be broken, but I think I fixed it for good..
- Fixed the RAM usage display showing the wrong value.
Features:
- Iterators (currently used for Batch Upscaling).
- To put nodes into the iterator, drag and drop them into the darker area inside the iterator node. This is the iterator's own sub-canvas.
- Note: for best performance, make sure to put any "Load Model" nodes outside of the iterator, or it will load the model for each image (slowing your upscales down).
- To increase an iterator's size, click and drag in the bottom right corner of the sub-canvas like you would do for a UI window.
- DDS, TGA, and even more image file support (after installing Pillow).
- The hamburger menu has now been replaced with plain buttons for the Dependency Manager and Settings. To toggle dark them on and off now, do so from the settings menu.
- A red circle now appears on the new dependency manager button to more easily show when you have dependency updates available or are missing dependencies.
- Increased hover area for connection lines to allow easier clicking.
- New splash screen design.
- Lots of performance optimizations.
Known issues:
- There is currently a bug with multi-selection that auto-selects nodes that have been moved around the canvas at least once. I am hoping to figure out a fix for this soon, but unfortunately, I wasn't able to in time for this release.
- Sometimes nodes overflow out of the iterator editor area. If this happens, simply moving them around a bit should fix the iterator bounds calculation. As with the other issue, I am still trying to figure out a fix.
NOTE: This version has a critical issue affecting Linux and MacOS. Please use version 0.5.1 if you are on those operating systems.
Alpha v0.4.3
Features:
- File inputs now show the full filepath via a tooltip on hover
Bug Fixes:
- Fixed the Text Append node having an incorrect description
- Fixed ONNX conversion not working in CPU mode
Alpha v0.4.2
Dependency Update:
- New version of NCNN which may improve processing speed
Bug Fixes:
- Fixed a few bugs related to NCNN upscaling not matching PyTorch. It now matches the outputs of PyTorch much closer than it did, and even matches better than Cupscale's NCNN processing.
Alpha v0.4.1
Bug Fixes:
- Fixed the overlay node sometimes giving an error if the optional inputs were not passed in
- Fixed the overlay node sometimes giving a rainbow effect
Alpha v0.4.0
This was meant to be a small update before I would start working on getting iterator (batch upscaling) support implemented, but I ended up doing a lot more. Hopefully these changes improve the experience for people!
Dependency Updates:
- NCNN has a new update that should increase the speed of upscaling, but your mileage may vary. You can update this via the dependency manager!
Features:
- Added new outputs to certain nodes to file names to be connected to text inputs.
- Added a new "Text Append" node for concatenating multiple text outputs together with a separator string. This can be used for appending the model name to the image name.
- Added a new "Add Caption" node to apply a caption to an image. This is useful for captioning comparison images.
- Added Gaussian Blur and Sharpen nodes.
- Added Overlay Images node. (thanks @theflyingzamboni)
- Changed the validity icon to be red when a node is invalid, so it is more apparent what nodes are not correct.
- Changed the validity icon to have a white checkmark when a node is valid, so it is easier to see the checkmark.
- Changed a small thing about how I handle NCNN upscaling that should improve performance slightly.
- Added a small number input to the side of the slider input. Both control the same value, making it easier to input specific numbers if you need to.
- Images with transparency will now use the "Background Difference" transparency hack from my ESRGAN fork when upscaling 4-channel images with 3-channel models (most models). To get the "Separate" mode functionality, you can still split the image like what was required before. If you're curious how this works, it basically upscales two versions of the image, one with a black background and one with a white background, and then makes transparency off of the difference between the results, which (in an ideal scenario) will just be the background transparency. This isn't perfect though, and it's why I didn't initially want to put it in, but it should work well enough in most cases. If you do not want to use this, then make sure to upscale just the RGB by splitting the transparency off using the new nodes mentioned below. Also, differing from the implementation in my fork, it will ignore single-color transparency.
- Along with the above, two new nodes have been added to aid in splitting and merging transparency specifically, since the old way was a bit convoluted (having to use a split and then a merge immediately after)
- Added an update check on startup that will let you know if a new version has been released.
- Added the ability to automatically submit a GitHub issue if chaiNNer crashes unexpectedly.
Bug Fixes:
- Fixed text inputs not getting loaded properly from files
- Fixed the "model save" node not having the right kind of model input
- Fixed node validity treating certain empty inputs as valid
- Fixed an error that could happen if you load a chain with certain invalid nodes (for example if you don't have some of the dependencies installed)
Alpha v0.3.1
This update is just a bunch of bug fixes. Thanks to everyone who reported an issue!
Bug Fixes:
- Fixed special unicode characters (accented characters, Japanese characters, etc) for real this time
- Fixed the dependency manager not reloading properly after installing or uninstalling something
- Fixed some NCNN auto-detection stuff to allow more than just ESRGAN-based models, such as Waifu2x (however only those two kinds of models have been tested)
- Fixed a potential bug with NCNN where the scale would not be calculated properly on certain models
- Fixed an issue with NCNN model chaining where the output would look "deep-fried"
- Fixed NCNN model re-use, which was causing the backend to crash
- Fix the "double click to add node" feature
- Fix preview sizing issue on hi-dpi devices with scaling enabled
- Hide VRAM percentage if no Nvidia device is detected as this is an Nvidia-only feature
- Fixed bug in stack images node which caused it to error on running
Alpha v0.3.0
It might not seem like it, but this is my biggest update yet with a few pretty big features and changes. The biggest by far is NCNN support. If you don't know what that means, it just means that far more devices (AMD and Intel GPUs that support Vulkan) will be able to do upscaling. This is huge and puts chaiNNer closer to feature parity with other GUIs. If you're wondering why this took so long, I basically had to figure out myself (with the help of @styler00dollar) how to get Vulkan working with the official NCNN Python api, and I ended up having to publish an entirely separate package to PyPi to get it working.
The other big change in this release is a complete redesign of how nodes are named and categorized. I decided that the existing way was too technical and that I should make everything a bit more understandable for the end-user, rather than over-complicating things. So for example, nodes aren't categorized by "OpenCV" or "NumPy" anymore, but rather "Image" and "Image (Utility)", and node names are no longer "Image::Read" and "Image::Show" but rather "Load Image" and "Preview Image". You also might notice each node also now has an icon associated with it instead of each category all being the same icon. Under the hood, many of these are exactly the same, there's just a new coat of paint on top. And don't worry, old chain files (.chn) will be automatically converted to this new format.
More is still to come.
Full Changelog:
Features
- NCNN for cross-platform, cross-gpu inference via Vulkan.
- Full node redesign including new names, icons, and descriptions.
- Merger of some nodes that were either unnecessary or redundant.
- "Snap To Grid" for node positions.
- Better invalid nodes error message which tells you which nodes are invalid.
- New "Note" node for adding comments to your chains.
- Optimized a few things which mean chain files will now be significantly smaller.
- Some inputs now support both user input and connections, though they can't actually be utilized like that at the moment (still a work in progress).
- Nodes can now be double clicked to add to the editor
Bug Fixes
- Fixed duplicating nodes not copying input data.
- Fixed some node defaults not being loaded in correctly.
- Fixed file selection inputs not remembering your last file selected.
- Loading invalid chains will now warn you that it is invalid.