Nodes/ComfyUI-CreativeLab/⚓ CLab System Config
ComfyUI Node

⚓ CLab System Config

The CLab System Config Node Is a Lie (It's the Save File, Not Settings)

By pixixai·Created 7 months ago·Updated 5 months ago· 19
⚓ CLab System Config
      scenes_data{}

      The name makes it sound like a settings panel - "System Config", with an anchor icon, like something you're supposed to open and tweak. It's not. CLab_SystemConfig doesn't configure anything, doesn't take inputs from the graph, and doesn't produce a single output. What it actually is: the memory card for the whole Creative Lab panel. ComfyUI CreativeLab (CLab) is a card-based task manager - workspaces, task cards, input/output modules, batch queues, per-module generation history. All of that lives in the browser, which means none of it survives a reload unless something pins it to the workflow. That something is this node.

      How it works

      Everything CLab knows - every workspace, every card, every node binding, every saved generation record - gets serialized into one JSON string and stuffed into a single widget named scenes_data. That widget is the entire node. When you click "create config anchor" in the panel, CLab drops an invisible CLab_SystemConfig node onto your canvas, writes the JSON into it, and from then on it travels with the workflow the same way your KSampler settings do. Hit Ctrl+S and the panel state is in the file.

      The mechanism is a frontend watchdog, not a backend trick. The pack's state_manager.js watches the graph: whenever the panel state changes it rewrites scenes_data (syncToNode); when you load a workflow or paste the node, a hook reads the JSON back and rebuilds the whole panel (loadFromNode). The Python class is almost deliberately boring - execute() returns an empty tuple and touches no pixels. It's registered as OUTPUT_NODE (true) purely so ComfyUI's execution engine doesn't prune it out of the graph, since it has nothing downstream to justify it.

      The inputs and outputs

      • scenes_data (STRING, multiline, default "{}") - the only input, and you should almost never touch it by hand. It's a big blob of JSON; if you edit it and break the syntax, the panel just won't hydrate on load. The author deliberately sets dynamicPrompts: False on it, because otherwise ComfyUI's prompt engine would try to parse the JSON's {} braces as dynamic-prompt syntax and choke. That's the kind of detail that only matters to the person who writes the node.
      • Outputs: none. RETURN_TYPES = (). Don't go looking for a wire to connect.

      How to install

      Same as any custom node. ComfyUI Manager → search ComfyUI-CreativeLab, install, restart. Or by hand:

      cd ComfyUI/custom_nodes
      git clone https://github.com/pixixai/ComfyUI-CreativeLab
      

      Then restart ComfyUI. Good news: there's no requirements.txt and no model downloads - it's a pure JS frontend plus a couple of thin Python registrations. The panel itself opens with the C key.

      Where people get burned

      • Delete the node and you delete your panel state. The watchdog treats a missing node as "start from blank" and wipes the workspace in memory. If your cards and history keep vanishing after a reload, check that the anchor node is actually still in the workflow - that's the number one failure mode.
      • It's not a "settings" node. The actual CLab preferences live in ComfyUI's Settings gear under the "Creative Lab" group (shortcut key, archive folder name, history cap, video autoplay). People search for this node expecting that menu and stare at a JSON text box instead.
      • The pack is Chinese-first. README, changelog, and the docs are all in Chinese, and support runs through the author's bilibili page and Gmail. The features are real and the project is actively maintained, but the English-speaking community has barely touched it - don't expect Stack Overflow to save you.

      A workflow can happily run with zero CLab nodes in it. You only need this one when you actually use the panel - and then it's the difference between a reload that remembers everything and one that starts from zero.

      CategoryCreative Lab

      Inputs (1)

      NameTypeDefaultDescription
      scenes_dataSTRING{}

      Outputs (0)

      No outputs