CrispLearn › The denoise setting

What the denoise setting does: it swaps the model

Crisp · built in Grand Rapids · published 2026-09-15 · last updated 2026-09-15
Quick answer

In Crisp the denoise value does not run a filter over your frames. It picks which upscaling model handles the job. Below 0.5 at 2× you get 2x-ParimgCompact; at 0.5 and above you get RealESRGAN_General_WDN_x4_v3; below 0.5 at any other scale you get RealESRGAN_General_x4_v3. Because there is no separate denoise pass, there is no "denoise before or after upscaling" decision to make here. That question belongs to other tools.

What the dial actually routes to

Inside the app, presets.resolve_model_for_scale reads the denoise value and the requested scale factor, and returns a model. Three rules cover every case:

Denoise valueScaleModel that runs
below 0.52x-ParimgCompact
0.5 or aboveanyRealESRGAN_General_WDN_x4_v3
below 0.5any otherRealESRGAN_General_x4_v3

The enhance preset carries denoise 0.4. So crisp upscale --preset enhance --scale 2, the most obvious command in the app and the one most people will run first, quietly selects 2x-ParimgCompact. That is a compact super-resolution network. It is not Real-ESRGAN, and naming it that would be false. Only the other two routes are Real-ESRGAN models.

This matters more than a naming quibble, because the difference between those routes is worth several decibels, and the default sits on the losing side of it. The rest of this page is the measurement that establishes that.

The question Crisp cannot be asked

Search for advice on denoising and upscaling and you will find a long argument about order: clean the noise first so the model does not sharpen grain into texture, or upscale first so the denoiser has more pixels to work with. It is a real argument about tools that have a separable denoise filter.

Crisp does not. There is no filter pass to place before or after anything. Turning the dial changes which network reconstructs the frame, and each of those networks handles noise internally as part of reconstructing. If you came here looking for an ordering control, the honest answer is that it does not exist and is not missing. The decision available to you is which model to route to, which is a different decision with a different right answer.

How this was measured

Crisp 1.0.1223, measured 2026-09-15. Three clips whose native resolution we still hold: an archival boxing clip that is nearly monochrome, a colour demo clip, and an Apollo archival clip. Each was halved so that a 2× model lands back on exactly native resolution with no extra resample in the chain. The Apollo clip is 1068×772 native, so it was run at 534×386 for that reason.

Each clip was scored at three noise levels — clean, light and heavy — against the clean original. The scorers are the bundled ffmpeg's psnr and ssim filters plus libvmaf, Netflix's perceptual metric, which is compiled into the same ffmpeg and runs on the machine with no network call. The harness scores 60 frames per clip.

Vacuity control on all three clips: the truth scored against itself returned VMAF 99.62, 98.32 and 98.03. All three passed, which means the instrument can show near-perfection and a low score is therefore a real difference rather than a broken comparison.

One instrument fault is worth recording because it nearly became a published number. The Apollo clip first returned 0.00 in all nine of its cells while its vacuity control passed at 98.03. The cause was a size mismatch: the round trip produced 1280×720 against a 1068×772 truth, ffmpeg errored, and the harness printed that failure as a score of zero. A zero reads as a terrible result. It was a failed measurement. The harness now prints the word rather than a number, and the clip was re-run at the geometry above.

The method bias, stated rather than buried

The low-resolution input was made by lanczos-downscaling the truth. A lanczos upscale therefore partially inverts the exact operation that degraded the file, which is structurally favourable to it and is not how real low-resolution footage comes into existence. Anyone reading a lanczos-versus-model comparison should know that before reading the numbers.

The noise levels are the control for it. Noise is not something the downscale put there and not something a lanczos upscale can undo, so as noise rises the advantage the method hands lanczos falls away. That is also, as it turns out, where the result changes.

A separate control built the degraded case a real clip actually is, crf 40 plus noise, on the photographic source. The ranking did not flip there: lanczos 26.56 dB and VMAF 31.13, 2x-ParimgCompact 24.85 and 17.91, RealESRGAN_General_WDN_x4_v3 25.10 and 27.43. Degradation narrowed the gaps without reversing them on that clip.

The numbers

PSNR in decibels, then VMAF, against the clean truth. Higher is closer to the original on both.

ClipNoise2x-ParimgCompact (default)RealESRGAN_General_WDN_x4_v3lanczos
boxing (near-mono archival)clean33.35 / 75.5936.33 / 96.8340.77 / 98.99
boxinglight33.15 / 70.3036.38 / 95.9237.90 / 98.51
boxingheavy30.18 / 55.5834.24 / 84.8330.84 / 91.82
demo (colour)clean39.37 / 66.4342.35 / 79.0548.01 / 90.86
demolight40.10 / 57.6343.60 / 77.9040.16 / 86.12
demoheavy34.91 / 33.9738.23 / 63.4531.17 / 71.96
apollo (archival)clean32.07 / 52.0332.69 / 65.5446.66 / 90.50
apollolight39.68 / 66.5342.11 / 83.3240.00 / 88.53
apolloheavy35.34 / 53.9037.24 / 74.2731.12 / 77.93

