Reinterpret Cast
Connect incompatible sockets without changing a byte
- anything
- *
Every ComfyUI user eventually meets the Wall of Type Mismatch: the output is a LIST, the input wants a *, and the wire refuses to connect even though the value would be fine. ReinterpretCast is the workaround. It's officially named "Blind Cast" - and the "blind" matters, because it reinterprets a value as any type without converting it at all.
What it is and why you'd reach for it
This is the gentlest possible lie to ComfyUI's type checker. The node accepts a single anything input of the wildcard * type and returns it as a * output, completely unchanged. The only thing that happens is that downstream sockets see "any type" and stop complaining.
That makes it the universal adapter for when:
- a node declares a specific type but you know the actual value is compatible,
- you're building reusable subgraph fragments and don't want to fight type declarations,
- you have a value that's technically fine but typed too strictly to connect.
It's a cast in name only. No conversion, no copy, no interpretation of meaning - the exact same object flows through.
How it works
The mechanism is almost insultingly simple: the input type is * (the pack's AnyType wildcard, which compares equal to every other type), and the function literally returns (anything,). The node inherits the pack's NewPointer base class, which sets IS_CHANGED to NaN - meaning ComfyUI treats it as changed on every run and never caches its output. That's a deliberate choice for a graph utility node: it should never silently disappear from execution.
Inputs and outputs
- anything (required,
*) - the value to pass through. - * (output,
*) - the same value, re-declared as any type.
No widgets. Drop it, wire it, done.
Installing it
ReinterpretCast ships in the comfy-ovum pack:
cd ComfyUI/custom_nodes
git clone https://github.com/sfinktah/comfy-ovum
Restart ComfyUI, or install via ComfyUI Manager → search "comfy-ovum". The pack pulls in a few lightweight dependencies (pillow, numpy, requests, aiohttp, and friends) but no models.
Common gotchas
- It doesn't convert anything. If you need a
LISToutput to actually become a string, or a float to become an int, this is the wrong tool - use a real conversion node. Blind Cast only changes the type declaration. - You're opting out of type safety. ComfyUI can't check your work anymore. If you wire something genuinely incompatible, the error just moves downstream and arrives as a confusing runtime failure instead of a clean "can't connect."
- It's the non-list variant. If your target needs the value presented as a list, you want its sibling
ReinterpretAsListCastfrom the same pack instead.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| anything | * | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| * | * | — |