Nodes · Filter
Regrain
Filterv1core
Overview
Puts the plate's OWN grain back on comped work: measures it from the plate and re-applies it per-brightness. Better than synthetic grain when you have the plate.
How to
How-to
- Wire the plate and the comp; press Measure so the node reads the plate's own grain.
amountand per-channel gains re-apply it per brightness;grain_sizematches the scan.- Without a measured fingerprint the node reads one from the centre of the plate on every frame; Measure once and the read is skipped.
detail_guard(on) keeps the re-applied grain honest. The residual the node re-uses is plate minus degrain, and that is only grain where the degrain took only grain: a specular edge, or the texture of something you then painted out of the comp, would come back as a streak. With the guard on, a residual is capped at the plate's measured grain level and, where the comp differs from the degrained plate (a paint-out), synthetic grain of the right amplitude takes over; an untouched pixel keeps the plate's real grain. Turn it off to re-apply the residual verbatim.
Inputs
| Input | What it takes |
|---|---|
| comp | the comped result |
| plate | the original plate, for measurement |
| degrain | the degrained version, for the difference |
| mask | limits the effect to this matte — the engine's universal mask slot, applied for every node that declares it |
Outputs
| Output | Type |
|---|---|
| out | Image |
Parameters
| Parameter | Type | Default | What it does |
|---|---|---|---|
| amount | Float | 1.0 | How much grain to lay down. 1 = matches the analysed plate. |
| r_gain | Float | 1.0 | Per-channel grain strength — film grain is usually strongest in blue. |
| g_gain | Float | 1.0 | Per-channel grain strength — film grain is usually strongest in blue. |
| b_gain | Float | 1.0 | Per-channel grain strength — film grain is usually strongest in blue. |
| generative | Float | 0.0 | 0 = re-use the plate's real grain; 1 = synthesize it from the fingerprint (no plate needed). |
| luma_compensation | Float | 1.0 | How much the grain follows the COMP's brightness rather than the plate's. 1 = fully physical: grain scales with the light it sits on. |
| grain_size | Float | 1.0 | Correlation radius of synthetic grain. 0 is white noise (video hash); larger clumps like film. |
| seed | Int | 0 | The random pattern's starting point. Change it for a different pattern of the same character; keep it to reproduce a frame exactly. |
| mix | Float | 1.0 | Dissolves the effect back toward the input. 0 = off (bit-identical), 1 = full effect. |
| detail_guard | Bool | true | Grain only where the degrain took only grain. On (the default): the residual is clamped to the measured grain sigma and the pixels the comp changed take synthetic grain, so a sharp highlight's structure and a paint-out's texture do not come back as grain (a streak where the blood was, over-grainy lights). Off: the plate's residual verbatim. |
| fingerprint_r | Lut | 0 points | The analysed grain response curve — grain amplitude per brightness — per channel. Editable in the curve editor. |
| fingerprint_g | Lut | 0 points | The analysed grain response curve — grain amplitude per brightness — per channel. Editable in the curve editor. |
| fingerprint_b | Lut | 0 points | The analysed grain response curve — grain amplitude per brightness — per channel. Editable in the curve editor. |
| disabled | Bool | false | Bypass: the node passes its first input through untouched (D in the graph). The knobs keep their values for when it comes back. |
| label | Text | A note shown under the node in the graph — what this node is FOR. Never affects the render or the cache. | |
| hide_input | Bool | false | Draw the node without its input wire — a tidy graph for a node whose source is obvious (a Dot, a viewer tap). |