Vault output (edit view)
Vault Output (Edit View) Is a Sink, Not a Node You Wire Up
- value
You can't add this one from the menu either - Vault output (edit view) is hidden from node search. It only appears inside the C2C Vault edit tab, it has no outputs of its own, and its execute() does nothing but raise. If it's on your canvas you're mid-edit on a vault, looking at the point where the vault hands results back to whoever runs the workflow. The output side is where vault edits usually go wrong, so it's worth understanding.
Why a vault exists
C2C Vault ships in Code2Collapse's ComfyUI-CustomNodePacks. You select a group of nodes, right-click C2C Vault → Lock selected nodes (or Seal), and they're replaced by one node whose contents travel in the workflow as AES-256-GCM ciphertext. The wires that crossed the selection become that node's interface, and the interface stays public, in clear text - a recipient sees what goes in and what comes out. Just not how you made it.
It's the flip side of ComfyUI's best feature: a .json workflow is the pipeline, baked into output PNGs, which is why "workflow included" turned into a norm. Great when you're learning, less great when the graph is the product. A portable seal is obfuscation only - anything that runs can be decrypted - but it keeps your nodes out of the file, browser storage and history.
What the placeholder maps
The outer vault node has eight output positions. The manifest travelling in the workflow holds their names and types; the record of which node inside feeds which position sits in the ciphertext, where it belongs.
Open a vault for editing and the editor drops one of these into a column on the right, titled from your interface (Vault output 0: image), connected to the single node output that produces it. It has one input, value, typed *, and no outputs at all. At Lock & close the editor reads each placeholder's index and rebuilds the outbound boundary: position 0 comes from this node, this slot.
So it's a sink rather than a computation - a labelled endpoint telling the editor where the vault's results leave from. If your Save Image ends up outside the selection instead of inside, nothing is holding that node output and there's nothing for the recipient to consume.
index, and the ceiling of eight
index is the only widget: an INT from 0 to 7, set by the editor. Leave it alone. If two placeholders claim the same index you get Vault output N is fed twice at commit.
Eight is a real limit, not a formality. A masking pipeline handing back an image, a mask, a matte and a cropped plate is fine. Add depth, a control image and a couple of intermediates and you're bumping the ceiling, and the pack's message is just that the vault supports at most eight. Two vaults is the answer.
The index also decides what the recipient sees on the vault node in their own graph: eight slots, labelled best-effort from the manifest, trailing ones empty. Name your outputs properly when you lock, or you've handed someone a puzzle.
Installing the pack
ComfyUI Manager → search "CustomNodePacks", or:
cd ComfyUI/custom_nodes
git clone https://github.com/Code2Collapse/ComfyUI-CustomNodePacks.git
Restart, then confirm the node-count line in the console. The core dependencies are light - opencv-python, scipy, safetensors - but the vault adds cryptography>=41.0, and it reaches for Argon2id in cryptography.hazmat.primitives.kdf.argon2 when it locks and unlocks. An older pinned cryptography is the failure you'd actually hit. And as the README says, don't blindly pip install -r requirements.txt over a working ComfyUI and let it swap your torch.
When it goes wrong
The one you'll meet if you queue from the edit tab, or copy a placeholder into another graph:
RuntimeError: This is a vault editor placeholder: lock the vault to use it.
Nothing is broken. Lock & close first, then queue.
At commit time the two errors that matter are Vault output N (…) is not fed by any node - the placeholder is dangling because you moved something outside the vault - and Vault output N is fed twice, meaning two nodes are wired into the same position. Fix the wiring rather than deleting the placeholder; the interface is frozen while a vault is edited, and you can't shrink it to match a smaller graph.
Two last traps. Everything you do in the edit tab is lost if the browser reloads or the session times out; the outer workflow keeps the last locked payload. And a Save Image node inside a vault does work, but it runs with no prompt and no PNG info metadata, so it never writes the plaintext graph into your output file. Which is the point - and also why you still want an output placeholder wired to something outside, so whoever runs the vault can see what they got.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| value | * | — | |
| index | INT | 00–7 | — |
Outputs (0)
No outputs