ImageStorageReset
The memory-management node you'll forget until things break
- pipeline
The pack's storage is a bunch of Python lists living in the server's memory, and nothing ever cleans them up on its own. That's what ImageStorageReset is for: it deletes named buckets from GLOBAL_IMAGE_STORAGE. Run an import branch, get the frames you need, and this node wipes the bucket so the next run starts clean - otherwise re-executing an import just appends to the old list and your batch quietly doubles.
What it does
One input, key_list, which is a multiline string. Leave it as the default * and it clears every image storage bucket. That's the honest intended use. You can also type specific keys to delete just those, though - see the gotcha below.
It's an output node with no outputs, and it has a Queue button added by the frontend so you can run it standalone. Because IS_CHANGED returns nan, it always executes; combined with the loop mechanism, that lets you run it once at the start of a chain to guarantee a clean slate.
The gotcha that'll bite you
As shipped, deleting specific keys is broken. The code does ','.split(key_list) on the way in, which always produces the single key "," - so typing "heads" into key_list doesn't delete heads, it tries to delete a bucket called , and silently does nothing. The * default works fine, and that's what you should use. If you need selective deletion, restart ComfyUI (which nukes all in-memory storage anyway) or just accept nuking everything.
Why you need it at all
Because storage is RAM-only and session-scoped. It never touches disk and dies on a server restart. In a loop workflow you'll typically place a reset at the head - clear, then import, then export - so each run of the loopchain starts from an empty bucket. Skip it and you'll chase a "why is my batch twice as long as expected" bug for an hour.
The pack installs cleanly with no dependencies - ComfyUI Manager (search "ComfyUI-Loopchain") or:
cd ComfyUI/custom_nodes
git clone https://github.com/Fannovel16/ComfyUI-Loopchain
then restart. One last reality check: Fannovel16 (the ControlNet preprocessor guy) built this in late 2023 and it's been dormant since. The concept is neat and the * reset works; just treat the code as experimental and verify behavior before you trust a long run to it.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| key_list | STRING | * | — |
| pipelineopt | LOOPCHAIN_PIPELINE | — |
Outputs (0)
No outputs