Getter
Getter — the read half of a key/value pair that keeps your graph tidy
- value
- *
Getter is the read side of the key/value pair at the heart of komojini-comfyui-nodes. You drop a Setter somewhere in the graph with a key like "latent_out", you drop a Getter somewhere else with the same key, and the two of them act like a named wire - except the wire is virtual, so you don't have to drag a connection across half your canvas. The pack's README puts the motivation bluntly: getter/setter nodes exist to ensure execution order by connecting them when starting the prompt.
Why does execution order matter enough to build a node for it? Because ComfyUI runs nodes in dependency order. If you want value A computed before value B is used, the honest way to guarantee it is a physical connection between them. Getter/Setter pairs give you that guarantee plus a name, so your graph reads like code: Set_latent_out on the left, Get_latent_out on the right, no spaghetti wire crossing the whole workflow. The community's general grumble about this whole "any-to-any" family of tricks is that it can make workflows impossible to debug - there was a +96 thread literally titled "Please Stop using the Anything Anywhere extension." The komojini flavor is comparatively tame because the key naming keeps it legible.
How it behaves. In the UI, the key widget becomes a dropdown populated from every Setter currently in your graph. Pick a matching key and the Getter adopts the Setter's type, recolors itself, and retitles to Get_<key> - so the pair visibly self-identifies. It's an any-type node: whatever flows in, flows out. The Python behind it is a From class that passes through whatever lands on its value input (or any other input that isn't a hidden prompt/PNG-info arg).
Inputs and output. Just two inputs: key (STRING, required) and an optional value (*, any type). One * output. That's it - this is a routing node, not a compute node.
The trap to know about. The plain Getter is a pass-through. If nothing is connected to value, its fallback is to hand you the first argument it sees - which is the key string itself. If you're getting "latent_out" as your output, you've built the read node but nothing is feeding it. That's what the CachedGetter variant is for: it actually pulls the stored value out of the pack's shared key/value cache, so you can teleport a value across the graph with no wire at all. Use plain Getter when you want the ordering guarantee with a real connection; use CachedGetter when you want true wireless retrieval.
Install. Same pack as everything else here:
ComfyUI Manager → search "komojini-comfyui-nodes" → Install → restart
or cd ComfyUI/custom_nodes && git clone https://github.com/komojini/komojini-comfyui-nodes. No model downloads, no extra deps beyond the pack's pytube/opencv requirements. One caveat: it's a Feb-2024 pack, so if the pairing logic misbehaves on a current ComfyUI build, treat it as maintenance debt, not user error.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| key | STRING | — | |
| valueopt | * | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| * | * | — |