Quality Metrics
Did the re-encode actually hurt?
- metrics_report
- psnr
- ssim
Every re-encode loses something. The question is whether it loses enough to matter, and eyeballing a 10-second clip at 200% zoom is a terrible way to answer that. Quality Metrics is the objective-measurement node in the Framerate Converter pack (Trope Tools, TropeMedia): it compares your output against the reference file and produces PSNR and SSIM numbers, with VMAF as an option. It turns "looks fine to me" into a score you can actually compare.
It's the most technical node in the pack and the one people tend to discover last - usually after someone asks "is your encode actually better, or just different?"
What you need
Two required string inputs:
- output_path - the converted file.
- reference_path - the original.
Plus an optional include_vmaf boolean (default off). The critical thing to understand: PSNR and SSIM are pixel comparisons, which only mean anything when both videos have the same resolution, framerate, and roughly the same frames. If you converted 24→25 by speed change, the frames don't line up 1:1 and the numbers will be worse than they deserve - this node shines for checking a re-encode of an unchanged stream, or a frame-drop conversion where the frame grid survives.
The outputs
- metrics_report (STRING) - a formatted report with human ratings.
- psnr (FLOAT) and ssim (FLOAT) - the raw numbers, wire them anywhere.
The ratings are sensible industry heuristics: PSNR ≥ 40 dB is "excellent," 30–40 "good," 20–30 "acceptable," below that poor. SSIM ≥ 0.98 excellent, 0.95–0.98 good, 0.90–0.95 acceptable. VMAF (the modern favorite, if your FFmpeg build includes libvmaf) rates ≥ 93 excellent, 80–93 good.
The VMAF caveat deserves honesty: not every FFmpeg build ships libvmaf, and when it's missing the node reports VMAF: N/A (requires libvmaf) rather than failing the whole check. PSNR and SSIM always work - they're built into stock FFmpeg.
Install
Pack install: ComfyUI Manager → Trope Tools - Framerate Converter, or git clone https://github.com/LaserDog80/ComfyUI-FramerateConverter into custom_nodes/ and restart. Needs the system ffmpeg binary; VMAF additionally needs an FFmpeg compiled with --enable-libvmaf.
If you're just converting clips for a client, you probably don't need this - a crf of 18 is already "looks identical to source." But when someone hands you a workflow with a suspicious crf: 35 and a straight face, a 40-second Quality Metrics run settles the argument with numbers instead of opinions.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| output_path | STRING | — | |
| reference_path | STRING | — | |
| include_vmafopt | BOOLEAN | false | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| metrics_report | STRING | — |
| psnr | FLOAT | — |
| ssim | FLOAT | — |