Silver H3 Video Editor (edit a section from a video reference)
Hand the model a clip and ask it to change one thing
- model
- clip
- video_vae
- audio_vae
- saved_video
This is the sibling of the pack's Segment Editor and it solves the opposite problem. The Segment Editor does pixel-exact surgery - you pick a stretch, it regenerates that stretch and the frames before and after are the originals. SilverH3VideoEditor does not splice at all: it hands H3 your clip as a reference video and asks it to re-render the whole section as something new.
So the use case is "same scene, same motion, same timing - different jacket," or "same shot, but make it night." You are not preserving frames; you're preserving the content of a shot while changing one thing about it, and the model's reference conditioning is what keeps the rest recognisable.
How it works
The section between source_start and source_end - capped at 15 seconds, H3's limit - is fed to the model as a single reference video, <Video 1>, with its soundtrack, which the tokenizer presents as a paired <Audio 1> right before it. The node prepends a fixed alignment line naming <Video 1> as the source clip so the edit instruction has something unambiguous to hang off. Then H3 regenerates the section from scratch, guided by the reference, and the output is exactly that regenerated section - no splicing, no before-and-after frames attached.
Because it's reference-driven, there are no first/last keyframes here at all. Keyframes and refs share the same conditioning slot and references win, so a ref2va-style checkpoint is required and an fl2v model will simply ignore your reference. The audio comes from the model, natively guided by the reference soundtrack - which is why there's no audio-lock machinery on this node.
Phases are the pack's usual two-swap pattern: text encoder plus both VAEs in the encode phase, one sampling pass with the DiT hot, one decode pass. source_end is snapped down to H3's 5+17k grid and the reference and output always share that exact length - ask for 15 seconds and you get 345 frames, the largest on-grid value at or below it.
The inputs
Nine inputs are required, but four of those are just the model, the CLIP and the two VAEs you'd wire anyway. The ones you think about: source_video comes from ComfyUI's input folder - the preview panel gives you a play button, an Open video upload button, and EDIT WINDOW handles to drag the section, which beats typing seconds.
video_prompt is the edit instruction. The tooltip is worth following almost literally: state what to change (subject, clothing, scene, style) and what to keep (motion, camera, timing, environment, lighting). Vague prompts here don't degrade gracefully - the model will happily re-plan whatever you didn't claim.
source_start and source_end (0 = to the end), then megapixels (default 1) for the output resolution: the whole section is resized to that total pixel count, aspect preserved as closely as the 32-pixel grid allows, resampled to 24 fps.
Optional: seed, steps, sampler_name (res_multistep), scheduler - note the default here is beta, not simple - plus filename_prefix, format and frame_compression, the H.264 CRF knob where 0 is lossless and 23 is the sane default. Output is one saved_video string, a brand-new 24 fps clip at the megapixel size with the model's generated audio.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/SilverAndJade/comfyui-silver-nodes
Restart. The H3 nodes lean on ComfyUI's PyAV and the newer comfy_api.latest video types, so keep ComfyUI reasonably current; the pack's requirements.txt covers the older loader nodes in the same pack. You need a ref2va-capable H3 checkpoint plus the H3 video and audio VAEs - and the weights themselves, roughly 42.5GB under the MiniMax H3 Community License, which excludes the US, EU, UK and South Korea from its applicable territory. There's no example workflow for this one in the repo, so expect to build the graph yourself.
The honest caveat
The author's own commit note on this node says the video embed takes precedence over the text prompt, which means the edit doesn't work as well as you'd hope - the reference is strong enough that instructing it to change things is fighting the conditioning. That's consistent with how reference-to-video models behave generally: they're better at "same thing, new angle" than at "same shot, new contents." Don't expect a Photoshop-grade retouch; expect a strong stylistic re-render that mostly respects the source.
The practical consequences: short windows work better than the 15-second maximum, one clear change beats a paragraph of edits, and it's worth comparing against the Segment Editor for the same job. If your goal is a clean, invisible patch in otherwise-good footage, keyframe regeneration with a locked audio spine is the more reliable tool. Reach for this node when you want the model to genuinely re-imagine the shot.
Inputs (16)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| clip | CLIP | — | |
| video_vae | VAE | — | |
| audio_vae | VAE | — | |
| source_video | COMBO | SOURCE video from the input folder (browse the dropdown, drag-and-drop, or use the Open button in the node's preview panel to upload). The section between source_start and source_end (capped at 15s) is fed to the model as the reference video <Video 1> - frames and its soundtrack - and regenerated as a brand new video. | |
| video_prompt | STRING | Edit instruction for the regenerated section. <Video 1> is the source clip (its soundtrack rides as the paired audio reference). State what to CHANGE (subject, clothing, scene, style...) and what to KEEP (motion, camera, timing, environment, lighting). Requires a ref2va-style checkpoint. | |
| source_start | FLOAT | 0.00–7200 | Start (seconds) of the section to regenerate. Use the preview panel's EDIT WINDOW handles to set it visually. |
| source_end | FLOAT | 0.00–7200 | End (seconds) of the section to regenerate. 0 = to the end of the video. Capped at 15 seconds (the model's limit) and snapped down to H3's frame grid (5 + 17k at 24 fps); the reference and output share exactly that length. |
| megapixels | FLOAT | 1.000.01–4 | Resolution of the OUTPUT and the reference video in megapixels: the whole section is resized to this total pixel count, keeping the source's aspect ratio as closely as the H3 canvas allows (both dimensions divisible by 32), re-sampled to 24 fps. |
| seedopt | INT | 00–18446744073709550000 | — |
| stepsopt | INT | 201–50 | — |
| sampler_nameopt | COMBO | res_multistep | 44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38 |
| scheduleropt | COMBO | beta | 9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3 |
| filename_prefixopt | STRING | SilverH3VideoEditor | Output filename prefix. |
| formatopt | COMBO | mp4 | 2 options: mp4, auto |
| frame_compressionopt | FLOAT | 23.000–51 | H.264 CRF for the saved video. 0 = lossless, 23 = default good quality. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| saved_video | STRING | Path of the saved output video: the selected section of the source regenerated from <Video 1> as a brand-new 24 fps clip at the megapixel resolution, with the model's generated audio. |