Generate Output Path
Generate Output Path — let the node name your file so you don't overwrite anything
- output_path
Somebody has to decide what the converted file is called, and if you let FFmpeg decide you'll be digging out.mp4 out from under an older, equally unhelpful out.mp4. Generate Output Path is the small utility node in the Framerate Converter pack (Trope Tools, TropeMedia) that names the output for you in a sane, predictable way - and refuses to overwrite anything while doing it.
It's part of the "Configure" group and it's gloriously boring: path manipulation only, no FFmpeg, no math worth mentioning. It takes an input path and a target fps and produces the output_path string that Build Command and Run FFmpeg use.
How it names things
Given input_path and target_fps, it produces <stem>_<fps>fps<ext>:
/videos/my_clip.mp4+ 25 →/videos/my_clip_25fps.mp4/videos/my_clip.mp4+ 23.976 →/videos/my_clip_23.976fps.mp4
It formats the fps number cleanly - integer fps stay integer, fractional fps keep only the digits that matter. And if that name already exists, it appends _1, _2, and so on until it finds a free slot. No silent overwrites, no clobbered originals. That collision handling is the sort of thing that sounds obvious and then quietly saves you from re-running a workflow and nuking your only good output.
The output_dir input is optional. Leave it empty and the file lands next to the source; set it and the node builds the path under your chosen directory. Either way you get a single output_path string out.
Why it exists separately
Like the other granular nodes, this exists so you can build a custom pipeline. The one-shot Convert Framerate node calls it internally and writes into ComfyUI's input/ folder, which keeps things sandbox-safe. If you're hand-rolling a chain - Probe → Calc → Build → Run - you'll want it there too, both to control where files land and to keep the _25fps naming convention consistent across a batch of videos.
Install
Same as the rest of the pack: ComfyUI Manager → Trope Tools - Framerate Converter, or git clone https://github.com/LaserDog80/ComfyUI-FramerateConverter into custom_nodes/ and restart. No pip dependencies, no system binaries - pure os.path work.
If you're only converting one video through the flagship node, this one never shows its face, and that's fine. It earns its keep in batch workflows and in any graph where you care that filenames actually describe their contents. Naming isn't sexy, but "which file is the 30 fps version" stops being a question when the answer is in the filename.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| input_path | STRING | — | |
| target_fps | FLOAT | 25.0001–240 | — |
| output_diropt | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| output_path | STRING | — |