Nodes/DJZ-Nodes/Zenaki Video Prompt V1
ComfyUI Node

Zenaki Video Prompt V1

Video, audio, and the matching prompt — in one grab

By MushroomFleet·Created 2 years ago·Updated 5 months ago· 80
Zenaki Video Prompt V1
  • meta_batch
  • vae
  • frames
  • frame_count
  • audio
  • video_info
  • filename_text
  • prompt
folder
mode
seed0
index0
skip_frames0
max_frames0
memory_limit_mb0
force_rate0
labelScene Video Batch
pattern*
default_prompt

The most annoying part of an image-to-video or re-encode pipeline isn't the model - it's keeping the prompt in sync with the clip you're sampling. You load a video, you type the right description, you change the video, and the prompt is now wrong. Zenaki Video Prompt V1 fixes that by loading a video and its matching text prompt in one shot, so the clip decides what gets encoded. It's one of the most self-contained nodes in DJZ-Nodes for exactly that reason.

First, the naming. It's spelled Zenaki - no second 'k' - while its sibling is Zenkai Scene Video V1. That typo is baked into the class name, and it means a Manager search for "zenkai" still finds it, but you'll confuse yourself if you're copy-pasting from a workflow. Worth knowing before you go hunting for it.

What it actually does

This is a video loader with a prompt department attached. You keep source clips organized in folders under custom_nodes/DJZ-Nodes/scenevideo/, drop matching prompt files in videoprompts/, and the node hands you the frames, the audio, the file info, and the correct prompt for whichever clip you landed on.

The prompt-matching logic is the interesting part. It looks for videoprompts/<your-video-folder>/<video-name>.txt, tolerating folders that differ only by dashes vs. underscores, then falls back to a file in the videoprompts root, then to your default_prompt input. That means you can keep a folder of scene videos and a folder of their descriptions, and the right one rides along automatically - no hand-editing when you change the seed, the index, or the clip.

Under the hood it's the same machinery as the rest of DJZ's video loaders: OpenCV decodes frames as float tensors, ffmpeg pulls the audio as a lazy dict (it only decodes if something downstream actually reads the AUDIO output, which is a nice touch for VRAM/time), and memory_limit_mb uses psutil to auto-size how many frames fit in RAM instead of dumping the whole clip at once.

Inputs and outputs that matter

  • folder - dropdown of subfolders in scenevideo/. Shows none until you add one.
  • mode - single_video uses index to pick a clip; incremental_video wraps the index across the folder; random uses seed.
  • skip_frames / max_frames - trim the head and cap how much you load. Set max_frames to 0 for everything.
  • default_prompt - used when no matching prompt file exists. Set this, or you'll silently encode empty text.
  • meta_batch - optional VHS_BatchManager input for frame-by-frame batching with Video Helper Suite.

Outputs: frames (IMAGE) into a VAE encode or straight into video tools, prompt (STRING) into CLIP Text Encode, audio (AUDIO) into VHS audio nodes, video_info (VHS_VIDEOINFO), and filename_text so you can name your output after the source. The optional vae input exists in the schema but the current code doesn't use it - frames come out decoded, so don't wire a VAE expecting latent encoding.

Install

ComfyUI Manager, search DJZ-Nodes. Or:

cd ComfyUI/custom_nodes
git clone https://github.com/MushroomFleet/DJZ-Nodes
cd DJZ-Nodes
pip install -r requirements.txt

Restart ComfyUI. Two real dependencies on top: you need Video Helper Suite installed or the VHS_BatchManager / VHS_VIDEOINFO / AUDIO types won't resolve, and ffmpeg needs to be on your system for audio. The pack's requirements.txt does not list psutil, which this node imports - if the node is missing from your node list, check the console for "Unable to import ZenakiVideoPromptV1" and pip install psutil. The pack's __init__.py silently skips any node whose import fails, so a missing dependency shows up as "node not there," not as a friendly error.

Troubleshooting

The scenevideo and videoprompts folders are created on first run - that's normal. If the folder dropdown only shows none, you haven't added a subfolder yet. If the prompt output comes back empty, there's no matching .txt anywhere, so check your folder naming (dashes vs. underscores) before suspecting the node. And if your clone fails with a 404, that's a known blip - the repo briefly returned 404 for everyone in mid-2025, then came back. Retry, don't rebuild.

CategoryDJZ-Nodes

Inputs (13)

NameTypeDefaultDescription
folderCOMBO1 options: none
modeCOMBO3 options: single_video, incremental_video, random
seedINT00–18446744073709550000
indexINT00–150000
skip_framesINT00–999999
max_framesINT00–999999
memory_limit_mbINT00–128000
force_rateINT00–60
labelSTRINGScene Video Batch
patternSTRING*
default_promptSTRING
meta_batchoptVHS_BatchManager
vaeoptVAE

Outputs (6)

NameTypeDescription
framesIMAGE
frame_countINT
audioAUDIO
video_infoVHS_VIDEOINFO
filename_textSTRING
promptSTRING