JoyAI_Echo_SM_KSampler
The node that actually makes the 5-minute video (and its audio)
- model
- te_cond
- first_video
- images
- audio
Everything else in ComfyUI_JoyAI_Echo is prep. This is the payoff: the node that takes your loaded model, your encoded shot list, and actually generates the multi-shot video and its audio in one pass. It's also where all the knobs live.
JoyAI-Echo is a distilled DMD generator on top of an LTX-2.3 finetune - the DMD part means it runs in very few denoising steps instead of the 20–40 a dev checkpoint wants, which is the 7.5× speedup the paper brags about. The multi-shot part means it doesn't generate one continuous 5-minute clip: it generates a sequence of shots and stitches them together while a paired audio-visual memory bank (max size 7) carries character appearance and voice timbre from shot to shot.
The inputs that matter
width/height(default 768×512, step 32),seed,num_frames(default 121),frame_rate(default 25). The usual.num_framesgets auto-corrected to satisfy the VAE's temporal alignment (the "16k − 3" rule) if you don't land on a valid value.shot_num_secs- this is the multi-shot magic. A comma-separated list of seconds marking where the shots cut, like2.3, 5.8, 15. Each value is converted to frames (seconds × fps, rounded up to a multiple of 8, plus one), so your shot boundaries land on VAE-friendly lengths. Leave it empty for a single continuous shot.first_video(optionalVIDEO) - connects an existing video for i2v/v2v mode. The README's advice: put characters in the mid frames, and write your first prompt to describe the reference content (i.e., reverse-infer what's on screen). ID consistency is "normal," not great - treat it as a starting-point feature, not a clone machine.streaming_mode-fast/swap/slow/auto. This is the layer-streaming/unload strategy: how aggressively the model streams layers between VRAM and system RAM.fastwhen you have headroom,swapwhen you don't,autoif you want the pack to pick. Several updates fixed tile support and added multi-layer swap modes, so on a recent releaseswapis more robust than it used to be.enable_tiles+tile_size_in_frames(24) +tile_size_in_pixels(512) - temporal/spatial tiling for low VRAM. Off by default; flip it on when the whole clip OOMs.audio_memory_mode-center/max_response/random- how the memory bank picks audio windows from earlier shots to condition the current one.video_memory_mode-center/first/random- the same idea for video frames. Defaults arecenter/center, which are sensible;firstis handy when you want the opening shot's look to keep dominating.te_cond(optionalCONDITIONING) - wire the encoder's output here. If you don't, the node silently loadsjoy_echo_te_cond.ptfromComfyUI/output, which is the fastest way to render the wrong story.
Outputs are images (IMAGE) and audio (AUDIO). Wire images to a Save Animated WEBP / Video Combine and audio to a save or playback node. Both come out of the same run, which is still rare enough in local video to be the whole point.
Install
Pack install only (clone into custom_nodes or ComfyUI Manager → "JoyAI Echo"), plus the models the Model and Clip nodes need. No separate sampler files to fetch - the DMD schedule is baked into the pack's config, which is why there's no steps/CFG field on this node.
Common issues
te_cond is Noneand no.ptfile - it hard-errors. Either wirete_condor run the encoder once first. Run order matters in this graph; the queue handles it, random clicking doesn't.- OOM. Your order of attack: lower
prefetch_count, flipenable_tileson, then movestreaming_modetowardswap/slow. If the whole thing still won't run on 8–12 GB, go back to the Model node and use the Q8 GGUF - community reports put working GGUF setups on 8 GB VRAM / 16 GB RAM. - Bad audio. The honest community take on JoyAI-Echo is that the audio is its weak spot - several people in the release threads called it "nuked" or blamed the DMD process, and LTX-2/2.3 audio generally got better reviews. If your story video sounds rough, don't chase settings here; that's the model, not your config. The KB's audio-generation essay has the same verdict on open audio-video generally: capable, still rough at the edges.
- Long stories drift. Even with the memory bank, faces and voices wander over five minutes. That's the current state of the art, not a bug; keep shots short and reuse the same subject phrasing across your shot lines, and the mid-range (1–3 minute) outputs are the sweet spot.
Inputs (16)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| width | INT | 768256–16384 | — |
| height | INT | 512256–16384 | — |
| seed | INT | 00–2147483647 | — |
| num_frames | INT | 12116–2147483647 | — |
| shot_num_secs | STRING | example: 2.3, 5.8, 15 | |
| frame_rate | FLOAT | 258–120 | — |
| prefetch_count | INT | 10–48 | — |
| enable_tiles | BOOLEAN | false | — |
| tile_size_in_frames | INT | 2416–1024 | — |
| tile_size_in_pixels | INT | 51264–4096 | — |
| streaming_mode | COMBO | 4 options: fast, swap, slow, auto | |
| audio_memory_mode | COMBO | 3 options: center, max_response, random | |
| video_memory_mode | COMBO | 3 options: center, first, random | |
| te_condopt | CONDITIONING | — | |
| first_videoopt | VIDEO | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |
| audio | AUDIO | — |