AD Create Video
The node that turns a frame stack into an actual video file
- context
- images
- audio
- VIDEO
You just generated a batch of frames and you want a video file out of it. AD_CreateVideo (display name "AD Create Video") is the pack's way of getting there - and it's deliberately boring in the best way. It takes a stack of images, optionally an audio track, and a frame rate, and hands you a ready-to-save VIDEO.
It's the "output" end of the pack's video stack, which is MiniMax H3-focused. And before you ask: no, "AD" here is not AnimateDiff. In this pack the Apt_Preset/AD category is the video section, and the "AD" is just the author's shorthand. There's a whole different AnimateDiff ecosystem in ComfyUI, so if you came here expecting motion-module scheduling, you're in the wrong menu.
What it actually does
The node merges two things ComfyUI core does separately into one stop: CreateVideo and decoding an audio latent through a VAE. In the pack's "Loader → Controller → Sampler" world, everything travels on a single wire called a RUN_CONTEXT - a bundle that carries the model, clip, VAE, audio VAE, latent, and images. AD_CreateVideo is built to read that bundle, so if you give it a context it grabs the images from there, and if there's a latent and an audio VAE in the bundle it decodes the audio for you automatically.
Give it plain wires instead and it works like the core node: images in, audio in, fps in, video out. Either way the output is a single VIDEO object you can feed into a save/preview node.
The inputs that matter
- fps - frame rate for the output, 1 to 120, default 30. Set it to what the model actually generated at. For the pack's MiniMax H3 workflow that's 24, not 30 - mismatch shows up as choppy or oddly-timed playback.
- bit_depth - 8 or 10 (default 8). 10-bit is nicer for grading but makes bigger files and some players choke on it. If you don't know why you'd need 10, leave it at 8.
- images (optional) - your frame stack. If you're feeding a context that already carries images, you can leave this unplugged.
- audio (optional) - the soundtrack, per the author's own tooltip: "The audio to add to the video." Leave it empty for a silent clip.
- context (optional) - the pack's
RUN_CONTEXTpipe. This is where the automatic audio-latent decode happens.
One output: VIDEO.
Installing it
This ships inside ComfyUI-Apt_Preset, so you install the whole pack:
cd ComfyUI/custom_nodes
git clone https://github.com/cardenluo/ComfyUI-Apt_Preset
# then install dependencies - on Windows double-click install.bat,
# or manually: pip install -r requirements.txt
Or use ComfyUI Manager and search for "ComfyUI-Apt_Preset". Restart ComfyUI after installing. The pack pulls in a long dependency list (pandas, pydub, opencv, scipy, soundfile, scenedetect, and more), and AD_CreateVideo itself leans on the newer comfy_io API, so keep ComfyUI reasonably up to date - an old core won't have the video plumbing it calls.
Where people get burned
The classic gotcha is silent output: you generate something in the MiniMax H3 stack, wire the frames to this node, and get a video with no sound. That happens when you feed images directly instead of a context - there's no audio latent for it to decode. Either pass the context through, or wire the audio in explicitly.
The other one is frame count. The pack's video model snaps frame counts to a 17k + 5 grid (more on that in the AD_MiniMax_guide article). If your frames don't line up, you can get a stuttery last second. Keep length multiples in the model's native grid and you'll be fine.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| fps | FLOAT | 241–120 | — |
| contextopt | RUN_CONTEXT | — | |
| imagesopt | IMAGE | — | |
| audioopt | AUDIO | The audio to add to the video. | |
| bit_depthopt | INT | 88–10 | — |
| trim_framesopt | INT | 00–4096 | Remove this many leading image frames and the matching audio. 0 disables trimming; use 22 for Apt MiniMax H3 continuation clips. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| VIDEO | VIDEO | — |