Releases: chaiNNer-org/chaiNNer
Alpha v0.17.1
NOTE: As a reminder, the windows installer still does not open after installing anymore. It still does install though, so just manually open it after installation. We are actively investigating why this happened.
This update includes some new nodes, a quality-of-life improvement related to stopping execution, even more portability, and a bit more. See the full changelog below:
Minor Changes
- Long-running upscales can now be stopped, without chaiNNer seeming to hang (#1521)
- Added DDS option for separating alpha (#1510)
- Slight styling changes for slider input numbers (#1504)
New Nodes
- Random Number (#1499, thanks @Zarxrax)
- Allows using a randomly generated number for number inputs
- NCNN Model File Iterator
- Similar to the PyTorch model file iterator, these allow you to iterate over folders of NCNN models.
- ONNX Model File Iterator
- Ditto above, but for ONNX
- Lens Blur (#1516, thanks @harisreedhar)
- Applies lens blur to an image
Bug Fixes
- Fixed RGBA DDS loading (#1514)
- Fixed chaiNNer closing when visiting the update link, or dismissing the box (#1518)
- Fixed some missing portability when using a portable zip (#1523, #1530)
And of course, thanks @joeyballentine and @RunDevelopment
Alpha v0.17.0
NOTE: with this release it seems chaiNNer no long automatically opens after installing an update -- don't worry though, the installer still works.
This update adds a few somewhat important dependency updates for system compatibility reasons, as well as a few major new features, and lots of minor ones.
I'll keep this brief this time, and just have you read the changelog below:
Dependency Updates
- ONNX -> 1.13
- With this update, ARM (M1/M2) MacOS users can now use ONNX, since this update provides an arm64 MacOS version. This means you can properly convert to NCNN through ONNX.
- OpenCV -> 4.7 (automatic)
- Usually I don't mention dependencies that update automatically, but I wanted to mention this one specifically -- because now we should theoretically support MacOS versions under 10.15, specifically to 10.13 now. This has not been officially tested by us, but it should work. We probably scared away all the < 10.15 people by now, but if any of you see this, please give it a try now.
Major Changes
- CLI Mode (#1469, #1470, #1468, #1489, #1492, #1494)
- This was our first-ever commissioned feature, so thanks to Flaviu Radulescu for funding this feature.
- This feature now allows you to execute chains from the command-line, without needing the GUI to run. This includes being able to override inputs for easier chain reuse.
- Documentation can be found by running
chainner run --help
in the command line.
- True portability for zip builds (#1484, #1487, #1489)
- ZIP builds were never truly portable as integrated python, settings, and a few other things were saved to appdata. Now, these will download & save to the root directory of the exe.
- If you don't want this functionality, simply delete the
portable
file that is now present in the zip builds.
- Improved startup speed (#1468)
- chaiNNer now starts up significantly faster than it used to (assuming it has already gone through first-time setup and updates)
New Nodes
- Image Convolve (#1442, thanks @jumpyjacko)
- Runs arbitrary convolution with a user-defined kernel
- Metal to Specular & Specular to Metal (#1457)
- Converts metal/specular maps to specular/metal maps
- Number & Text
- These nodes allow easy re-use of numbers or text between nodes
- Apply LUT
- You can now apply a Look-Up Table (LUT) to images
Minor Changes
- Support for mode DDS formats (#1471)
- This is specifically DXT1, DXT3, and DXT5. This is still a Windows-only feature.
- Improved JPEG saving options (#1480, #1483)
- This includes adding a chroma subsampling dropdown as well as a "progressive" option
- Allow dragging videos into chaiNNer for loading like images/models (#1488)
- Enhanced type tag size (#1404, #1478)
- Added output alpha option to Change Colorspace (#1405)
- Made directory and file name output types immediately computed (#1408)
- Added angle addition method for normal maps (#1409)
- Better error message when loading a PyTorch model fails (#1433)
- Add seed input to Add Noise node (#1444)
- Made the output type for Math node a bit better (#1452)
- Improved some type error messages (#1493)
- Improved logging (#1495)
Bug Fixes
- Fixed a small issue with number input width (#1443)
- Fixed potential errors caused by manually clearing PyTorch memory during out-of-vram events (#1456)
And as always thanks to the maintainers: @joeyballentine @RunDevelopment @theflyingzamboni
Alpha v0.16.1
This is just a minor update which includes a couple of fixes and QOL improvements. Make sure to check last version's changelog if you haven't grabbed that version yet.
Minor Changes
- Better execution time formatting (#1392, #1394)
- Increase default codeformer weight to 0.7 (#1381)
- Replaced some true/false dropdown inputs with checkboxes (#1377)
- Changed max of Add Normals amount to 200% (#1398)
Bug Fixes
- Made text of dropdown options larger (#1375)
- Fixed DDS rename not working across drives (#1376)
- Removed broken window menu from menu bar (#1386)
- Fixed some errors not showing in the UI (#1407)
As always thanks to @joeyballentine @RunDevelopment and @theflyingzamboni for contributing to this release.
Alpha v0.16.0
This is a pretty big update with some noticeable changes and improvements, including a design overhaul and many quality-of-life features.
Major Changes
-
Major UI improvements (#1305, #1326, #1302, #1313, #1314, #1330, #1340)
- The first thing you might notice in this version is a bit of a redesign. Nodes have been majorly overhauled to be much more compact. While it might be a bit of a shock how different it looks at first, I guarantee you'll quickly get used to it and prefer this new look. The compactness of the nodes gives you much more space to fill out your chains with, and there is just a lot less wasted space overall. Check out this comparison of the space used by the old vs the new nodes
- With this compactness change also came a change to sliders. In my opinion, they are now a lot easier to see and interact with, and are closer to something like you'd see in blender.
- There have also been changes to pop-up boxes. Settings had a bit of an overhaul to fix some scrolling issues, and all pop-ups now have a darker color. Alerts also got icons representing the type of alert.
-
Node-on-Connection insertion (#1231, #1341)
- Something we all have always wanted in chaiNNer was the ability to insert a compatible node in-between two connected nodes, without having to delete the connection and make two new ones. Well, now this is a reality. All you have to do is hold
alt
while dragging a node in the editor, and both the node and the connection line will visually show you that the node is able to be connected this way. It's really convenient to be able to insert nodes into existing chains this way, and can save a lot of time.
- Something we all have always wanted in chaiNNer was the ability to insert a compatible node in-between two connected nodes, without having to delete the connection and make two new ones. Well, now this is a reality. All you have to do is hold
-
Informing you about invalid connections (#1299, #1306, #1308)
- The UI now will inform you when a connection you are trying to make is invalid. Before, we would tell you why a node was invalid after it was already connected and then made invalid. However, we had never explained why some connections were not possible to begin with. This had confused many users as they would try to do things like connect a GFPGAN model to Upscale Image and think there was something wrong rather than it being something intentional. While the UI would not let these users make that connection, it would not tell them why. This update adds an explanation tooltip that explains why a connection can't be made as you attempt to drop the connection on a handle. This should hopefully improve the user experience and lead to less confusion when this happens.
-
Increased View Image preview resolution (#1290, #1342, #1351)
- View Image just became a lot more useful. Now, instead of seeing only a 512x512 preview of your image, you will see a maximum of 2K resolution when zoomed in to the max. This still isn't ideal for extremely large images (larger than 2k) where you need to zoom in even more than chaiNNer allows, but a feature for that will be coming in the future. For now, this is a huge improvement and makes in-line previewing much much better. We also improved the performance of the node, so you may notice previews loading a bit faster than they used to.
-
Better DDS Support (Reading & writing, Windows only) (#1266, #1356)
- With this update, previously unsupported DDS textures files can now be read and written on Windows. We make use of Texconv, which is a small texture utility that we now bundle with chaiNNer. Unfortunately, Textconv is Windows-only, meaning Linux & MacOS users will not be able to take advantage of this. But we figured it was still better to have it than not.
Minor Changes
- CodeFormer support (#1327)
- This Face Upscaling architecture was highly requested to be added, and now you can use it in chaiNNer with the Face Upscale node.
- NCNN Optimizer (#1259)
- NCNN models now get optimized on load as well as on convert, which can save help them save a little bit of time when upscaling. For most models, this will only be minute optimizations, but for batch upscaling it can save quite a lot of time overall.
- Show current overall execution progress on taskbar (#1343, #1365)
- Made amount input a slider in High Boost Filter (#1288)
- Added amount and threshold inputs for Unsharp Mask (#1293, #1294)
- Added the ability to cache ONNX TensorRT conversions (#1287)
- Added a context menu for multi-node selections (#1289)
- Added Ko-fi donation button to header (#1300)
- Improved Convert Colorspace node to be more generalized for alpha modes (#1322)
- Add .avs support to the video selection menu (#1345)
- Allow users to select alert text (#1349)
- Support node-search context menu in iterators (#1369)
New Nodes
- Create Color (#1285)
- Three new nodes that allow you to create single-color images in RGB, RGBA, or Grayscale.
- Surface Blur (#1292)
- This node blurs an image using a bilateral blur filter, also known as "surface blur."
Bug Fixes
- Fixed picking a custom python path (#1283, #1284, #1315)
- Fixed FaceSR (GFPGAN, RestoreFormer) and Transformer-model (SwinIR, HAT, Swin2SR) interpolation (#1281)
- Fixed the file select window prompting you to create files when opening directories that do not exist (#1282)
- Fixed the integrated FFMPEG download error to just be a warning (#1279)
- Fixed blurry checkers in image preview (#1320)
- Fixed being able to select text in file and directory inputs (#1331)
- Fixed opening a file with chaiNNer while an existing chaiNNer instance is already open (#1344)
- Fixed exact-size ONNX models not being properly run (#1336)
- Disallow negative crop values (#1350)
Experimental Features
- While not enabled/disable behind the experimental features setting, both Apple MPS (via pytorch-nightly) and Microsoft DML (via pytorch-directml) support should theoretically work with a proper environment set up through your system python. People who have tried to set this up have had issues though, and ultimately I need more people to test this before I can officially say we support these things. However, if you want to test it yourself and know how to set these things up, feel free to give it a go and report back to us. (#1280, #1359)
As always, thanks to @joeyballentine @RunDevelopment and @theflyingzamboni
Alpha v0.15.3
Theoretically, all model loading should now be fixed. However, if you are still running into models that previously worked but are now broken, let us know ASAP.
Bug Fixes
- Fixed another missing torch type when loading a model, which caused certain models to not load properly (#1272)
Experimental Features
Alpha v0.15.2
Just a quick bugfix since we accidentally broke loading certain models in the last release. You don't really need this version unless you plan on using SwinIR, Swin2SR, or HAT. To see the previous changelog, go here.
Bug Fixes
- Fixed model loading for certain models being blocked by the new restricted loader (#1263)
Thanks @theflyingzamboni for fixing that
Alpha v0.15.1
Major Changes
- Viewport Export (#1243) (thanks @Sryvkver)
- Export the current chain as a PNG using the bottom-most button in the button panel located at the bottom left of the chain editor.
- Ctrl+D now duplicates selected nodes (#1252)
Minor Changes
- Added a context menu for connections (#1255)
- Blur and sharpen nodes have been reorganized and renamed (#1254)
- Iterators now have a "resize" indicator (#1257)
New Nodes
- Add Noise (#1251)
- Add different types of noise to an image
- High Boost Filter (#1254)
- A more traditional type of sharpening
Bug Fixes
- Fixed face upscaling causing broken video outputs (#1246)
- Fixed unsaved changes dialog box having extraneous &s on Linux (#1249)
- Fixed categories not hiding when a search would return no results for that category (#1253)
- Patched a security vulnerability
And thanks to the usual contributors, @joeyballentine @RunDevelopment @theflyingzamboni
Alpha v0.15.0
This update contains a decent amount of quality-of-life changes. We have some new systems in place for making the experiences with inputs better (which will be brought to more nodes in the future), as well as some general UX improvements.
We also now have an opt-in experimental features setting that we are starting to use in order to get feedback on unfinished features, but without interrupting the regular experience of chaiNNer.
Major Changes
- Variable-length inputs (#1176, #1184)
- Now certain nodes can have more than just 4 inputs, with a button that lets you add more.
- This is limited to just Text Append and Text Pattern at the moment, but will be brought to more nodes in the future.
- Conditional inputs (#1200)
- Now certain nodes can show or hide some inputs based on things like items selected in a dropdown.
- This is currently only present in the Save Image node, but will probably be used with more nodes in the future.
- Experimental Features Toggle (#1142)
- We now have a setting (in the advanced tab) for turning on "experimental features". This will opt you into using anything we deem "experimental" that is in chaiNNer but not quite ready for prime-time. I will list anything new that is experimental under a new Experimental Features heading in the changelog.
Minor Changes
- Drag N' Drop support for more filetypes (#1215)
- This mainly includes all model file types (.pth, .param/.bin, .onnx)
- Added "WEBP (Lossless)" option to Save Image (#1186)
- We had previously accidentally made it impossible to save lossless WEBP, and now you can
- Better "Save Changes" popup (#1191)
- The "Save Changes" dialog box that appears when you try to quit with unsaved changes is now a more standard format, with "Save", "Don't Save", and "Cancel" options.
- Show the current position of alerts in the alert box queue (#1193)
- Added menu entry for manually reloading/refreshing starting nodes and their previews (#1194)
- Added "Copy to clipboard" button for all alerts (#1203)
- Added type tags to strings and directories (#1216, #1226, #1244)
- Changed placeholder text on some inputs (#1223)
- Added custom installation animation on Windows (#1230)
- Moved update check to after the main window opens (#1232)
New Nodes
- Normal Map Generator (#1181, #1208)
- Generate Normal Maps from images, with a variety of customization options similar to Nvidia Texture Tool
Experimental Features
- Presets (#1142, #1240, #1241)
- We now have some built-in bundles of nodes that we figure could be useful for setting up a variety of chains. However, they are not what we would consider feature complete yet (hence why they are behind the experimental features toggle). We would like to hear feedback from users as to what they think would be helpful (for example, clusters of nodes they tend to use all the time) and we can change/add presets accordingly. There is also still a lot of UI to be done around these, but they are at least usable at the moment.
Bug Fixes
- Fixed being unable to read MKV video duration (#1189)
- Fixed saving as GIF in Save Image (#1201)
- Fixed pressing arrow keys inside text and number inputs moving nodes around (#1205, #1212)
- Fixed FP mode not being loaded correctly for NCNN (#1210)
- Disable shortcuts while alerts are open (#1214)
- Fixed clear not affecting text inputs (#1217)
- Fixed iterator helper node type persistence (#1222)
- Reset invalid dropdown values (#1227)
- Fixed supported video format list in file open window (#1242)
Thanks as always to the main contributors: @joeyballentine @RunDevelopment @theflyingzamboni
Alpha v0.14.2
New Features
Other Changes
- Offset image preview nodes created by the shortcut button based on output index (#1178)
- Prevent FaceSR models from being converted to ONNX & NCNN due to being incompatible (#1136, #1174)
- Calculate number of frames estimate when nb_frames data is unavailable on video (#1136)
Bug Fixes
- Fixed issue where entire video would attempt to be processed when an error occurs (#1136)
- Fixed Swin2SR "compression" model loading (#1171)
- Fixed improper fp16 ONNX to NCNN conversion (#1162)
- Fixed slider value resetting visually but not actually on double-click (#1179)
- Fixed Split Transparency erroring when inputting grayscale images (#1182)
As always, thanks to everyone who contributed to this release: @joeyballentine @RunDevelopment @theflyingzamboni
Alpha v0.14.1
This is a small update that fixes a few bugs and adds a few things as well.
New Features
- Swin2SR Model Support (#1158)
- The successor to SwinIR now works in chaiNNer!
- Image Pairs Iterator Node (#1157)
- A highly requested feature: being able to iterate two paired directories, for things like already upscaled image comparisons. Limited to only two directories at the moment.
Other Changes
- Added handle to Write Output Frame directory input (#1163)
- Improved Change Colorspace's inputs (#1139)
Bug Fixes
- Fixed rounding inconsistency between backend and type hints (#1161)
- Added proper error message for libx264 failures in the Video Frame Iterator and made it stop immediately after an error (#1163)
Thanks to everyone involved with this release: @joeyballentine @RunDevelopment @theflyingzamboni