Nodes/ComfyUI_JoyAI_Echo/JoyAI_Echo_SM_KSampler
ComfyUI Node

JoyAI_Echo_SM_KSampler

The node that actually makes the 5-minute video (and its audio)

By smthemex·Created 3 months ago·Updated 2 months ago· 56
JoyAI_Echo_SM_KSampler
  • model
  • te_cond
  • first_video
  • images
  • audio
width768
height512
seed0
num_frames121
shot_num_secs
frame_rate25
prefetch_count1
enable_tilesfalse
tile_size_in_frames24
tile_size_in_pixels512
streaming_mode
audio_memory_mode
video_memory_mode

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_frames gets 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, like 2.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 (optional VIDEO) - 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. fast when you have headroom, swap when you don't, auto if you want the pack to pick. Several updates fixed tile support and added multi-layer swap modes, so on a recent release swap is 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 are center/center, which are sensible; first is handy when you want the opening shot's look to keep dominating.
  • te_cond (optional CONDITIONING) - wire the encoder's output here. If you don't, the node silently loads joy_echo_te_cond.pt from ComfyUI/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 None and no .pt file - it hard-errors. Either wire te_cond or 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, flip enable_tiles on, then move streaming_mode toward swap/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.
CategoryJoyAI_Echo_SM

Inputs (16)

NameTypeDefaultDescription
modelMODEL
widthINT768256–16384
heightINT512256–16384
seedINT00–2147483647
num_framesINT12116–2147483647
shot_num_secsSTRINGexample: 2.3, 5.8, 15
frame_rateFLOAT258–120
prefetch_countINT10–48
enable_tilesBOOLEANfalse
tile_size_in_framesINT2416–1024
tile_size_in_pixelsINT51264–4096
streaming_modeCOMBO4 options: fast, swap, slow, auto
audio_memory_modeCOMBO3 options: center, max_response, random
video_memory_modeCOMBO3 options: center, first, random
te_condoptCONDITIONING
first_videooptVIDEO

Outputs (2)

NameTypeDescription
imagesIMAGE
audioAUDIO