Nodes/10S-Comfy-nodes/πŸ”¬ Model Forward Probe
ComfyUI Node

πŸ”¬ Model Forward Probe

Does your forward() accept these kwargs?

By TenStripΒ·Created 4 months agoΒ·Updated 26 days agoΒ· 244
πŸ”¬ Model Forward Probe
  • model
  • model
  • report
β—„kwargs_to_checkmemory_video, paired_audio_memory, memory_audio, prior_video, prior_audioβ–Ί
β—„substring_searchmemory, shot, prior, bank, pairedβ–Ί
β—„max_depth6β–Ί

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:

  1. Prints the class hierarchy from the ModelPatcher down.
  2. Runs inspect.signature() on the innermost forward().
  3. Checks whether each name in kwargs_to_check (default memory_video, paired_audio_memory, memory_audio, prior_video, prior_audio) is accepted.
  4. Lists every forward kwarg containing any substring from substring_search (default memory, shot, prior, bank, paired) - a fuzzy sweep that catches renames you didn't guess.
  5. Detects a **kwargs catch-all, and reports the source file path of forward so 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.

Category10S Nodes/Debug

Inputs (4)

NameTypeDefaultDescription
modelMODELβ€”
kwargs_to_checkoptSTRINGmemory_video, paired_audio_memory, memory_audio, prior_video, prior_audioComma-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_searchoptSTRINGmemory, shot, prior, bank, pairedComma-separated substrings to search for in forward signature kwarg names (case-insensitive). Any kwarg containing one of these is reported.
max_depthoptINT61–12How many .model / .diffusion_model nesting levels to traverse before stopping.

Outputs (2)

NameTypeDescription
modelMODELβ€”
reportSTRINGβ€”