| rerun_segments | STRING | | Re-render only these segments (1-based, as in the log): e.g. 3 or 4-6 or 8-10, 13-14. Empty = normal run. Needs resume_from_cache on and every other segment in the cache. Each selected block starts from the end of the segment before it and its last overlap frames are locked to the start of the cached segment after it, so nothing else is re-rendered. Old files go to _replaced_<time>.
只重跑这些段(从 1 数,和日志一致):如 3、4-6、8-10, 13-14。留空 = 正常跑。需要打开 resume_from_cache,其余段都要在缓存里。每块开头接上一段结尾,结尾锁到下一段的旧开头,其余段不重跑;旧文件挪到 _replaced_<时间> 留底。 |
| stop_after | INT | 00–255 | Run segments 1..N only (0 = all). Short test: 1 = only the first segment; set it back to 0 later and the cached segments are reused.
只跑到第 N 段为止(0 = 全部)。短测试填 1 = 只跑第 1 段;之后改回 0,已跑的段从缓存取。 |
| rerun_new_seed | BOOLEAN | true | Re-rendered segments get a new random seed (logged and stored in the cache), so a rerun differs even with the same prompt and refs. Off: the original seed.
重跑的段用新的随机种子(记进日志和缓存),提示词和参考图不变也能抽到不同结果。关:用原种子。 |
| plan | H3MD_PLAN | | — |
| clip | CLIP | | — |
| vae | VAE | | Video VAE (pixel route of the lift when rho > 0). |
| audio_vae | VAE | | — |
| low_res_model | MODEL | | Model for the low-res pass (and the high-res pass when high_res_model is not connected). |
| sampler | SAMPLER | | — |
| sigmas | SIGMAS | | One schedule for both passes; split at transition_step. |
| seed | INT | 00–18446744073709550000 | — |
| cfg | FLOAT | 1.00–100 | — |
| transition_step | INT | 61–10000 | Steps of the schedule run at low resolution; the rest run at full resolution. |
| lowres_scale | FLOAT | 0.500.25–1 | Size of the low-res pass (0.5 = half width and height). |
| rho | FLOAT | 0.000–1 | Share of the most inconsistent positions corrected toward the pixel-VAE route. 0 = learned upscaler only (no VAE round trip). |
| w_min | FLOAT | 0.500–1 | — |
| w_max | FLOAT | 1.000–1 | — |
| upscaler_model | COMBO | none | Learned H3 3D latent upscaler for the lift (models/latent_upscale_models or upscale_models). none = nearest. |
| ref_image_size | COMBO | match | 2 options: match, max |
| continue_audio | BOOLEAN | true | — |
| drift_strength | FLOAT | 0.600–1 | Drift: peak re-noise weight for the overlap prefix token farthest from the seam (the prefix is restored exactly at the end). 0 = prefix kept unchanged during sampling too (the former static_lock). |
| drift_lock_tokens | INT | 20–64 | Prefix tokens nearest the seam that stay locked (1 token = 3.4 frames). |
| seed_mode | COMBO | increment | increment (default): segment k uses seed + k, so equal-length segments do not get identical noise; same: every segment uses the seed. With resume_from_cache on, the seed of the run being resumed is reused. |
| decode_output | BOOLEAN | true | Decode every segment (video + audio VAE) after sampling and join the frames like H3MD Segment Join. Off: only the joined latent is produced. |
| audio_crossfade_ms | INT | 00–2000 | — |
| release_vram_between_segments | BOOLEAN | true | Unload idle models (text encoder, VAEs, upscaler leftovers) + soft_empty_cache between segments. The shared base UNet stays. |
| high_res_modelopt | MODEL | | Model for the high-res pass (default: low_res_model). |
| highres_tilingopt | BOOLEAN | true | High-res pass: measure the free VRAM and use the fewest strips that fit (full frame when it fits - no cost on large cards). Off = always full frame. |
| tiling_axisopt | COMBO | auto | High-res tiling: split direction. auto = the longer side; width = left/right strips; height = top/bottom strips. Audio and time are never split. |
| tiling_overlapopt | INT | 82–32 | High-res tiling: overlap between neighbouring strips in latent pixels (x16 image pixels); the strip predictions are feather-blended over it. |
| ff_chunk_rowsopt | INT | 00–262144 | Low VRAM: run the DiT feed-forward on this many sequence rows at a time (both passes). Same result, lower peak memory, a little slower. 0 = off (the high-res tiling still switches it on by itself after an out-of-memory retry at the most strips). |
| release_upscaleropt | BOOLEAN | true | Drop the learned upscaler from RAM right after the lift. |
| unload_idle_modelsopt | BOOLEAN | true | Between the passes: unload text encoder / VAEs / other idle models + empty the cache. The diffusion models stay loaded. |
| cache_modeopt | COMBO | disk | disk: decode each segment right after sampling and write it to a disk cache (RAM holds one segment); merge at the end. ram: original in-RAM decode/join. |
| cache_dtypeopt | COMBO | fp16 | Cached frame format. fp16 ~= lossless (2 B/value); uint8 = half the disk, 8-bit like the saved video. |
| cache_diropt | STRING | | Empty = auto: <drive>/H3MD_cache on the local fixed drive with the most free space (an existing H3MD_cache holding resume_* runs is reused first, so resume survives restarts). Falls back to ComfyUI temp/h3md_cache with a warning if nothing is writable. |
| delete_cacheopt | BOOLEAN | true | Hidden / no effect since 2026-10-18: the Loop never deletes its cache before the video is saved. Use H3MD Save Video Interp -> delete_cache_after_save. |
| resume_from_cacheopt | BOOLEAN | false | Reuse cached segments with identical plan segment, refs, seed and settings (models/LoRAs are NOT checked). The base seed of the run being resumed is reused, so a randomized seed widget does not break the resume. |
| unload_models_before_mergeopt | BOOLEAN | true | After the last segment: unload all models (incl. the base UNet) + empty cache before the merge and downstream RIFE/Save. |
| continue_lowres_prefixopt | COMBO | native_lowres_carry | Continued segments, low-res pass: pixel_reencode (Alpha) = the overlap frames are downscaled in pixel space and VAE-encoded (fixes the hazy/ghosted continuation); latent_resize = the engine's latent-space resize; native_lowres_carry (default) = the previous segment's own low-res stage latent tail (unresized) pins the low-res prefix, the high-res final latent pins the high-res prefix; falls back to pixel_reencode when no matching carry exists. |
| merge_overlap_sourceopt | COMBO | next | Continuation joins: which decoded copy of the overlap frames is kept. next = the new segment's copy (decoded WITH following frames as VAE context; the previous segment's last frames are decoded without it); prev = old behaviour. Hard cuts, frame count, audio and the joined latent are unchanged. |
| seam_tone_matchopt | COMBO | off | Continuation joins, after decode: measure the low-frequency brightness (luma) or colour (color) difference of the two overlap copies near the seam and add a small, clamped offset to the new segment that eases out over ~18 frames. off = unchanged. |
| seam_tone_strengthopt | FLOAT | 1.000–1 | Fraction of the measured seam delta corrected (clamped to +-0.04). |
| seam_tone_globalopt | FLOAT | 0.000–1 | Optional whole-segment luma offset = this * measured luma delta (clamped to +-0.015); the seam offset eases to it instead of to 0. |
| semantic_bridgeopt | H3MD_SEMANTIC_BRIDGE | | Optional H3MD Semantic Bridge chain. Not connected = off. |
| seam_decode_contextopt | INT | 00–2 | Continued segments: decode with this many 17-frame clips of the previous segment's final latent in front (VAE context), then drop them, so the new segment does not start the VAE cold at the seam. 0 = off (old behaviour). |
| depth_controlopt | H3MD_DEPTH | | H3MD Depth Control (optional, appended LAST): depth ControlNet on the low-res stage for plan videos with 'depth' ticked. Not connected = off. |
| vram_releaseopt | COMBO | deep | Between segments. deep: unload idle models, reset ComfyUI's cast/staging buffers, empty the CUDA cache and log memory before/after; if PyTorch still keeps > 2 GB idle or the GPU is nearly full, unload ALL models (the base UNet reloads, ~0.5-1 min). basic: the old idle-model unload only. |
| slow_step_guardopt | COMBO | stop | Watches the sampler's step times. A step >= 4x the usual time of that stage (and >= 120 s) means VRAM ran out (weights streamed every step). stop: interrupt the run (disk cache kept; restart ComfyUI and queue again with resume_from_cache on). warn: log only. off: no watch. |
| lowres_anchoropt | FLOAT | 0.000–1 | ONE continuous scene only (motion copy, a long take). After each continued segment's low-res pass, pull the new frames' 24 latent channels (mean and spread) back to the first segment of the shot, before the upscale; the low-res carry is corrected too, so colour / contrast drift cannot pile up segment after segment. 0 = off, 1 = full. Needs continue_lowres_prefix = native_lowres_carry. Do not use for a story whose colours should change.
只用于单一场景的长视频(动作复刻、长镜头):每个续接段低清跑完、放大前,把新画面 24 个通道的均值和幅度拉回本镜头第一段,低清接续数据也一起校正,颜色不会一段段越漂越深。0 = 关,1 = 全量。需要 continue_lowres_prefix = native_lowres_carry。场景本该变色的叙事视频不要开。 |