Nodes/APZmedia Naming Tools/APZmedia VFX Filename
ComfyUI Node

APZmedia VFX Filename

MYSHOW_SQ010_SH0050_beauty_v003

By APZmedia·Created 2 years ago·Updated 5 months ago· 8
APZmedia VFX Filename
    • filename
    show
    toggle_show
    sequence
    toggle_sequence
    shot
    toggle_shot
    pass_name
    toggle_pass
    version
    toggle_version
    delimiter_

    If you've ever worked in or near a VFX house, you know the naming convention is non-negotiable: show_sequence_shot_pass_version, uppercase, zero ambiguity, and a filename that tells a production coordinator everything they need at a glance. APZmedia VFX Filename is the node that builds that string for you inside ComfyUI, and it's the node the pack was originally built around - the whole pack was born for VFX pipelines, and it shows in how opinionated the convention is.

    You get five free-text fields - show, sequence, shot, pass_name, version - each with an Include/Exclude dropdown, plus a delimiter (default _). One output: filename. Type MYSHOW, SQ010, SH0050, beauty, v003 and out comes exactly the canonical MYSHOW_SQ010_SH0050_beauty_v003. The mechanism is the same as every naming node in this pack: join the included, non-empty fields with the delimiter, skip the rest. No magic, no auto-padding, no cleanup - and that's deliberate.

    The "no cleanup" part is the honest tradeoff, and the README states it plainly: numbers, version codes, and padding are your responsibility. This node will not turn 3 into SH0050 or 3 into v003; you type the zero-padded values yourself, or drive them from another node (a shot counter from APZmediaCycleInt, a version you bump between runs). What you get in exchange is a node that will never guess wrong about your show's convention, because it has no opinions - only the join.

    The Exclude toggles matter more than they look. In a VFX pipeline you frequently don't know every field yet: you're iterating on beauty passes before shots are assigned, or you're doing a global version pass. Toggle sequence and shot off and the same node produces MYSHOW_beauty_v003 without you restructuring anything. And since it's a plain STRING output, it feeds straight into a Save Image prefix or into APZmediaGenerateFilePath's pass_name slot for the folder side of the same convention.

    Where it sits in the ecosystem: this is the discipline the rest of the pack is built on. It pairs with APZmediaLoadImageWithFilename + StringStripper to read a VFX-style name back out of an input file, and with Clean File Name Node to make sure nothing you typed introduced a character the filesystem will reject. If you only do hobby ComfyUI, this one may feel like overkill - but if you're generating shots that need to slot into an actual production folder structure, it's the difference between a file someone can find and a file someone has to ask about.

    Install

    ComfyUI Manager → search "APZmedia Naming Tools". Or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/APZmedia/ComfyUI-APZmedia-cleanName-from-string
    cd ComfyUI-APZmedia-cleanName-from-string
    pip install -e .
    

    Restart; it's under APZmedia/Naming in the menu. No models, no downloads, unidecode is the pack's only dependency and this node doesn't even use it.

    CategoryAPZmedia/Naming

    Inputs (11)

    NameTypeDefaultDescription
    showSTRING
    toggle_showCOMBO2 options: Include, Exclude
    sequenceSTRING
    toggle_sequenceCOMBO2 options: Include, Exclude
    shotSTRING
    toggle_shotCOMBO2 options: Include, Exclude
    pass_nameSTRING
    toggle_passCOMBO2 options: Include, Exclude
    versionSTRING
    toggle_versionCOMBO2 options: Include, Exclude
    delimiterSTRING_

    Outputs (1)

    NameTypeDescription
    filenameSTRING