dreevelleandClaude Opus 5 c01fd587db Add the dreevelle brand mark as the registry icon
Registry and ComfyUI-Manager cards for this node render with no icon --
[tool.comfy] Icon has been empty since the first publish, and the API
agrees ("icon": ""). Next to the other three dreevelle node packages,
which are equally empty, that reads as four unaffiliated anonymous
entries rather than one publisher's set.

assets/icon.png is the creator mark already used across sites, authored
for the Alora project. It goes in unchanged apart from a downscale to
the registry's 400x400 square maximum, done in linear light: the naive
sRGB-space resize dulls the ring stroke and blurs the bar separations
inside the D. Kept full colour at 79KB rather than quantised to 23KB,
because 128 colours band visibly across the dark glow halo. The mark is
identical across all four packages; the node name and description
already tell the cards apart, and sameness is the point of a publisher
mark.

The asset lands in its own commit, ahead of the pyproject bump that
references it. The registry stores the URL rather than the bytes, and
raw.githubusercontent.com serves a brand-new path through a CDN that can
briefly 404, so having it on main first removes the race. assets/ stays
out of .comfyignore and ships in the archive -- that file is scoped to
dev-only files, and a brand asset is not one.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015p88qHFcfungDkCbG1n7z2
2026-08-10 11:05:22 +01:00

ComfyUI-FastImageSequence

A fast PNG image-sequence saver for ComfyUI.

The built-in Save Image (Advanced) node encodes each frame of a batch one at a time. For long sequences (video / frame dumps) that's slow — almost all the time goes into single-threaded zlib PNG compression, not metadata.

This node encodes the frames of a batch in parallel. PyAV releases the GIL during compression, so encoding scales with your CPU cores. The output bytes are identical to the built-in node — same pixels, same compression, same file size — it's just much faster.

It also embeds the prompt/workflow metadata in only the first frame by default, so the workflow is still recoverable from the sequence without bloating every single frame.

Node

Save Image Sequence (Fast 16-bit) (category: image)

Input Default Notes
images — The image batch to save.
filename_prefix ComfyUI Supports the usual tokens (%date:yyyy-MM-dd%, etc.).
bit_depth 16-bit 8-bit or 16-bit PNG.
metadata (advanced) first_frame first_frame / all / none.
threads (advanced) 0 (auto) Encoder threads. 0 = min(8, CPU count).

Drop it in wherever you'd use Save Image (Advanced). It handles the whole batch itself, including the first-frame metadata, so wire the entire sequence into this one node (don't split it across two save nodes — that would collide on the sequential file numbering).

Performance

Measured on a 16-core CPU, 457 frames at 1920×1088, 16-bit RGB (worst-case noisy content; real frames are faster):

threads ms/frame 457 frames
1 (built-in, serial) 372 ~170 s
4 101 ~46 s
8 (auto default) 60 ~27 s
16 43 ~20 s
24 44 ~20 s (no gain)

Scaling flattens at your core count — there's no benefit to setting threads higher than the number of CPU cores. 0 (auto = 8) already captures most of the win; set it to your core count for the last few seconds.

For reference, metadata injection costs ~0.9 ms/frame (~0.2% of the total), so the metadata option is about file size / cleanliness, not speed.

Installation

Clone into your ComfyUI custom_nodes directory and restart:

cd ComfyUI/custom_nodes
git clone https://github.com/dreevelle/ComfyUI-FastImageSequence.git

av, numpy and torch ship with ComfyUI, so there are no extra dependencies to install.

Notes

  • Output is byte-identical to Save Image (Advanced) for the same input — this node only changes how fast the frames are written, not the result.
  • True 16-bit PNGs (IHDR bit depth 16). Note that Pillow downsamples 16-bit color PNGs to 8-bit when reading them, so a PIL.Image.open(...).mode check will report RGB even though the file on disk is genuinely 16-bit.
  • Self-contained: it copies the small PNG encode/metadata helpers rather than importing from ComfyUI internals, so a core update won't break it.

License

MIT

S
Description
No description provided
Readme MIT
241 KiB
Languages
Python 100%