Skip to content

Releases: chaiNNer-org/chaiNNer

Alpha v0.5.1

05 Apr 16:41
Compare
Choose a tag to compare

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

05 Apr 00:18
f30bb33
Compare
Choose a tag to compare

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.

Iterator Example

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

27 Mar 02:38
Compare
Choose a tag to compare

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

25 Mar 03:14
4c38144
Compare
Choose a tag to compare

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

21 Mar 01:17
5f24f3d
Compare
Choose a tag to compare

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

18 Mar 22:32
Compare
Choose a tag to compare

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

10 Mar 04:46
7f3b419
Compare
Choose a tag to compare

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

07 Mar 06:08
2d80737
Compare
Choose a tag to compare

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.

Alpha v0.2.1

11 Feb 05:15
5206c69
Compare
Choose a tag to compare

Changelog:

Bug Fixes

  • Fix a critical issue causing the CPU and FP16 toggles to not work

Alpha v0.2.0

31 Jan 06:35
9c4883d
Compare
Choose a tag to compare

Changelog:

Features

  • Integrated Python (separate virtual env from your system python) now gets automatically downloaded and used on startup. No more having to worry about getting the right version and making sure your dependencies aren't outdated.
  • Reworked the Settings panel to have separate tabs, one of which includes an option to disable the integrated Python and use system Python instead (the old default)
  • Reworked the Dependency Manager to show download/install progress, as well as installing specific versions to avoid incompatibility.
  • Made node connections behave similarly to Unreal Engine blueprints when positioned in certain ways.
  • Revamped how slider inputs look so that they now display useful data.
  • Added a check in the interpolation nodes that will error if two models are incompatible, either due to using a different architecture or from not sharing a pretrained model ancestor.
  • Reworked the logic for how nodes get visually updated while running, meaning more kinds of updates besides just finished connections can be shown more easily in the future.

Bug Fixes

  • Since updates have to be vetted now, and due to the new way I install pip packages, updating Pytorch will no longer install the CPU version.
  • The concatenate nodes now do a proportional resize rather than a 1:1 resize when concatenating images of different shapes.
  • Fixed a bug where image names that contained unicode characters would error instead of being read.
  • Number inputs are now allowed to be empty, which will be marked as invalid.
  • Potential VRAM improvements (YMMV, let me know if you're still getting stuck VRAM)
  • Loading .chn files that were saved while running the chain will no longer import animated.