Nodes/GENKAI Nodes/PromptSync + Save (genkai)
ComfyUI Node

PromptSync + Save (genkai)

The reviewer that also writes the file

By GENKAIx·Created about a month ago·Updated 21 days ago· 9
PromptSync + Save (genkai)
  • images
  • audio
  • meta_batch
  • vae
  • video
  • filenames
  • Filenames
◄prompt►
◄frame_rate24.00►
◄loop_count0►
◄filename_prefixGENKAI/%date:yyyy-MM-dd%/%date:hhmmss%►
◄formatvideo/h264-mp4►
◄pix_fmtyuv420p►
◄crf19►
◄save_metadatatrue►
◄trim_to_audiofalse►
◄pingpongfalse►
◄save_outputtrue►

PromptSync + Save is the viewer and the encoder in one node. You get the same video-plus-timed-prompt review panel as plain PromptSync, except it's also the thing that writes the MP4 - one terminal node instead of a viewer plus a VHS Video Combine plus a wire between them.

If you're generating timed clips and iterating on the prompt, this is the node you actually want at the end of the graph. The alternative is reviewing in one node and saving in another, then being confused about which file you're looking at.

How it works

Under the hood it looks up VHS_VideoCombine and delegates encoding to it - this is genuinely VHS, not a reimplementation. If VideoHelperSuite isn't installed you get Install or enable ComfyUI-VideoHelperSuite, then restart ComfyUI to use + Save.

One final MP4 comes out. No metadata PNG sitting next to it, no silent intermediate file when you supply audio - a deliberate cleanup over stock VHS, and a nice one. Only the last save is kept; older files aren't deleted, so a long session still fills your output folder.

save_metadata (on by default) embeds the available workflow, generation parameters and the original timed prompt, stored as genkai_timed_prompt. Note the same trade-off that applies to every ComfyUI save node: embedding the graph is disclosure. Your prompt, your seed, your node graph and anything in the workflow travels with the file to whoever receives it. If that's not what you want, turn it off here or strip the metadata before posting.

The preview side is the full PromptSync viewer - timed-prompt highlighting, four reading styles plus an Obsidian dark theme, auto-scroll, waveform - plus run stats: playback position, resolution, time from ComfyUI's execution start until the video reaches this node, and a seconds-per-video-second ratio. Read that number with care. It includes the video save, excludes queue waiting and anything downstream, and measures the current run, so cached work makes it look flattering. It's a review aid, not a benchmark, and it needs the browser attached during the run to capture the start event.

The inputs that matter

prompt is required and forceInput, so it must be wired from a text node - you can't type into it.

Then exactly one source: images (accepts IMAGE,LATENT - add vae if you're feeding latents), video, or filenames from a VHS combine. Connect two and you get Connect exactly one source: images, video or filenames.

audio is worth knowing about because it overrides: attach it to an image batch to add sound, or attach it to a video source to replace that video's audio. No source audio and no audio input means a silent file.

The save settings are the ones you'd expect from VHS: frame_rate (match the source video's original FPS or you change its speed), loop_count, filename_prefix (default GENKAI/%date:yyyy-MM-dd%/%date:hhmmss%, relative to output or temp), format (H.264 or H.265 MP4 - no AV1), pix_fmt (yuv420p or yuv420p10le), crf (19 by default; lower is better and bigger), trim_to_audio, pingpong, save_output.

Filenames is the one output, type VHS_FILENAMES, carrying only the final file's path. That's the hook that makes this node composable - it's exactly what the plain PromptSync viewer's filenames input wants, and what other VHS-compatible nodes expect.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/GENKAIx/Genkai-ComfyUI-Nodes
git clone https://github.com/Kosinkadink/ComfyUI-VideoHelperSuite

Manager search Genkai-ComfyUI-Nodes, plus VideoHelperSuite and its own dependencies. Restart, Ctrl+F5. Node lives under GENKAI → Video. FFmpeg has to support the codec you pick, and H.264 with yuv420p is the combination that plays everywhere; H.265 and 10-bit are for when you know your target handles them.

Common issues

pingpong or loop_count broke your timestamps. They change the saved duration and the prompt timestamps are not rewritten - they still refer to absolute time in the saved file. Your markers will point at the wrong frames. Also note audio isn't reversed in pingpong mode.

Batch Manager won't auto-requeue. The meta_batch input works on the images/latents path with loop_count=0 and pingpong=false, but automatic requeue needs VHS to count this node as an output node: in recent VHS, requeue_workflow in videohelpersuite/utils.py only tallies VHS_VideoCombine. Add GenkaiVideoPromptViewerSave to that list yourself - the pack deliberately doesn't patch VHS. Re-check after every VHS update.

Save error / file not written. Check VideoHelperSuite is loaded, that your FFmpeg has the codec, and that filename_prefix stays inside output or temp.

Saved to temp and it vanished. save_output off means temp, and temp gets cleared. That's fine for iterating, wrong for keepers.

H.264 but it won't play. Chrome-class browsers want H.264 + yuv420p. Try that pair before assuming the file is broken.

CategoryGENKAI/Video

Inputs (17)

NameTypeDefaultDescription
promptSTRING—
frame_rateFLOAT24.001–240Output FPS. For existing videos, use their original FPS to preserve timing.
loop_countINT00–100—
filename_prefixSTRINGGENKAI/%date:yyyy-MM-dd%/%date:hhmmss%Path relative to ComfyUI output (or temp when save_output is false). Date tokens work as in VHS.
formatCOMBOvideo/h264-mp42 options: video/h264-mp4, video/h265-mp4
pix_fmtCOMBOyuv420p2 options: yuv420p, yuv420p10le
crfINT190–51Lower values mean higher quality and larger files.
save_metadataBOOLEANtrueEmbed the workflow, generation parameters and timed prompt in the saved video.
trim_to_audioBOOLEANfalse—
pingpongBOOLEANfalse—
save_outputBOOLEANtrue—
imagesoptIMAGE,LATENT—
audiooptAUDIO—
meta_batchoptVHS_BatchManager—
vaeoptVAE—
videooptVIDEO—
filenamesoptVHS_FILENAMES—

Outputs (1)

NameTypeDescription
FilenamesVHS_FILENAMES—