APZmedia VFX Filename
MYSHOW_SQ010_SH0050_beauty_v003
- filename
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.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| show | STRING | — | |
| toggle_show | COMBO | 2 options: Include, Exclude | |
| sequence | STRING | — | |
| toggle_sequence | COMBO | 2 options: Include, Exclude | |
| shot | STRING | — | |
| toggle_shot | COMBO | 2 options: Include, Exclude | |
| pass_name | STRING | — | |
| toggle_pass | COMBO | 2 options: Include, Exclude | |
| version | STRING | — | |
| toggle_version | COMBO | 2 options: Include, Exclude | |
| delimiter | STRING | _ | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| filename | STRING | — |