Nodes/Embeddr ComfyUI Extension/Embeddr Upload Video
ComfyUI Node

Embeddr Upload Video

Get your generated videos into the library, caption and lineage intact

By embeddr-net·Created 9 months ago·Updated 5 months ago· 0
Embeddr Upload Video
  • video
  • parent_ids
  • options
  • artifact_ids
formatmp4
codech264
caption

Upload Video is the output node of the Embeddr pack for anything that isn't a still image. You feed it the VIDEO output of a video generator, it uploads the clip to your Embeddr library, and it hands back the new artifact's ID. That ID is your hook for the future: the clip is now a first-class artifact with lineage, searchable, loadable back into the graph with Load Video whenever you need those frames again.

It's an output node (ComfyUI treats it like a Save node - it always runs and it's where the chain terminates), so you put it at the end of a video workflow the way you'd put Save Video/AnimateDiff-style save nodes anywhere else. The difference is where the file ends up: your self-hosted library rather than just your output folder.

The inputs that matter

  • video - the video to save, in the VIDEO type. The only required input.
  • format / codec - combos: format is mp4/mkv/webm/mov/avi (default mp4), codec is h264/h265/vp9/vp8/prores (default h264). Pick what your downstream playback or your library's conventions want. Default mp4/h264 is the safe, widely-playable combo.
  • caption - a text caption attached to the artifact. Worth filling in - it makes the clip findable via the text search node later.
  • parent_ids - the lineage input, in the custom EMBEDDR_ARTIFACT_ID type. Feed it a Merge IDs output to record what generated this video. This is where the Embeddr "everything knows its parents" promise actually lands for video.
  • options - an Upload Artifact Options object (from the Options node), for storage overrides, tags, and ingest control.

The output is artifact_ids - the uploaded video's ID (the same custom ID type the rest of the pack uses, so it feeds straight back into Load Video or lineage flows).

How it works - and the upload mode trap

The node packages the video (respecting format/codec) and POSTs it to /api/v1/plugins/embeddr-comfyui/upload on your server, along with caption, parent IDs, and the options metadata. The upload happens through your Embeddr backend, which then owns the file.

The trap is in the pack's upload_mode setting, which defaults to require. In require mode, if your Embeddr server is down or unreachable, the upload fails - loudly, with a logged error and a partial result, not a silent skip. The escape hatch: set EMBEDDR_UPLOAD_MODE=best_effort (in the environment or upload_mode in config.json) and the node health-checks the backend first, skipping the upload gracefully if it's down instead of erroring. Choose your mode by how much you trust the server: require for "I must have this saved," best_effort for "save it if you can."

Install & the rest

Pack install: embeddr serve running, pack via ComfyUI Manager or a release into custom_nodes, restart ComfyUI. Only requests beyond the host. The upload is a network operation on your own localhost server, so speed is your disk's, not the cloud's - which is exactly why people self-host this stack in the first place.

CategoryEmbeddr

Inputs (6)

NameTypeDefaultDescription
videoVIDEOThe video to save.
formatCOMBOmp45 options: mp4, mkv, webm, mov, avi
codecCOMBOh2645 options: h264, h265, vp9, vp8, prores
captionoptSTRING
parent_idsoptEMBEDDR_ARTIFACT_IDParent artifact UUIDs
optionsoptEMBEDDR_UPLOADARTIFACT_OPTSUpload Artifact Options

Outputs (1)

NameTypeDescription
artifact_idsEMBEDDR_ARTIFACT_ID