Nodes/comfyui-AGSoft/🎬🧹AGSoft Video Strip Metadata
ComfyUI Node

🎬🧹AGSoft Video Strip Metadata

Your exported MP4 is hiding the full generation prompt — strip it without a re-encode

By Art-xmaster·Created 12 months ago·Updated a day ago· 23
🎬🧹AGSoft Video Strip Metadata
    • filepath
    • report
    file_path
    write_modeclean_copy
    subfolder
    filename_prefixclean

    Images aren't the only thing carrying a prompt around. When a video-gen workflow - LTX, MiniMax, Wan, whatever you're running - saves an MP4, the generation data gets stashed in the container's metadata boxes (udta, meta, encoder tags). Someone who knows where to look can pull your prompt, your model, your settings straight out of the file. And unlike images, the usual "just screenshot it" answer doesn't exist for a video.

    🎬🧹AGSoft Video Strip Metadata removes that data from MP4, MOV, WebM, and MKV - without re-encoding. The streams are copied through unchanged, so you keep every frame at full quality. Your render doesn't get touched; a clean copy lands in output/ instead.

    How it works

    Same byte-surgery philosophy as its sibling 🖼️AGSoft Image Strip Metadata, but for container formats. It parses the MP4/MOV atom tree and the MKV/WebM EBML structure in pure Python, drops the metadata boxes and tags, and reassembles the rest 1:1. No ffmpeg, no PyAV, no external tools, no quality loss. That "no re-encode" part is the whole pitch: a re-encode fix would cost you a generation pass worth of detail, and this costs you nothing.

    The inputs

    Only four, and they're identical to the image version:

    • file_path - absolute path to one video or a folder; folders process every supported file inside (MP4/MOV/WebM/MKV).
    • write_mode - clean_copy writes the stripped file; scan_only only reports what metadata each file carries, writes nothing. Do the scan first - it's a two-second dry run and it'll tell you which files even have metadata worth removing.
    • subfolder - optional, auto-created inside output/; a/b nesting works.
    • filename_prefix - clean (default) gives clean_<name>.mp4; empty gives <name>_clean.mp4.

    You get back filepath (the written copy) and report - one line per file showing what was found before, what's left after, and where the clean copy went. Pipe report into a Show Text for a readable log.

    Installing it

    It's in the comfyui-AGSoft pack, same install as every other AGSoft node:

    cd ComfyUI/custom_nodes
    git clone https://github.com/Art-xmaster/comfyui-AGSoft
    

    restart, or search comfyui-AGSoft in ComfyUI Manager. This node needs zero extra dependencies - the pack's declared numpy/opencv/translators aren't involved.

    Where people get burned

    Mainly by expecting it to re-encode: it won't, and that's the feature. Unsupported formats throw a clear error; a folder with no supported videos raises too. The bigger trap is thinking of this as "cleaning up my files" - it's really a release tool. Stripped video won't reveal your pipeline to whoever downloads it, which is exactly what you want before posting public samples, but remember the original (with its metadata) is your only copy of that generation's provenance. Keep both: this node never modifies the source, so it's easy to strip a copy for sharing and keep your master intact.

    CategoryAGSoft/Utils

    Inputs (4)

    NameTypeDefaultDescription
    file_pathSTRINGAbsolute path to a video file or a folder (all supported videos inside). --- Абсолютный путь к видеофайлу или папке (все поддерживаемые видео внутри).
    write_modeCOMBOclean_copyclean_copy = write a clean copy into OUTPUT (original untouched); scan_only = report only, no writes. --- clean_copy = чистая копия в OUTPUT (оригинал не трогается); scan_only = только отчёт, без записи.
    subfolderSTRINGOptional subfolder inside OUTPUT (created automatically; nested 'a/b' allowed). --- Опциональная подпапка внутри OUTPUT (создаётся автоматически; можно 'a/b').
    filename_prefixSTRINGcleanPrefix for the clean copy: '<prefix>_<name><ext>'. Empty -> '<name>_clean<ext>'. --- Префикс чистой копии: '<префикс>_<имя><ext>'. Пусто -> '<имя>_clean<ext>'.

    Outputs (2)

    NameTypeDescription
    filepathSTRING
    reportSTRING