ComfyUI Node

AddIntroImage

A title card for your AI video, no video editor required

By HoangYell·Created about a year ago·Updated about a year ago· 0
AddIntroImage
    • output_video_path
    • output_video_file
    video_path/home/goat.mp4
    image_path/home/goat.png
    duration0.50
    animation_stylezoom
    zoom_max1.35
    padding_colorblack

    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:

    1. Validate both paths exist (raises FileNotFoundError otherwise).
    2. ffprobe the video for resolution, fps, pixel format, codec and bitrate.
    3. Pillow scales the image to fit inside the frame, preserving aspect ratio, then centers it on your padding_color - no crop, no stretch.
    4. ffmpeg renders a static intro clip at the video's exact codec/fps/bitrate.
    5. A second clip renders the transition animation (zoompan, fade, slide, blur, rotate…).
    6. 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.mp4 and /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, default zoom. The real options are zoom, fade, slide in four directions, blur_in, rotate, scale_in, grayscale_in, color_in, and none for a plain cut.
    • zoom_max - 1–5, default 1.35. Only affects zoom; 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 - usually ComfyUI/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.

    Categoryhoangyell/video

    Inputs (6)

    NameTypeDefaultDescription
    video_pathSTRING/home/goat.mp4
    image_pathSTRING/home/goat.png
    durationFLOAT0.500.01–10
    animation_styleCOMBOzoom12 options: zoom, fade, slide_left, slide_right, slide_up, slide_down, +6
    zoom_maxFLOAT1.351–5
    padding_colorCOMBOblack8 options: black, white, red, green, blue, yellow, +2

    Outputs (2)

    NameTypeDescription
    output_video_pathSTRING
    output_video_filefile