Nodes/ComfyUI ALICE Lab Audio Tools/Load Media Range (Upload)
ComfyUI Node

Load Media Range (Upload)

Cut a clip by waveform, not by guessing timestamps

By alice-lab-dev·Created about a month ago·Updated 10 days ago· 2
Load Media Range (Upload)
    • audio
    • start_seconds
    • end_seconds
    • duration_seconds
    • video
    media
    start_seconds0.000
    end_seconds10.000

    Every video workflow starts with the same chore: "I need the 12 seconds of this clip starting at 3.4 seconds." Most loaders make you type a start and end time and hope you got it right, then render the whole thing to find out you didn't. Load Media Range (Upload) shows you the waveform up front and lets you drag an A-B range directly on it. You see where the beat hits before you commit.

    It's one of the media-loading nodes in ComfyUI ALICE Lab Audio Tools - a brand-new alpha pack (Apache 2.0, no pip deps, bilingual EN/JA README) with no community write-up to speak of yet. This is the "upload a file" flavor of the range picker; its sibling Load Media Range (Path) reads straight from disk, and Media Range (Input) selects from an upstream AUDIO/VIDEO already in the graph. The trio covers every way a clip enters a workflow.

    How it works

    The node lists every supported media file sitting in ComfyUI/input (mp4, mov, mkv, webm, avi, wav, mp3, m4a, ogg, flac, aac, and more - the full extension list is in the README). Pick one, and the node probes it with ffprobe for the duration, then extracts your selection: audio comes out as 44.1 kHz stereo via ffmpeg, and when the source has a video stream you also get a trimmed VIDEO object through ComfyUI's current video API. The selection itself lives in two floats, start_seconds and end_seconds (millisecond steps), which the interactive waveform UI writes for you.

    The controls are the point: drag A or B to move a boundary, click the waveform to seek, use A−/A+/B−/B+ for 10 ms nudges, left-drag inside the selection to slide it, mouse-wheel zoom, right-drag pan, and play or loop the selection. When you zoom in, the node requests a finer signed min/max waveform for the visible range, so the detail is real, not stretched pixels.

    Inputs and outputs

    Inputs: media (the file picker), start_seconds, end_seconds. Outputs, in order:

    • audio - the selected range as 44.1 kHz stereo AUDIO.
    • start_seconds / end_seconds / duration_seconds - the actual selected range, so downstream nodes can read the true trim.
    • video - the trimmed VIDEO when the source has video; otherwise no video value.

    That last pairing is the workflow trick: wire audio into your processing (or the Audio Mixer) and video straight into Replace Video Audio's video input, then the processed audio into its audio input. Original picture, freshly processed soundtrack, same trim.

    The gotchas

    The upload limit. Under ComfyUI's default config you can't upload more than 100 MB through this node - for bigger files use the Path variant or raise the upload-size setting. Only files already inside ComfyUI/input show up in the list, so drop your media there first (or symlink it). And remember the audio output is always 44.1 kHz stereo, which is fine for most pipelines but worth knowing if you needed the original sample rate - the Media Range (Input) node preserves format, this one normalizes.

    Install

    # ComfyUI Manager → search "ComfyUI ALICE Lab Audio Tools" → Install → restart
    # or:
    cd ComfyUI/custom_nodes
    git clone https://github.com/alice-lab-dev/ComfyUI-ALICE-Lab-Audio-Tools
    # restart, then Add Node → ALICE_Lab → Media
    

    Requires ffmpeg and ffprobe on the PATH of the process running ComfyUI (macOS checks /opt/homebrew/bin and /usr/local/bin automatically) and a recent ComfyUI with the AUDIO/VIDEO types. No model downloads, no Python dependencies.

    CategoryALICE_Lab/Media

    Inputs (3)

    NameTypeDefaultDescription
    mediaCOMBO1 options:
    start_secondsFLOAT0.0000–86400
    end_secondsFLOAT10.0000.001–86400

    Outputs (5)

    NameTypeDescription
    audioAUDIO
    start_secondsFLOAT
    end_secondsFLOAT
    duration_secondsFLOAT
    videoVIDEO