BlehCast
Force a connection ComfyUI's type-checker would refuse
- any_input
- *
This node does exactly one thing, and the author's own description opens with "UNSAFE" in capital letters - that's a fair summary of how to approach it.
ComfyUI's graph editor normally refuses to let you wire a MODEL output into a LATENT input, or a STRING into an INT. That's a real safety feature most of the time. BlehCast takes any_input and relabels its output as * (wildcard), which lets ComfyUI's editor accept a connection it would otherwise block. It does not convert, coerce, validate, or inspect the data in any way - the underlying Python object passes through completely unchanged. All this node changes is what the type-checker is told about it.
When you'd actually want this: mostly when ComfyUI's type system is stricter than the real data underneath it. Some custom nodes label their inputs and outputs with a specific named type that, under the hood, is really just a plain dict or list - and another node in your graph might produce that exact same structure under a different type label, with no way to connect them directly. Casting bridges that gap without writing a dedicated converter node for what is, in practice, already the right data. It's a power-user escape hatch for exactly that situation, not a general-purpose convenience.
The catch is the entire risk profile of this node, so it's worth stating plainly: if the actual object isn't compatible with what the downstream node expects, you don't get a friendly graph-time error anymore - ComfyUI already let the connection through. You get a crash at runtime, garbage output, or worst of all, something that runs to completion and silently produces wrong results with no indication anything went sideways. Only reach for this when you're confident the underlying types genuinely line up, ideally because you've actually checked the source of both nodes involved rather than just guessing from their names.
Inputs: any_input (wildcard). Output: * (wildcard, unchanged). Install is the standard route for the pack - ComfyUI Manager, or git clone https://github.com/blepping/ComfyUI-bleh into custom_nodes and restart. No extra dependencies.
A concrete example of the kind of gap this closes: several custom node packs pass sigma schedules, sampler objects, or model-patch functions around as their own uniquely-named types even when the underlying object is a plain list, a callable, or a dict that another pack's node would happily accept if the label matched. Without something like BlehCast, the only fix is usually asking one author or the other to add explicit conversion support - which may never happen for a niche pairing of two packs. This node lets you route around that entirely, at your own risk, without waiting on anyone.
Worth knowing this node doesn't live alone: it's one of several under bleh's "hacks" category, alongside things like BlehSetSamplerPreset, BlehEnsurePreviewer, and BlehFixGuiderPreviewing. The author filing his own escape-hatch nodes under a category literally named "hacks" is about as clear a signal as node documentation ever gives you - these are the nodes you reach for when you understand exactly why the normal path doesn't work, not ones you sprinkle into a workflow by default. If you're not sure why your graph needs a type cast in the first place, that's usually a sign to go fix the actual mismatch upstream instead of papering over it here.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| any_input | * | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| * | * | — |