Finding one: the default is the weaker of the two models

RealESRGAN_General_WDN_x4_v3 beats 2x-ParimgCompact in 9 of 9 cells, on both metrics. The margin runs from 0.6 dB to 4.1 dB on PSNR and from 12.6 to 29.5 points on VMAF. Every clip, every noise level, both scorers, one direction.

Since enhance carries denoise 0.4, the default path at 2× is the route that lost every cell. That is an unflattering thing to publish about our own default and it is what the measurement says.

It is not yet a verdict on the default, and this page will not pretend otherwise. Fidelity and apparent sharpness are different properties. A compact network tuned to look crisp on a screen can produce a frame a viewer prefers while scoring below a softer one, and that is a plausible reason for the choice. Settling it needs perceptual crops shown side by side, which have not been done. The question is filed, not answered.

Finding two: the crossover, which is the useful half

On clean sources a plain lanczos resize wins easily. On the Apollo clip it leads the best model route by 14.0 dB. If your footage is already clean and you only want more pixels, no model in this test got you closer to the original than a resize did.

As real noise arrives that reverses on PSNR. At light noise the model route is already ahead on two of the three clips: Apollo 42.11 against lanczos 40.00, and the colour demo 43.60 against 40.16, while boxing still favours lanczos at 37.90 against 36.38. At heavy noise the model leads all three:

The model earns its cost exactly where the source is damaged, which is what it is for. On a clean file it is an expensive way to get further from the original.

One qualification that cuts against us, and it is not a small one: VMAF still favours lanczos in every one of the nine cells. The crossover is a PSNR crossover. The perceptual metric never crosses. The honest summary is that on a clean source a resize is closer to the truth, on a damaged one the model is closer by up to 7.1 dB, and the perceptual scorer prefers the resize throughout.

What these metrics do and do not say

PSNR and SSIM measure agreement with the original file, pixel by pixel and structure by structure. They punish detail that is plausible but different from the original, and plausible-but-different detail is precisely what a generative upscaler produces. It does not recover the eyelash that was thrown away at encode time. It produces an eyelash, and a convincing one can sit several decibels away from the real one. VMAF is the perceptual metric of the three, built to predict what a viewer would report, but it is also scored against the original rather than judging the frame on its own.

So these numbers answer one question: which route lands closest to the surviving original. They do not answer which version you would rather watch, and nothing on this page should be read as a claim that one route looks better than another. That is a judgement to make with your own footage in front of you, at full size, in motion.

What to do with this

If your source is clean and you only need more resolution, a plain high-quality resize is the closest thing to the original in every cell measured, and a model run buys you nothing on fidelity.

If your source is noisy, grainy, or archival, set denoise to 0.5 or above so the job routes to RealESRGAN_General_WDN_x4_v3. That is the route that led on PSNR at heavy noise on all three clips, and it outscored the compact default everywhere including the clean cells.

And do not go hunting for an ordering control. Crisp runs on your Mac, one model per job, and the dial that looks like a filter strength is the model selector.

The denoise dial in detail

Should I denoise before or after upscaling in Crisp?

Neither, because Crisp does not offer that choice. The denoise value selects which upscaling model runs, so there is no separate denoise pass whose position in the chain you could move. The decision you actually have is which model to route to: below 0.5 at 2× you get 2x-ParimgCompact, at 0.5 and above you get RealESRGAN_General_WDN_x4_v3.

What denoise value should I set?

If the source is noisy, grainy or otherwise damaged, set 0.5 or above so the job routes to RealESRGAN_General_WDN_x4_v3. In our measurement that model scored higher than the 2x-ParimgCompact default in all nine clip-and-noise cells, on both PSNR and VMAF, by 0.6 to 4.1 dB and 12.6 to 29.5 VMAF points. If the source is already clean, a plain resize landed closer to the original than any model route we measured.

Is the AI upscale worth running on a clean source?

On fidelity, no. On our clean cells a lanczos resize led every model route, by 14.0 dB on the Apollo clip. As noise rises that reverses on PSNR: at heavy noise RealESRGAN_General_WDN_x4_v3 led lanczos by 6.1 dB on Apollo, 3.4 dB on boxing and 7.1 dB on the colour demo. VMAF still favoured lanczos in every cell, so these numbers measure closeness to the original and not which version you would rather watch.

Related

Download Crisp for Mac Free to try, one-time $129 to remove the watermark. Runs on your Mac.