- Critical change that ensures reliablity and **should** have no bad side
effects, but when you see any, please report:
DICT, LIST, SET and Data List nodes (plus the DICT/LIST-taking STRING nodes)
now degrade gracefully when their data source is not connected (`None`) instead
of raising: read/query nodes return their natural "no data" result (the `get`
default, an empty list, `False`, `0`, `None`), and transform nodes behave as if
given an empty container.
- Add a "continue if not empty" flow-control node: it passes a value through
unchanged when it is non-empty, and blocks execution (via an execution blocker)
when the value is empty. It is list-aware (`INPUT_IS_LIST` / `OUTPUT_IS_LIST`),
so it is immune to ComfyUI's empty-input batching crash and passes data lists
through unchanged. By default the block is silent; an optional `message` can be
set to show a dialog. Use it before nodes that cannot handle an empty input
(e.g. a node receiving an empty Data List) to stop execution instead of failing.
- "save IMAGE to file" and "save IMAGE+MASK to file": `format` is now a dropdown
(still connectable as a STRING) whose entries are derived from the formats the
installed Pillow/image plugins can actually write (RGB node offers them all,
IMAGE+MASK only alpha-capable ones); every batch frame is written instead of
only the first; and `path` can be switched to ComfyUI-style `filename_prefix`
mode via a toggle, resolved through ComfyUI's own folder/file helpers
(auto-numbered under the output dir); both modes accept ComfyUI templates such
as `%date:yyyy-MM-dd%`
Extended functionality to load and save strings, RGB/RGBA images, and masks, with various format options and error handling. Updated tests to cover new capabilities, ensuring robust behavior across different use cases. Updated documentation and version to reflect these changes.
Introduced JPEG XL support in save_image and save_image_with_mask functions, with a check for the pillow-jxl module. Refined the return values in save_text and other save methods to align with updated function outputs, simplifying the code and ensuring consistency.
Introduced helper functions and nodes for loading and saving images, masks, and text files with enhanced functionality. These include handling RGB/RGBA formats, creating greyscale and alpha-based masks, and supporting directory creation and encoding options during file save operations.