Releases: amateurmenace/control-z
Release list
Hush v3.7.0 — the handoff: clean matte to alpha
The handoff release. Hush can now hand its clean-confidence matte down the node chain — which makes the "clean early, reconstruct late" pairing with Speak (released today, early beta) a working chain instead of a diagram.
New
- Export Clean Matte to Alpha (Output group, default off). In the Result view, writes
clamp((effN − 1) / 6, 0, 1)— the exact calibration of the Matte: Clean Confidence view — into the output alpha, leaving RGB untouched. Downstream, Speak's grain keys on it: full grain where the temporal stage averaged deep (texture was flattened), less where the gate protected motion (real noise survives). Replaces the incoming alpha while on — the hint says so. Off by default, so every existing project renders bit-identically. - The inspection views keep the true alpha; only the Result view exports.
Meet Speak
Speak v0.2.0 — film tone scale, subtractive color, split toning, halation and grain, built from original color science with every curve on screen — is now its own plugin: amateurmenace/Speak. Set Hush's Export Clean Matte to Alpha on and Speak's Use Incoming Matte on, and grain lands exactly where Hush cleaned.
Shared downloads hub: control-z (hush-v3.7.0).
🤖 Generated with Claude Code
Hush v3.6.0 — texture reconstruction
Hush — the noise-reduction half of the toolkit. Source & issues: amateurmenace/Hush-OpenNR.
Downloads: macOS .pkg (installer) or .zip; Windows .zip (OpenCL, x64). See the README for install steps.
The texture-reconstruction release. A real-footage audit found the denoising
core is already strong — so this release builds the other half: after the
noise is gone, put the image's optical character back. There is now a stage
that ADDS high-frequency energy (nothing before this could), grain that is
matched to the noise that was removed instead of a flat mid-gray dither, a
texture path that no longer re-noises the shadows it fills, a fix for the
blotchy color speckle left deep in shadows, and a confidence matte that hands
downstream nodes a map of where the denoiser actually succeeded.
Everything here is off by default, so existing projects render bit-for-bit
identically until you reach for it. All new math is ported across the CPU
reference and the Metal / CUDA / OpenCL kernels at the usual ~2e-5 parity, and
every idea was CPU-prototyped and gated on real 4K night footage before it
shipped.
Added
- Optical Acutance (Refine). The first stage in the whole pipeline that
raises high-frequency energy: an edginess-gated high-pass on the cleaned
luma, hard-clamped to the local 3×3 min/max so edges get their slope back
with zero ringing by construction — sharpness that reads like a lens,
not a halo. Gated to real edges by the noise field, so it never amplifies
noise. Measured +7.9% edge slope on the reference clip; flats untouched. - Shadow Color Cleanup (Refine, the WEAK-1 fix). The residual mid-frequency
color speckle in deep shadows sits above the ~23 px reach of the chroma
bands. A wide luma-guided chroma pass averages it — guided by the clean luma
so it never crosses a real object edge, and kept to a moderate reach so the
frame-scale lighting gradient (warm vs cool ambient over dark fabric) stays
put. −70% shadow chroma speckle on the clip with the real color preserved. - Clean-Confidence matte (view mode). Exports the per-pixel effective
sample count — how deep the temporal stage averaged — calibrated into
RGB + alpha. A downstream node can key shadow-lift, grain and local contrast
off where the denoiser succeeded (high on static, low on the motion the
gate had to protect). The complement of the existing noisiness matte. - Grain Fineness (blue-noise spectrum). High-passes the grain toward the
eye's contrast-sensitivity peak; at matched RMS it reads sharper and hides
the plasticky look better than full-band grain.
Changed
- Film Grain is now reconstructed, not dithered. Amplitude follows the
measured brightness-noise curve (loud in shadows, quiet in highlights —
where real noise and the plasticky waxing actually live) instead of a
mid-gray parabola, and it is contrast-masked off edges so it never dithers
over detail or acutance. (Only affects clips that had grain turned on.) - Luma Texture now cores the noise out first. The re-injected texture is
soft-thresholded at the input-noise scale, so it puts back real
micro-structure without pushing the removed noise back into the shadows —
measured shadow re-noising dropped from ~4.7× to ~1.2×. (Only affects clips
that had Luma Texture turned on.) - Adaptive Strength (effN-steered spatial): the spatial cleaning is now
spent per pixel where frame-averaging couldn't help (moving subjects) and
relaxed where it already worked, keeping the residual uniform across motion. - Auto Setup deep-tune: the self-tuner now also runs a coordinate descent
over the motion/detail/EQ axes and a chroma-SURE pass, with hold-out
cross-validation so a tune that only fits the probe's own noise is rejected.
Fixed
- Chroma auto-tune on correlated speckle. Plain MC-SURE is only a valid
error estimate for white noise; on the spatially-correlated shadow chroma
speckle it read the win backwards and de-tuned a good profile by ~0.9 dB.
The probe is now matched to the measured chroma-noise correlation length, so
the estimator becomes generalized SURE and tracks true error — turning that
0.9 dB loss into a 3.0 dB gain on the correlated case.
Speak v0.2.0 — first public release (early beta)
Early beta — the first public release of Speak, the free film-emulation plugin for the last node of your grade, and the finishing counterpart to Hush.
Everything below is gated by measurement and verified across CPU/Metal/OpenCL (CUDA is a syntax-checked port, like Hush's, pending NVIDIA hardware). v0.2 has not yet had a full field test inside Resolve — use it, enjoy it, file issues.
What's in the box
- Film tone scale — closed-form Hurter–Driffield negative → printer lights → print, color-managed (DWG/DI, Rec.709, ACEScct, linear), with a live H&D scope that samples the exact curve the pixels use
- Subtractive color — saturation in the density domain (highlight chroma self-compresses; hues bend toward the dyes) + inter-image coupler
- Split toning — density offsets by tonal zone; mids neutral by construction
- Halation — highlight scatter re-injected as exposure before the curve (a blue neon halates blue, never red), multi-scale power-law skirt, radius in % of frame height so proxy and full res match
- Grain — density noise per RGB dye layer, shadow-loud (σ_D ∝ √D), grainless at paper white, boiling every frame
- The Hush handoff — pair with Hush ≥ 3.7's Export Clean Matte to Alpha: grain lands where the denoiser cleaned deepest ("clean early, reconstruct late")
- Isolated halation/grain views (never auto-gained), Status-M density parade, identity at default, alpha passthrough
Install (macOS)
Run the .pkg, or unzip and copy Speak.ofx.bundle to /Library/OFX/Plugins. If Resolve doesn't see it, delete ~/Library/Application Support/Blackmagic Design/DaVinci Resolve/OFXPluginCacheV2.xml and relaunch. Windows/Linux: build from source for now.
Source & issues: amateurmenace/Speak. Also released there as v0.2.0.
🤖 Generated with Claude Code