Nodes/xcp_derp-UI/Derp Video Deck
ComfyUI Node

Derp Video Deck

An actual video player on your ComfyUI canvas

By lordwedggieΒ·Created 3 months agoΒ·Updated 6 days agoΒ· 0
Derp Video Deck
  • video

    ComfyUI's default video preview does the job, but that's about all it does. The Derp Video Deck is the "control surface" answer: a full video deck that docks into your workflow, plays back the incoming VIDEO with transport controls, and - the part that actually saves you time - writes the result to disk or dumps its frames to a folder without a second utility node. If you're churning through Wan, Hunyuan, or LTX-Video outputs, this is the node you reach for instead of squinting at a bare preview.

    What it is

    It's an output node (the pack marks it OUTPUT_NODE = True), meaning ComfyUI treats it like Preview Image or Save Image: it always runs, and the engine works backward from it to figure out what to re-execute. Drop it at the end of a video workflow, feed it a VIDEO, and the canvas shows a proper player face: play/pause, scrubbing, a list of videos to flip between, a filename field, and on-face SAVE VIDEO and EXPORT FRAMES buttons. It's also a derp node, so it participates in the pack's wireless-signal system - you can route a video to it without a wire crossing your whole graph.

    How it works

    The Python side is genuinely doing work, which is refreshing next to the pack's pure-virtual utility nodes. preview_video(video) takes the incoming VIDEO, writes it to ComfyUI's temp directory as an .mp4, then best-effort grabs the first frame as a poster thumbnail (drops alpha, saves a PNG next to it). It returns {"ui": {"images": [...], "animated": (True,)}} - the standard ComfyUI mechanism for surfacing an animated preview to the front-end.

    The deck face does the heavy lifting:

    • SAVE VIDEO posts to the pack's /xcp/derp_video_deck/save_current_video route. If the source format already matches your chosen save format it's a straight file copy; otherwise it re-muxes/re-encodes using ComfyUI's own bundled video API (no separate pip dependency to install). The result lands in ComfyUI/output, timestamp-stamped, deduped with a _001 suffix if a file already exists, and it embeds the workflow metadata so the saved video carries its generation settings - the same "workflow included" culture the PNG side has, applied to video.
    • EXPORT FRAMES posts to /xcp/derp_video_deck/export_frames and dumps the current video's frames into a folder - handy when you want stills for a contact sheet or an upscale pass.
    • The face also has a folder selector for where saves go, and auto-save behavior so you don't have to remember to click.

    The input that matters

    There's exactly one input, and it's optional:

    • video (type VIDEO) - wire any node that outputs a VIDEO into it. Leave it unconnected and the deck still works as a file browser/preview panel for videos already sitting in your output folders, which is a legitimately useful mode.

    No outputs. It's a sink, by design.

    Installing it

    Same one-line story as the rest of the pack:

    cd ComfyUI/custom_nodes
    git clone https://github.com/lordwedggie/xcp_derp-UI-Release
    

    Restart, or use ComfyUI Manager β†’ search "xcp_derp-UI-Release". There's no requirements.txt and nothing heavy to download - the transcode path rides on ComfyUI's bundled environment, so install is genuinely frictionless. (One thing the README is not misleading about: no model files, no PyAV dependency to chase.)

    Where people get burned

    • Temp files pile up. Every run writes a fresh .mp4 to ComfyUI's temp directory so the preview can be served - that's normal output-node behavior, but long sessions with video do accumulate temp files. Clean them out when they annoy you.
    • Transcode is slow, copies are instant. If your save format matches the source, SAVE VIDEO is a near-instant copy. Ask it to re-encode to another format and you're waiting on a full transcode - for long videos, that's real time. Pick your save format to match the pipeline and you mostly skip this.
    • The poster is best-effort. If frame extraction fails, you get a deck with no thumbnail - the video still plays, so don't treat a missing poster as a broken node.
    • It always runs. Because it's an output node, everything feeding it re-executes when the deck is in the graph. That's the expected cost of a live preview, not a bug.

    The verdict: for anyone iterating on video, this is the pack's most practical node - a proper player and a save-to-disk button that don't require a stack of helper nodes. The rest of derp-UI is about cosmetics and control surfaces; this one earns its keep on output alone.

    CategoryπŸ”ž derpNodes/ControlDeck

    Inputs (1)

    NameTypeDefaultDescription
    videooptVIDEOβ€”

    Outputs (0)

    No outputs