KIE • Load Element
Reuse that location, prop or style without re-describing it
- element
- element_prompt
What it is
Elements are the pack's reusable production references for things that aren't characters: a location, a prop, a visual style. KIE • Save Element writes one down; KIE • Load Element retrieves it and hands you two things - an element handle and the assembled element_prompt.
Why you'd care: continuity is mostly a paperwork problem. Scene 1 and Scene 7 are the same apartment, and if you re-describe it from memory each time, the model gives you a different apartment. An Element is that description, written once, versioned, and reused by every shot in the sequence.
How it works
The node scans your Elements library - each element is a folder with an element.json manifest and optionally a reference.png - and builds a dropdown whose entries read like location · City loft · v2. Pick one and it loads the manifest and composes the prompt:
Location reference: City loft.
Visual definition: Exposed brick, tall industrial windows, scuffed oak floor, late afternoon light from the west.
Continuity rules: same window arrangement on every shot; the plant always sits left of the door.
Those three lines come from kind/name, your description, and your continuity_rules. Anything malformed or with an unsupported schema version is skipped silently when the list is built, so a broken element just doesn't appear rather than crashing your node list.
The handle it returns is what KIE • Element Reference consumes when you want the actual image.
The dropdown refreshes at node-registration time, not on demand. Save your first Element and the node you already have on the canvas will still be offering (no saved Elements). Refresh the node definition or delete and re-add the node. This is a ComfyUI convention, not a bug in the pack, but it's the single most common "it's broken" report for dropdown-driven nodes.
Inputs and outputs
One required input: element, chosen from the list. Outputs are element (the KIE_ELEMENT handle, type-compatible with Element Reference) and element_prompt (the STRING).
Typical use: Load Element → a video or image node, with Element Reference branching off the same handle to supply the reference image for models that take one.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/felipederosilva/ComfyUI-KIE-Nodes-Next
python -m pip install -r ComfyUI-KIE-Nodes-Next/requirements.txt
Elements are stored in ComfyUI's user data area (KIE-Nodes-Next/elements), not in the extension folder - so they survive updates and they're per-profile, not per-workflow. No API key needed, no credits spent.
Where people get burned
- Empty dropdown. Either you haven't saved an element yet, or you saved one and didn't refresh the node. Both look identical.
- "Element not found. Save it, then refresh or re-add this node." The entry vanished - usually because the element folder was renamed or its manifest became invalid between sessions.
- Handles from a different library. The handle carries a directory path. Copy a graph to another machine, or point ComfyUI at a different user directory, and downstream
Element Referencewill reject it as outside the active library. - Version discipline. Same name + same version can never hold changed content; you bump the version. Good for reproducibility, mildly annoying when you just want to fix a typo in your continuity rules.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| element | COMBO | 1 options: (no saved Elements) |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| element | KIE_ELEMENT | — |
| element_prompt | STRING | — |