Nodes/ComfyUI-IntoTheLatent-Utils/ITL Multi Video Loader Advanced
ComfyUI Node

ITL Multi Video Loader Advanced

Multi Video Loader, with filename sockets so you know which clip is which

By Into-The-Latent·Created about a month ago·Updated about 21 hours ago· 2
ITL Multi Video Loader Advanced
    • count
    • video_1
    • audio_1
    • filename_1
    • video_2
    • audio_2
    • filename_2
    • video_3
    • audio_3
    • filename_3
    • video_4
    • audio_4
    • filename_4
    • video_5
    • audio_5
    • filename_5
    • video_6
    • audio_6
    • filename_6
    • video_7
    • audio_7
    • filename_7
    • video_8
    • audio_8
    • filename_8
    files_json[]
    force_rate0
    output_slotsauto

    The Advanced version of ITL's Multi Video Loader takes everything the basic node does - up to 8 clips on one node, each with its own video_N and audio_N socket, decoded lazily by default - and adds a filename_N output per file.

    If you've ever stared at a video workflow with four clips loaded and no idea which socket carries the close-up and which carries the wide shot, you know why filenames matter. With filename_N exposed as a string, you can wire it into a display node, a text label, or a downstream save so the graph tells you what's playing where. It's the difference between a workflow that documents itself and one that requires a memory of what you dragged in last week.

    Everything it inherits

    The mechanics don't change from the basic node:

    • force_rate = 0 (default) keeps every clip at its native frame rate and returns video_N without decoding a single frame - the free path. Any other value retimes all clips to that rate (dropping or duplicating frames, real duration preserved) but forces a full decode, so it costs time and memory. Only set it when you genuinely need a uniform rate across mixed-fps clips.
    • audio_N is decoded separately (PyAV, which ships with ComfyUI), so it's available even on the lazy video path. Clips with no decodable audio track yield None on that socket - same as an unplugged OPTIONAL input.
    • output_slots - auto or pinned 1–8 to keep wires in place while swapping files.
    • Row on/off toggle - keeps socket position but outputs None for video_N, audio_N, and filename_N. Safe for OPTIONAL inputs downstream, fatal for REQUIRED ones.
    • count - enabled files actually emitted, not row count.

    Reordering files shifts what each socket carries, and the node flags it in its status line when a wired socket is affected. Check your connections when you see that warning.

    Outputs & install

    Outputs: count (INT), then per file video_N (VIDEO), audio_N (AUDIO), filename_N (STRING) - 25 sockets at full load, which is why auto output slots keep the node small until you actually need it.

    Install via ComfyUI Manager (search "ComfyUI-IntoTheLatent-Utils") or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/Into-The-Latent/ComfyUI-IntoTheLatent-Utils
    

    then restart. No extra dependencies.

    Basic vs Advanced: if your pipeline needs to reference the source filenames at all - for naming output files, for logging, or just to keep the graph legible - take Advanced. If you're only routing clips to a sampler and a save node, the basic loader is leaner and there's nothing wrong with it.

    CategoryInto The Latent/video

    Inputs (3)

    NameTypeDefaultDescription
    files_jsonSTRING[]Authoritative file list as JSON. Hidden in the UI and kept in sync by the front-end — drop files onto the node instead of editing this.
    force_rateFLOAT00–2400 = off — every clip keeps its own frame rate, and video_N is returned lazily without decoding a single frame (free). Any other value drops or duplicates frames so all clips run at that rate while keeping their real running time (a 10s clip stays 10s). Forcing a rate has to decode the clip's frames to do this, so it costs time and memory — 0 stays free.
    output_slotsCOMBOautoHow many output sockets to show. 'auto' follows the number of loaded files, so sockets appear and disappear as you edit the list. Pick a fixed number to keep the sockets (and your wires) in place while you swap files around — extra sockets with no file behind them output nothing, so don't wire more than you load.

    Outputs (25)

    NameTypeDescription
    countINT
    video_1VIDEO
    audio_1AUDIO
    filename_1STRING
    video_2VIDEO
    audio_2AUDIO
    filename_2STRING
    video_3VIDEO
    audio_3AUDIO
    filename_3STRING
    video_4VIDEO
    audio_4AUDIO
    filename_4STRING
    video_5VIDEO
    audio_5AUDIO
    filename_5STRING
    video_6VIDEO
    audio_6AUDIO
    filename_6STRING
    video_7VIDEO
    audio_7AUDIO
    filename_7STRING
    video_8VIDEO
    audio_8AUDIO
    filename_8STRING