Nodes/ComfyUI In-N-Out Bucket/Set Video Metadata
ComfyUI Node

Set Video Metadata

Make your rendered clips findable by more than a UUID

By littleowl·Created 3 months ago·Updated 3 months ago· 2
Set Video Metadata
  • manifest
  • manifest
description
tags
source

Your bucket of rendered clips will accumulate fast, and every one of them is a <subfolder>/<uuid> key. After a couple of days you can't tell clip A from clip B without opening each one. Set Video Metadata fixes the findability half of that: it writes a description, tags, and source onto a video asset's sidecar manifest, leaving the encoded video bytes completely alone.

Inputs: manifest (BUCKET_MANIFEST from a video bucket node), plus optional description, tags (comma-separated), and source. Output: the updated manifest, written to <key>.json in the bucket.

How it works

The rule that makes it painless: an empty input means "keep the existing value." Only fill in what you want to change, and you can annotate incrementally - description on the first pass, tags after review, provenance later. The write is purely to the JSON sidecar, so a vp9-webm you generated stays byte-for-byte the same; only the manifest changes.

Because the manifest is the pack's source of truth - the record a database would otherwise provide - this node is how your bucket stays self-describing. The technical fields (fps, frame count, dimensions, has_audio) were written at save time by the Output node and don't change here; you're adding the human layer on top.

When you'd reach for it

Any workflow that needs to remember what a render is. A batch generation job that labels each clip with its prompt or shot name; a render-farm setup where a worker annotates "scene 7, take 2" before the next machine picks it up; a review pass that tags winners and rejects. Combined with Batch Video Metadata reading those tags back out, you can build a filter chain: tag clips on save, then later workflows select only the tagged ones.

Install

Install the pack once - 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, under buckets/video. Deps: boto3 + python-dotenv; PyAV ships with ComfyUI.

Gotchas

Empty-keeps means you can't clear a field by emptying it - supply a replacement. And since this is a metadata-only node, a write that "succeeds" but produces nothing visible usually points at the bucket: if the manifest's key is empty or the endpoint is down, there's nothing to attach the JSON to. Check S3_ENDPOINT_URL and credentials before assuming the node is broken - it's the same connectivity checklist as every other node in the pack.

Categorybuckets/video

Inputs (4)

NameTypeDefaultDescription
manifestBUCKET_MANIFESTManifest from a video bucket node.
descriptionoptSTRINGEmpty = keep existing.
tagsoptSTRINGComma-separated tags. Empty = keep existing.
sourceoptSTRINGEmpty = keep existing.

Outputs (1)

NameTypeDescription
manifestBUCKET_MANIFESTThe updated manifest that was written.