AddIntroImage
A title card for your AI video, no video editor required
- output_video_path
- output_video_file
What this node actually is
AddIntroImage is the entire reason the tiny HoangYell/comfyui-hoangyell-video pack exists. Give it a video and an image, and it muxes a title-card intro - with a transition - onto the front of the video, matches the original's resolution, fps, codec and bitrate, and drops a finished mp4 into an output/ folder. No API, no model download, no VRAM touched.
The pitch: you generated a clip with Wan, LTX-Video or AnimateDiff and want a title card or logo on the front, but you don't want to leave ComfyUI for a separate editor. Honest take: this is a thin wrapper around ffmpeg - the author says so himself, "coding for fun" - and if you're fluent in ffmpeg one-liners you could script it. What the node buys you is a clickable UI and canned transition styles, which is handy when all you want is "image, then video, with a decent zoom."
How it works
There's no PyTorch in here. All the heavy lifting is the ffmpeg/ffprobe system binaries, driven from add_intro_image.py:
- Validate both paths exist (raises
FileNotFoundErrorotherwise). - ffprobe the video for resolution, fps, pixel format, codec and bitrate.
- Pillow scales the image to fit inside the frame, preserving aspect ratio, then centers it on your
padding_color- no crop, no stretch. - ffmpeg renders a static intro clip at the video's exact codec/fps/bitrate.
- A second clip renders the transition animation (zoompan, fade, slide, blur, rotate…).
- The concat demuxer stitches intro + transition + your video, then re-encodes.
Worth knowing: the packaged requirements.txt only lists Pillow and ffmpeg-python, and the shipped code never actually imports ffmpeg-python - it shells out with subprocess; the README calls it "future extensibility." Also, the README lags the code: it describes this node as "VideoIntroImage" with a "ComfyUI file picker," but the registered class is AddIntroImage with plain text-path fields. Trust the search bar, not the README.
One mechanism detail the README won't tell you: duration only controls the static intro. The transition is hardcoded to 1 second inside _create_transition, so a 0.5s duration actually adds 1.5 seconds total. Not a bug, but if you're timing to a beat, do the math yourself.
The inputs that matter
video_path/image_path- absolute paths typed as strings. No file picker; the defaults point at/home/goat.mp4and/home/goat.png, which is… a goat.duration- 0.01–10s, default 0.5. How long the title card holds before the transition starts.animation_style- 12 choices, defaultzoom. The real options are zoom, fade, slide in four directions, blur_in, rotate, scale_in, grayscale_in, color_in, andnonefor a plain cut.zoom_max- 1–5, default 1.35. Only affectszoom; how far the push-in goes.padding_color- black/white plus six colors for the letterbox bars. Black is the default and usually the right call.
The outputs are output_video_path (the full path to the written file) and output_video_file (the file itself, for wiring into a preview node or handing downstream).
Installing it
Easiest via ComfyUI Manager - search "comfyui-hoangyell-video", install, restart. Or manually:
cd /path/to/ComfyUI/custom_nodes/
git clone https://github.com/HoangYell/comfyui-hoangyell-video
cd comfyui-hoangyell-video
pip install -r requirements.txt
Then restart ComfyUI. There are no model downloads and nothing to fetch - the whole pack is a few hundred lines of Python. The one real system requirement is ffmpeg and ffprobe on PATH; the portable Windows build bundles ffmpeg, but you may need to add it to PATH yourself.
Gotchas
- Missing ffmpeg/ffprobe on PATH → a "Failed to create intro video" RuntimeError. Install ffmpeg and make sure both binaries resolve from wherever you launched ComfyUI.
- Everything gets re-encoded through libx264 (or libx265 for hevc input), so the output is one generation down from your master, and long videos take a while. Run this on a working copy, not your source of truth.
- The output filename is timestamped with colons (
name_15:30:45.mp4). Fine on Linux and macOS; on Windows a colon in a filename is illegal, and the write will fail. - Output and temp files use relative paths (
output/,image_temp.mp4, …), so they land in whatever directory ComfyUI was launched from - usuallyComfyUI/output/, but don't be surprised if it's elsewhere.
Bottom line
If you're post-processing AI video inside ComfyUI and need a title card, this is a tidy, zero-model, zero-VRAM tool for the job. For a quick logo slap on a test render, it does exactly what it says on the tin. If you're shipping content to people, do your intro in a real editor.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| video_path | STRING | /home/goat.mp4 | — |
| image_path | STRING | /home/goat.png | — |
| duration | FLOAT | 0.500.01–10 | — |
| animation_style | COMBO | zoom | 12 options: zoom, fade, slide_left, slide_right, slide_up, slide_down, +6 |
| zoom_max | FLOAT | 1.351–5 | — |
| padding_color | COMBO | black | 8 options: black, white, red, green, blue, yellow, +2 |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| output_video_path | STRING | — |
| output_video_file | file | — |