Files
StableLlama-ComfyUI-basic_d…/CHANGELOG.md
T
StableLlama ed5efc2f91 Bump version to 2.2.1 and update changelog
Patch release for the two dynamic input fixes that landed after 2.2.0:
clearing a key/value pair corrupting the node, and workflows recreated from
a produced image/video losing their extra pairs. The changelog section
doubles as the release notes for the Comfy registry, which the publish
workflow extracts from CHANGELOG.md.
2026-11-03 23:35:16 +01:00

6.1 KiB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[2.2.1] - 2026-11-03

Fixed:

  • Dynamic input nodes (e.g. "create DICT"): clearing a key/value pair could leave the node with input names and widget names out of sync. The prompt was then built from the stale widget names, so the container was created empty and the connection was drawn next to the wrong row. Removed widgets are now also removed from ComfyUI's widget value store, which keeps both in sync.
  • Dynamic input nodes (e.g. "create DICT" and "create LIST") lost their extra key/value pairs when the workflow was recreated by dragging a produced image or video back into ComfyUI: the workflow that ComfyUI embeds into those files drops unconnected widget inputs, and for these nodes that slot is what keeps a pair alive, so the values ended up on the wrong rows and the container was created with only its first entry. The dynamic inputs are now kept in that embedded workflow, also for workflows that were saved before this fix.

[2.2.0] - 2026-10-16

Added:

  • Data List and LIST: new "filter empty" node that removes every empty entry (None, empty STRING, empty LIST/DICT/SET, ...); 0 and False are kept. An optional boolean switch also treats a STRING consisting only of whitespace as empty.

Fixed:

  • "save IMAGE to file" and "save IMAGE+MASK to file" no longer fail with "EXIF data is too long" when saving a JPG whose embedded workflow metadata is larger than a single JPEG EXIF block. A JPEG can only carry one 16-bit-sized EXIF segment, so oversized metadata is now reduced step by step - first the full workflow graph, then the workflow prompt info, then the prompt metadata - and the reduction is reported; the image itself is always written. Should embedding metadata ever fail for another reason, the image is written again without metadata instead of not at all.
  • "save IMAGE to file" and "save IMAGE+MASK to file": the parameters metadata now ends with the sampler settings of the workflow (Steps: 8, Sampler: euler, Schedule type: simple, CFG scale: 1, Seed: 51, Size: 1024x1024). Sites like Civitai only read the prompt out of a parameters text that contains such a line; without it the whole text is discarded and the explicitly set prompt was not extracted at all. The settings are read from the sampler node of the workflow and nothing is invented - when the graph does not provide them, the text stays the plain prompt as before.

[2.1.0] - 2026-09-19

Backward compatible changes:

  • "save IMAGE to file" and "save IMAGE+MASK to file" can now be used like ComfyUI's built-in "Save Image" node: images written into the output (or temp) folder are reported back to the frontend, so the node shows a preview of what it saved and the images appear in ComfyUI's generated-images list. In addition both nodes got a second images output that passes the images through unchanged, like the built-in node does.
  • files written somewhere else (plain path mode) are still saved, they just cannot be previewed, as ComfyUI can only serve files from its own folders
  • Both save nodes now embed ComfyUI's workflow metadata (the API prompt and the full workflow) in addition to the existing prompt metadata. Dragging a saved file back onto the canvas therefore restores the workflow, while the explicitly given prompt / negative_prompt remain in the parameters text that image viewers display and that is easy to extract afterwards. This is what makes the two channels worth having when a whole batch is saved from a data list: the workflow then contains every prompt of the graph, whereas parameters always holds the prompt of the image that was actually written.
  • ComfyUI's --disable-metadata option suppresses both channels, exactly like it does for the built-in save node
  • No widget was added, removed or reordered, so existing workflows keep their saved widget values.

[2.0.0] - 2026-09-11

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.
  • "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%

Backward compatible changes:

  • 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.
  • Add "create DICT from JSON string" and "create LIST from JSON string" nodes to parse a multiline JSON object/array into a DICT/LIST

[1.8.1] - 2026-09-06

  • Add optional additional input for image saving to also save the prompt when provided
  • Enhance in line documentation

[1.8.0] - 2026-08-31

  • Time delta nodes can now be converted to seconds (float) and milliseconds (int)

[1.7.0] - 2026-08-27

  • String save node now supports append mode