Instructions to use joeygambino/joyai-echo-ltx23-echoVid-ltxAud-surgical with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Diffusion Single File
How to use joeygambino/joyai-echo-ltx23-echoVid-ltxAud-surgical with Diffusion Single File:
# No code snippets available yet for this library. # To use this model, check the repository files and the library's documentation. # Want to help? PRs adding snippets are welcome at: # https://github.com/huggingface/huggingface.js
- Notebooks
- Google Colab
- Kaggle
Int8?
can we get an int8 convrot comfyui compatible version?
can we get an int8 convrot comfyui compatible version?
Done — just published it: https://huggingface.co/joeygambino/joyai-echo-ltx23-echoVid-ltxAud-surgical-int8
It's the full surgical merge in stock-ComfyUI-native int8_tensorwise with ConvRot, exported with Comfy-Org's comfy-quants using the official LTX-2.3 recipe (blocks 2–45 quantized with rotation, first/last two blocks kept bf16, 1,496 layers). Single file — VAEs, audio VAE, vocoder, and the text projection are all bundled, so it loads via the standard checkpoint loader in ComfyUI 0.27.0+ with no custom nodes, on anything RTX 20-series or newer.
Honest note: I've format-verified it (markers, scales, and layer selection all match the spec) but haven't render-tested it yet — my own box is still on 0.26.2. If anything looks off, open a discussion and I'll dig in. And if you're after maximum fidelity rather than speed, the Q8_0 GGUF in my other repo dequantizes to bf16 compute and measures ~0.6% from the original weights; this INT8 file is the faster, more-compatible option.
Thanks. but transformerOnly version is better i think. we can use the original high vae or change a text encoder to int4. PS, maybe can convert int4_tensorwise to int4 ConvRot
Thanks. but transformerOnly version is better i think. we can use the original high vae or change a text encoder to int4. PS, maybe can convert int4_tensorwise to int4 ConvRot
Good suggestion - done. The repo now has a transformer-only file:
ltx23_echoVid-ltxAud_surgical_int8_convrot_transformer_only.safetensors (25.5 GB)
DiT only - no VAEs, no vocoder - so you pair it with the original full-precision LTX-2.3 VAE exactly as you described. One deliberate deviation from the usual transformer-only convention: it keeps the four tiny text_embedding_projection tensors. Third-party conversions that drop them are the classic cause of the "robotic voice / speaks the prompt text / new face every shot" failure class, and they cost 4 tensors' worth of bytes to keep, so they stay. Stock loaders ignore what they don't need.
Text encoder was already your choice either way - none of these files contain the Gemma; any single-file gemma-3-12b-it works, including int4 quants of it.
On INT4 ConvRot for the DiT: not currently possible with the official exporter. comfy-quants only implements ConvRot for INT8 (tensorwise + W8A8) on the ltx2 family - its INT4 flows (svdquant W4A4 / AWQ) don't cover ltx2 yet. Today's 4-bit options for this merge are the GGUF quants on this account (Q4/Q5/Q6/Q8 - run on any card through GGUF loader nodes, including pre-RTX40) or NVFP4 (which Lightricks ships for base LTX-2.3, but it needs a 50-series card). If comfy-quants adds an ltx2 INT4+ConvRot path, I'll export it the same day.
Great ,thanks so much , i will try. By the way, can you provide a native comfyui workflow support for the 'memory-multishot '. your custom node seems not using ksampler to infer
Great ,thanks so much , i will try. By the way, can you provide a native comfyui workflow support for the 'memory-multishot '. your custom node seems not using ksampler to infer
Good observation - the Generate node deliberately doesn't use KSampler, and here's why a pure-native memory-multishot workflow isn't possible today:
The memory system isn't a conditioning trick you can wire into the normal sampling path. Per shot it prepends previous shots' VIDEO latents as memory tokens, injects their AUDIO latents as a paired memory lane, applies slot-pairing cross-attention masks (face bound to voice per slot - this is what prevents cross-character face/voice mixing), and loops shot-by-shot managing the bank between generations. KSampler's contract - one latent, one denoise loop - has nowhere to put any of that. So the Generate node IS the sampler: the same few-step schedule as official JoyAI-Echo inference, wrapped around the bank management.
What IS possible natively: a "multishot lite" chain - stock nodes only, one sampling stage per shot, each shot image-conditioned on the previous shot's output, plus a byte-identical character sentence repeated in every prompt. Native everything, decent face consistency - but no paired voice memory, so the voice rests on describing it identically in every shot (more effective than you'd expect: "a low American voice with a slight rasp" repeated verbatim carries surprisingly far). If there's interest I can put that together as a companion workflow JSON.
Sorry i did not read this comments here. Yes, a "multishot lite" chain is enough ,one sampling stage per shot. we can give image refs and audio by ourselves. Looking forward to your workflow