Nodes/ComfyUI-ShellAgent-Plugin/Video Combine Encrypt (ShellAgent Plugin)
ComfyUI Node

Video Combine Encrypt (ShellAgent Plugin)

Turn an image sequence into a real MP4 (then lock it)

By myshell-ai·Created 2 years ago·Updated 4 months ago· 46
Video Combine Encrypt (ShellAgent Plugin)
  • images
  • audio
  • vae
  • Filenames
frame_rate24
loop_count0
filename_prefixShellAgent_Encrypted
format
quality85
pingpongfalse
encrypttrue
advanced_presetmedium
advanced_tunenone
advanced_crf20
advanced_pix_fmtyuv420p
advanced_colorspacebt709
advanced_color_rangepc
advanced_x264_params
manual_videocodeclibx264
manual_audio_codecaac

Video Combine Encrypt is the pack's heavyweight: it stitches a batch of IMAGE tensors into an actual video file - H.264 MP4, H.265, VP9 WebM, MOV, AVI, even GIF or WebP animation - using ffmpeg under the hood, and it can mux in audio and even decode a latent with a VAE for you. It's basically VHS Video Combine reimagined with a much friendlier format menu and a security twist: by default it XOR-encrypts the output file so it can't be played directly, which is the whole point when you're shipping a result to a ShellAgent app rather than watching it yourself.

This is the one node in the pack where the README is a small book in Chinese, and it's worth skimming - the format compatibility table is genuinely useful.

How it works

Feed it an images batch (any image-sequence source - AnimateDiff, video models, frame generation), pick a format, and it shells out to ffmpeg to build the file. The key decision is format:

  • video/h264-mp4 - the default pick and the README's loud recommendation. Plays everywhere including Mac and iOS.
  • video/h265-mp4 - better compression for 4K, slightly worse compatibility.
  • video/vp9-webm - web/streaming-friendly.
  • video/mov, video/avi - legacy/QuickTime territory.
  • image/gif and image/webp - animated images instead of video (loop with loop_count, and pingpong reverses the frames for a seamless loop).
  • video/h264-advanced and video/ffmpeg-manual - the expert modes that unlock advanced_preset, advanced_crf, advanced_pix_fmt, advanced_tune, colorspace, and raw x264 params.

The quality slider (1–100, default 85) maps to ffmpeg quality settings for the simple formats. Connect the optional audio input and it muxes it in, picking a sensible codec. Connect vae and it auto-decodes a latent before encoding - you can skip the separate VAE Decode node.

The gotcha that burns people

encrypt defaults to on. Your shiny MP4 will be XOR-scrambled with the hardcoded key ShellAgentSecretKey2024!, unplayable in any player, un-previewable in ComfyUI. If you just wanted a normal video, flip it off. If you're building the ShellAgent pipeline, leave it on - the app decrypts on its end. Same key is used across the pack's save/load nodes, so files are round-trippable.

Second gotcha: Mac black-screen videos. The advanced_pix_fmt default is yuv420p (plays everywhere), but if you pick yuv444p or yuv444p10le for color fidelity, Mac/iOS players will show black. The README's advice: keep yuv420p unless you're doing professional post-production on Windows/Linux and will convert before publishing.

The output is VHS_FILENAMES - the exact type VHS's Save Video expects, so you can chain this into the pack's Save Video - VHS node to register the file for the app.

Installing it

Same single pack:

cd ComfyUI/custom_nodes
git clone https://github.com/myshell-ai/ComfyUI-ShellAgent-Plugin

restart, or use ComfyUI Manager (search ComfyUI-ShellAgent-Plugin). Video output needs ffmpeg; the pack installs imageio-ffmpeg as a fallback binary, but if you get an "ffmpeg not found" error, install ffmpeg system-wide (sudo apt install ffmpeg, or the Windows build from ffmpeg.org).

Common issues

  • "ffmpeg is required for video outputs and could not be found." Install ffmpeg or make sure imageio-ffmpeg survived the install.
  • Black video on Mac/iOS. You used yuv444p (or high444 format). Re-encode with video/h264-mp4 / yuv420p.
  • File won't play anywhere. encrypt is on - that's expected, decrypt on the receiving end.
  • Video is missing audio. The audio input is optional; if nothing's connected there's nothing to mux.
Categoryshellagent

Inputs (19)

NameTypeDefaultDescription
imagesIMAGE
frame_rateFLOAT241–120
loop_countINT00–100循环次数。0 = GIF/WebP无限循环
filename_prefixSTRINGShellAgent_Encrypted
formatCOMBO10 options: image/gif, image/webp, video/h264-mp4, video/h265-mp4, video/vp9-webm, video/avi, +4
qualityINT851–100质量等级 (越高质量越好,文件越大)
pingpongBOOLEANfalse反转并追加帧以实现无缝循环
encryptBOOLEANtrue如果启用,输出文件将被加密,无法直接查看
audiooptAUDIO可选音频,与视频混流
vaeoptVAE可选VAE,用于解码latent输入
advanced_presetoptCOMBOmedium编码速度预设 (越慢质量越好)
advanced_tuneoptCOMBOnone编码优化类型
advanced_crfoptINT200–51质量控制 (0=无损, 20=推荐, 51=最差)
advanced_pix_fmtoptCOMBOyuv420p像素格式 (yuv420p=Mac兼容, yuv444p=高质量但Mac不兼容)
advanced_colorspaceoptCOMBObt709色彩空间元数据
advanced_color_rangeoptCOMBOpc色彩范围 (tv=16-235, pc=0-255全范围)
advanced_x264_paramsoptSTRING高级x264参数,例如: aq-mode=3:aq-strength=0.8
manual_videocodecoptSTRINGlibx264手动模式: 视频编解码器
manual_audio_codecoptSTRINGaac手动模式: 音频编解码器

Outputs (1)

NameTypeDescription
FilenamesVHS_FILENAMES