π¬ Model Forward Probe
Does your forward() accept these kwargs?
- model
- model
- report
Some ComfyUI bugs are silent and expensive: your model loads, your workflow runs, and the feature you're trying to use just never engages because the method being called doesn't accept the argument you're passing. Model Forward Probe is the node that makes that failure visible - it inspects a MODEL's class hierarchy and the innermost forward() signature, then tells you exactly which keyword arguments that forward will accept.
It was purpose-built for a specific, real debugging hunt: verifying whether memory_video and paired_audio_memory - the memory-bank kwargs used by the ComfyUI_JoyAI_Echo package's pipeline - actually flow through Comfy's model wrapper into the diffusion module's forward(). If you're running an Echo-style memory workflow and nothing's happening, this is the node that tells you whether the plumbing exists before you chase your tail. But it works for any kwargs question, which is why it's in the pack's Debug category rather than buried in the Echo integration.
What it does
Wire a MODEL in and it walks the nesting (.model β .diffusion_model, up to max_depth levels, default 6) to reach the innermost nn.Module, then:
- Prints the class hierarchy from the
ModelPatcherdown. - Runs
inspect.signature()on the innermostforward(). - Checks whether each name in
kwargs_to_check(defaultmemory_video, paired_audio_memory, memory_audio, prior_video, prior_audio) is accepted. - Lists every forward kwarg containing any substring from
substring_search(defaultmemory, shot, prior, bank, paired) - a fuzzy sweep that catches renames you didn't guess. - Detects a
**kwargscatch-all, and reports the source file path offorwardso you can tell whether it's stock LTX2 code or a patched/Echo-aware variant.
Outputs are the model unchanged (safe to wire mid-graph) and a report STRING. It also prints the full report to the console.
How to read it
The useful signal is usually binary: "memory_video: β NOT accepted" means your memory-kwarg pipeline can't work with this checkpoint as loaded, and the fix is upstream (different node/loader, or a checkpoint with the Echo-aware forward) rather than more graph wiring. "β accepted" means the kwargs reach the model and your problem is elsewhere - probably in how the values are shaped. That's the node's whole trick: it turns "why is nothing happening" into "the plumbing exists / the plumbing doesn't exist."
Installing it
Same TenStrip pack:
cd ComfyUI/custom_nodes
git clone https://github.com/TenStrip/10S-Comfy-nodes.git 10S_Nodes
or ComfyUI Manager β "10S". Restart, no extra dependencies.
Gotchas
The report lives on the console and in the STRING output - same deal as the other debug nodes, no built-in pretty display. And remember it's a probe, not a patch: it tells you whether a forward would accept the kwargs; it doesn't make an incompatible model accept them. It's the diagnostic that ends a class of "silently ignored feature" bugs, which is a surprisingly rare thing to have in a node.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | β | |
| kwargs_to_checkopt | STRING | memory_video, paired_audio_memory, memory_audio, prior_video, prior_audio | Comma-separated kwarg names to check for in the innermost forward() signature. The defaults cover the JoyAI-Echo memory bank kwargs and likely alternative names. |
| substring_searchopt | STRING | memory, shot, prior, bank, paired | Comma-separated substrings to search for in forward signature kwarg names (case-insensitive). Any kwarg containing one of these is reported. |
| max_depthopt | INT | 61β12 | How many .model / .diffusion_model nesting levels to traverse before stopping. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| model | MODEL | β |
| report | STRING | β |