ComfyUI Node

Load VideoX Adv

The video loader that only decodes what you actually wire

By haroonaslam·Created 4 months ago·Updated a day ago· 10
Load VideoX Adv
    • video
    • video_frames
    • audio
    • width
    • height
    video
    workflowx_state{"version":1,"mode":"off","max_mp":1.0,"longest_side":1024,"scale_factor":1.0,"fit_w":1024,"fit_h":1024,"cover_w":1024,"cover_h":1024,"cover_action":"fill","crop_anchor":"center","ratio_preset":"1:1","ratio_w":1.0,"ratio_h":1.0,"pad_color":"#808080","pad_top":0,"pad_bottom":0,"pad_left":0,"pad_right":0,"output_snap":0,"resample":"auto","allow_upscale":false,"crop_enabled":false,"crop_snap":0,"crop_rect":null,"trim_start":0.0,"trim_end":0.0,"requested_outputs":[]}
    seconds

    Load VideoX Adv is the front door of WorkflowX's video lane, and the thing that separates it from every "Load Video" node you've dragged in before is laziness. It does not decode your video. It looks at which outputs you actually connected, then decodes the absolute minimum to satisfy them - and if you only asked for the dimensions, it doesn't touch a single frame. That's not a small optimization when you're feeding a 4K clip into a video-to-video pipeline and just need it trimmed to 512×896.

    It's the video sibling of the pack's Load ImageX Adv, and it exists because most real video work happens before the sampler: trim the boring ten seconds off, crop out the watermark, resize to the model's native resolution, maybe add padding to hit an aspect ratio. Doing that in ffmpeg means leaving ComfyUI, re-encoding, and coming back. This node does it visually, in the graph, and hands you a native ComfyUI VIDEO you can wire straight into Wan, LTX, or whatever vid2vid stack you run.

    How it actually works

    Under the hood it uses ComfyUI's native lazy VIDEO type and its comfy_api.latest input API, probing the file with PyAV (ComfyUI's bundled av, so no extra install). The trick is a transient connection mask checked against the dynamic prompt at queue time:

    • Width/height only → a metadata probe, no decode at all.
    • Video output with a pure trim and no spatial transform → a lazy VideoFromFile trim, nothing materialized.
    • Frames or any crop/resize/upscale → frames decoded exactly once, and that same batch is reused to rebuild the native video.
    • Audio decodes only when the audio output is wired.

    Phone-video rotation is folded into the metadata and decode, so your crop rectangle actually matches what you're looking at. And it plays nicely with ComfyUI's cache: IS_CHANGED keys off the file's mtime and size, so editing the source invalidates the node without a manual refresh.

    The inputs and outputs that matter

    You set video (the file combo - "Video in ComfyUI's input folder") and then mostly use the UI. workflowx_state is the versioned JSON that stores your trim, crop, resize, snap, and padding choices; it's UI-managed and travels with the workflow file, so don't hand-edit it. The one input worth knowing: seconds (optional FLOAT, "Optional fixed trim duration in seconds"). Leave it unconnected and your in/out trim handles move independently; connect it and the handles slide the range while locking the duration - great when you want a fixed 4-second clip regardless of where you drag.

    The five outputs, in order:

    • video (VIDEO) - trimmed, cropped, resized native video
    • video_frames (IMAGE) - the same frames as a batch, for anything that wants images
    • audio (AUDIO) - trimmed soundtrack, or None for silent sources
    • width / height (INT) - final dimensions

    Media outputs come back None when you leave them unwired. That's the lazy design, not a bug - unplug a socket and the node stops paying for it.

    The node face gives you the full Load ImageX Adv geometry kit (crop overlay right on ComfyUI's native player, anchors, resampling, upscale, padding) plus the Open Timeline floating player: a thumbnail filmstrip, big in/out handles, a separate playhead scrubber, and editable selection seconds.

    Installing it

    Same steps as the rest of the WorkflowX pack. In ComfyUI Manager, search "WorkflowX" and install WorkflowX-Configurator, or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/haroonaslam/WorkflowX-Configurator
    

    Then restart ComfyUI and hard-refresh the browser. Good news: this pack declares zero Python dependencies (dependencies = []), so there's no pip step and no model files to fetch - the video nodes ride entirely on what ComfyUI already ships. The one real requirement is a reasonably recent ComfyUI, because the native lazy VIDEO API is new.

    Where people get burned

    The most common failure isn't the node - it's ComfyUI being old. If the node is missing after install, update ComfyUI, restart, and confirm WorkflowX_LoadVideoXAdv shows up in /object_info. If it's there but a UI button is missing, the frontend is stale: hard-refresh. And if you're troubleshooting a slow load, remember this node only decodes what's connected - wire width/height into your KSampler sizing instead of dragging the video socket everywhere, and you'll see what "metadata-only" actually buys you.

    This is a young, hobby-maintained pack from a single author, so expect rough edges and fast iteration rather than a huge support community. But for visual, non-destructive video prep inside ComfyUI, it's the one I'd reach for.

    CategoryWorkflowX/Video

    Inputs (3)

    NameTypeDefaultDescription
    videoCOMBOVideo in ComfyUI's input folder.
    workflowx_stateSTRING{"version":1,"mode":"off","max_mp":1.0,"longest_side":1024,"scale_factor":1.0,"fit_w":1024,"fit_h":1024,"cover_w":1024,"cover_h":1024,"cover_action":"fill","crop_anchor":"center","ratio_preset":"1:1","ratio_w":1.0,"ratio_h":1.0,"pad_color":"#808080","pad_top":0,"pad_bottom":0,"pad_left":0,"pad_right":0,"output_snap":0,"resample":"auto","allow_upscale":false,"crop_enabled":false,"crop_snap":0,"crop_rect":null,"trim_start":0.0,"trim_end":0.0,"requested_outputs":[]}
    secondsoptFLOATOptional fixed trim duration in seconds.

    Outputs (5)

    NameTypeDescription
    videoVIDEOTrimmed and spatially processed native ComfyUI video.
    video_framesIMAGETrimmed and spatially processed frame batch.
    audioAUDIOTrimmed source soundtrack, or None when absent.
    widthINTFinal output width in pixels.
    heightINTFinal output height in pixels.