Input Video Bucket
Input Video Bucket
- video
- manifest
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.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| key | STRING | The key representing the video asset. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | Video loaded from the asset bucket. |
| manifest | BUCKET_MANIFEST | Asset metadata. Derived from the video if no manifest is stored. |