Int8?

#2
by ucren - opened

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

Sign up or log in to comment