Echo-WM T8 · Isolated Runtime
The Echo-WM node that's built to run in a second Python
- runtime
- runtime_metadata
"Echo-WM T8 · Isolated Runtime" does zero generating, and that's the point. It's the node that makes Echo-WM - the JD "open world model" that turns one image plus text plus camera keys into video - safe to run inside ComfyUI at all. If you've ever watched a custom node install a second, newer torch into your environment and silently break every other node you own, you already understand why this pack refuses to import Echo-WM's stack into the ComfyUI process.
Here's the setup problem, in one paragraph. ComfyUI's custom nodes all import into the same Python environment, and Echo-WM needs its own torch/CUDA build, a bf16 Gemma-3 text encoder, and an LTX-2.3-scale DiT. This pack's requirements.txt is deliberately empty - there is nothing for ComfyUI Manager to pip-install. Instead, the nodes launch echo_wm/inference_wm_causal.py in a separate Python interpreter with an argv list and shell=False, so Echo-WM's torch can't clobber yours. The Runtime node is the gatekeeper for that boundary: it resolves and validates every path before the model ever loads, and it refuses a config that would let the two runtimes collide.
What you actually fill in
Three of the six fields are paths, and the node is happy to do the discovery for you if you leave them blank:
echo_wm_root- the directory containinginference_wm_causal.py(the upstreamecho_wmsource tree). Blank falls back to theECHO_WM_ROOTenv var, then to common layouts like aecho_wm/orruntime/echo-wm/subfolder of the pack.python_executable- the dedicated Echo-WM Python from your separate conda env. This is the field with teeth: the node compares it to ComfyUI's ownsys.executableand raises if you point it at the interpreter ComfyUI is running in. That check is your friend, not an annoyance.model_root- must containecho-wm-flash.safetensorsand agemma-3/folder withconfig.jsonplus safetensor shards, else it errors before inference.gpu_index- which GPU getsCUDA_VISIBLE_DEVICES, so the child process can't wander onto a card you're using for something else.ffmpeg_bin- optional, and only needed for the action-HUD overlay output (see the Generate node).refresh_nonce- the subtle one. ComfyUI caches node results, so if you fixed your environment and the Runtime node's widgets didn't change, it may hand back the old stale result. Bump this integer to force a fresh validation.
Point it at a real environment
# Pack itself - Manager search "Echo-WM T8", or:
cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/Comfyui-Echo-WM-T8.git
# then restart ComfyUI.
# The Echo-WM environment lives OUTSIDE ComfyUI (upstream echo_wm dir):
conda create -n echo-wm python=3.11 -y && conda activate echo-wm
pip install torch==2.9.1 torchvision==0.24.1 torchaudio==2.9.1 \
--index-url https://download.pytorch.org/whl/cu128
pip install -r requirements.txt # from the upstream echo_wm package
hf auth login
hf download t8star/Echo-WM-Comfy --local-dir checkpoints # gated model bundle
The model bundle is gated so you acknowledge the LTX-2 Community License and Gemma terms first - this is academic/research-use-only territory, not a commercial pipeline. Set echo_wm_root, python_executable, and model_root in this node (env vars ECHO_WM_ROOT, ECHO_WM_PYTHON, ECHO_WM_MODEL_ROOT work as fallbacks).
Outputs
The runtime output is a typed ECHO_WM_RUNTIME token - wire it into the Causal Flash Generate node's runtime input. The second output, runtime_metadata, is a JSON string showing exactly what got resolved: resolved paths, GPU index, the schema, and the isolation mode (external-python, shell=False). If a run goes wrong, that JSON is the first thing to read.
The whole design is defensive, which is refreshing. There's no free-form command input, prompts never touch a shell, and cancellation kills the child process tree. It's the most "boring" node in the pack, and it's the one that keeps a genuinely dangerous dependency stack from becoming your problem.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| echo_wm_root | STRING | Directory containing inference_wm_causal.py; blank enables discovery. | |
| python_executable | STRING | Dedicated Echo-WM Python. ComfyUI's interpreter is rejected. | |
| model_root | STRING | Contains echo-wm-flash.safetensors and gemma-3/. | |
| gpu_index | INT | 00–31 | — |
| ffmpeg_bin | STRING | Optional ffmpeg path, needed only for the action HUD overlay. | |
| refresh_nonce | INT | 00–2147483647 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| runtime | ECHO_WM_RUNTIME | — |
| runtime_metadata | STRING | — |