Skip to content

Releases: Saganaki22/ComfyUI-Viggle-Animate-H3

v1.3.2 — Fix long-video ending drift

Choose a tag to compare

@Saganaki22 Saganaki22 released this 11 Sep 08:04

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_overlap remains 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

Choose a tag to compare

@Saganaki22 Saganaki22 released this 08 Sep 02:32
16f634e

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_set for the chunked sampler and guider_positive for 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 frames plus a readable chunk_map with 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, and resume re-queues restore all chunks whose graph, models, conditioning, sigmas and per-chunk seed still match

Sampling

  • Chunk seed controls: rerender_chunk / rerender_seed re-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_progress display on Viggle Chunked Sampler and the loop nodes (sampling, cache hits, per-chunk decode/save) via the new web/chunk_progress.js extension - 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.md and docs/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

Choose a tag to compare

@Saganaki22 Saganaki22 released this 06 Sep 07:09

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 length no 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

Choose a tag to compare

@Saganaki22 Saganaki22 released this 06 Sep 05:52

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

Choose a tag to compare

@Saganaki22 Saganaki22 released this 05 Sep 20:58

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.