Nodes/ComfyUI In-N-Out Bucket/Input Video Bucket
ComfyUI Node

Input Video Bucket

Input Video Bucket

By littleowl·Created 3 months ago·Updated 3 months ago· 2
Input Video Bucket
    • video
    • manifest
    key

    Video is the heaviest asset ComfyUI handles, which makes it the best argument for the whole "pass a key, not the bytes" idea. A single generated clip can be tens of megabytes; embedding that in a workflow JSON or copying it to every machine in a render setup is miserable. Input Video Bucket solves it the same way its image and audio siblings do: type a key, get a native VIDEO tensor out of the bucket.

    One key in, two outputs: video (the VIDEO type that ComfyUI's own video nodes understand) and manifest (the BUCKET_MANIFEST metadata sidecar, derived if none is stored). This is the "basic tier" video input - one key maps to one video file, mirroring the native LoadVideo node. If you need frame-level control instead - skip leading frames, cap the count, keep every Nth - that's Load Video From Bucket (Advanced), which is a different node entirely.

    How it works

    Mechanically simple: download the object for the key into the temp dir, wrap it as a VIDEO, hand you the manifest. The two conveniences that make it feel like a first-class citizen are the same as the other inputs:

    • Live preview. Type or paste a key and the video previews instantly, no workflow run, via a route that downloads from S3 on demand and caches in ComfyUI's temp dir.
    • Upload from your computer. Every input node has a "choose file to upload" button, so you can push a local mp4/webm into the bucket, get the key set, and preview - the whole round trip stays inside the node.

    The input that matters

    Just key (STRING), the <subfolder>/<uuid> that identifies the video object. There's no format picker and no options - by design. In an API workflow the key is what your caller passes, and this node just resolves it. For interactive use where you want to see what's in the bucket, Load Video From Bucket swaps the text field for a dropdown of existing keys.

    Install

    ComfyUI Manager (search In-N-Out Bucket) or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/littleowl/ComfyUI_In-N-Out_Bucket.git
    pip install -r ComfyUI_In-N-Out_Bucket/requirements.txt
    cp ComfyUI_In-N-Out_Bucket/.env.example ComfyUI_In-N-Out_Bucket/.env
    

    Restart, find it under buckets/video. Only boto3 and python-dotenv are installed; PyAV already ships with ComfyUI. S3_VIDEO_BUCKET (default video) is auto-created on first use.

    Where people get burned

    The bucket's unreachable - that's the number one issue, and you'll see it as a connection error rather than an empty output, because the node raises S3Unavailable instead of pretending. Check endpoint (S3_ENDPOINT_URL blank means AWS), credentials (explicit keys, or leave blank for an IAM role), and addressing style (path for RustFS/MinIO, auto for AWS). Second gotcha is subtler: this node expects a stored video object under the key. If your workflow only produced a batch of frames via the Advanced output, the key still resolves to a single encoded file, so that's fine - just make sure you're loading the key that an Output node actually returned, not a guessed one.

    Categorybuckets/video

    Inputs (1)

    NameTypeDefaultDescription
    keySTRINGThe key representing the video asset.

    Outputs (2)

    NameTypeDescription
    videoVIDEOVideo loaded from the asset bucket.
    manifestBUCKET_MANIFESTAsset metadata. Derived from the video if no manifest is stored.