Repository navigation
Releases: Saganaki22/ComfyUI-Viggle-Animate-H3
Release list
v1.3.2 — Fix long-video ending drift
v1.3.2 — Fix long-video ending drift
Fix a final-window conditioning mismatch introduced by rounding source lengths up to the H3 frame grid. For example, a 289-frame source could supply 32 reference latents against 37 target latents in the last window. Padding the reference before VAE encoding aligns those lengths; the maintainer confirmed the fix on the affected clip.
- Restore full-length, end-aligned final windows.
- Add five-frame decoded/re-encoded continuation anchors, enabled by default.
latent_overlapremains available for comparison. - Preserve accepted output when final windows overlap earlier chunks.
- Trim the Chunked Sampler output to the loaded source frame count.
- Update example workflows, English/Chinese documentation, cache and checkpoint handling.
After updating: restart ComfyUI and refresh the browser. For older advanced loop workflows, connect the H3 VAE to Sample Chunk when using five_frame_anchor. Code updates invalidate automatic checkpoint reuse; saved latent files remain readable. The advanced loop's external decode still includes grid padding.
Validation: 42 Python regression tests covering reference encoding, anchor placement, assembly, caching and loop recovery. Motion quality can still vary by clip.
v1.3.0
Long-video release: windowed conditioning, chunked sampling and a disk-checkpointed chunk loop, plus live progress in the UI and hardened caching.
New nodes
- Viggle-Animate Conditioning (H3, Windowed) - splits the driving clip into overlapping windows and builds each chunk's references; outputs
cond_setfor the chunked sampler andguider_positivefor the guider - Viggle Chunked Sampler - samples each window while preserving overlap from the preceding chunk (latent carry, no pixel crossfade), reuses eligible cached chunks, and decodes the assembled video once; outputs
framesplus a readablechunk_mapwith frame ranges, seeds and[cached]/[rendered]labels - Viggle Chunk Loop Start / Viggle Sample Chunk / Viggle Chunk Loop End / Viggle Assemble Chunk Latents - graph-expanded chunk loop with disk checkpoints (
output/viggle_chunks/<run_name>/, atomic writes): each chunk is decoded and saved through your own nodes while it is produced, a mid-run failure keeps every completed chunk, andresumere-queues restore all chunks whose graph, models, conditioning, sigmas and per-chunk seed still match
Sampling
- Chunk seed controls:
rerender_chunk/rerender_seedre-roll one chunk without changing the base seed for the whole clip; unchanged settings keep hitting the cache - Custom sigma presets for upstream-style 4-8 steps (4/6/8 sigma points = 3/5/7 forward passes), derived from the upstream shift-3 schedule; 6 points is the recommended speed/quality balance (4 = fastest, 8 = favoring quality/stability)
- Invalid sigma schedules and NaN/Inf chunk latents now stop with an actionable error before corrupt output is cached or carried into later chunks
- Byte-budgeted caches: chunk cache limited to 2 GiB of CPU tensors, reference encodes to 256 MiB / 64 entries; oversized entries are not cached
Performance
- Windowed conditioning reuses complete 17-frame encoder blocks from the previous window with the standard ComfyUI H3 VAE; each window's padded tail is still encoded separately - fewer repeated VAE passes without changing resolution or precision (the reuse count is logged)
- Fixed a chunk-reuse bug where stale chunks could be served after settings changed
UI
- Live progress:
live_progressdisplay on Viggle Chunked Sampler and the loop nodes (sampling, cache hits, per-chunk decode/save) via the newweb/chunk_progress.jsextension - restart ComfyUI and refresh the browser after updating
Docs
- New example workflows: Chunked Sampler (memory cache, one final decode) and Chunked Window Advanced (loop, disk checkpoints, external decode)
- New long-generation guides:
docs/long_video_guide.mdanddocs/long_video_guide_zh.md(wiring, resume rules, first-run checklist, node-by-node breakdown) - READMEs rewritten for 1.3.0 in English and Chinese, including when-to-use guidance for each workflow
- Resolution note: the canvas has been tested reliably up to 1.2 MP - the driving video and reference image then need to be high quality, not pixelated
v1.2.0
Performance
- Repeat runs with the same driving clip / reference still now skip the video-VAE encode entirely — a small in-node latent cache (keyed on content, canvas, length and VAE instance; 4-entry LRU) removes the ~30 s stall between nodes when iterating on sampler settings
- Frames are truncated to the 17k+5 grid before resampling, so clips loaded longer than
lengthno longer waste a lanczos pass on frames that get thrown away
Docs
- New Limitations section: identity drift when the subject leaves and re-enters camera view, moves far from the reference pose, or makes abrupt large motions
- Noted stacking compatibility with Comfy Kitchen and block sparse attention patches
- Tested canvas range documented (0.4-0.98 MP); zh README parity
v1.1.0
Fixed
- Manual \width/\height\ on Viggle-Animate Conditioning now sets the output canvas (previously it only influenced aspect ratio and was silently clamped to the driving clip's size) — matches the reference \sample.py- Re-uploaded all quantized weights on HF (int8 47 GB, pruned 21 GB): fixed stale convrot scales, NaN norm gains, corrupted adaln curve weights, and an over-quantized token_refiner — earlier uploads could render black or degraded output; re-download if you grabbed them before this release
- Fixed both LoRAs (fc1 SwiGLU half-swap mismatch — degraded every render) and re-uploaded; removed the broken r29 variant
Changed
- Recommended sampler range is now 4-8 steps; added \�xp_heun_2_x0\ to the sampler list
- README restructured (EN + 中文): model links, storage layout, workflow notes, demo grids, corrected file sizes
- Updated example workflow JSON + screenshot
v1.0.0 — Initial Release
ComfyUI-Viggle-Animate-H3 — v1.0.0
ComfyUI nodes for Viggle-Animate: character replacement in video from a driving clip + one reference still. No text encoder, no prompt — conditioning is a frozen 362-token embedding; the DMD2-distilled sampler runs at 4 steps (3 forward passes).
Nodes
- Load Text Conditioning (Viggle) — dropdown loader for frozen text conditioning (
models/text_cond/) - Viggle-Animate Conditioning (H3) — builds conditioning + AV latent with the exact training layout: video-first reference order, both references nested on the driving clip's short edge
Everything else is ComfyUI core (Load Diffusion Model → Load LoRA (Model Only) → ModelSamplingMiniMaxH3 shift_video 3.0 → KSampler 4 steps, cfg 1.0).
Weights (converted, ComfyUI-native): drbaph/Viggle-Animate-ComfyUI
| File | Size | Notes |
|---|---|---|
| bf16 transformer | 66.3 GB | full precision, ≥ 96 GB VRAM |
| int8 convrot transformer | 46.3 GB | int8 weights |
| pruned int8 convrot transformer | 20.3 GB | fits a 32 GB card — recommended |
| DMD LoRA rank 128 | 3.5 GB | original, exact conversion (required) |
| DMD LoRA r64 / r29 | 0.88 / 0.40 GB | SVD-truncated, 99.26% / 98.2% energy |
| frozen text conditioning | 3.7 MB | replaces the text encoder |
Base VAEs from Comfy-Org/MiniMax-H3. Example workflow in example_workflows/. Weights are MiniMax H3 model derivatives — the MiniMax H3 Community License applies.