Generator node
Impasto
Paints any image or video as exaggerated palette-knife strokes: thick saturated daubs that follow the picture's structure, lit with wet relief. Cable Depth Estimation into Depth so near strokes swell and displace; cable a Color Analysis Palette to quantize the paint to its colors.
Inputs
| Port | Type | Default |
|---|---|---|
| ImageWhat gets painted: any image cable — a camera, a video, a generator, a whole Canvas. Every frame the strokes re-sample it and glide toward the new colors. | image | — |
| DepthOptional depth map (Depth Estimation, a 3D Scene's Depth pass, any grayscale — near bright). Drives Depth Power and Displace: near paint swells, rises and covers far paint. | image | — |
| PaletteOptional color array — cable Color Analysis' Palette and Quantize pulls every stroke toward those colors: the poster look where each daub is one clean paint. | color | — |
| Enable | bool | true |
| StrokesStroke density, 0–1. Low is sparse daubs with canvas showing through; 1 is a fully covered surface (≈13k strokes). | float | 0.9 |
| SizeBase daub size. Everything scales with it — detail strokes stay proportionally smaller than the base coat. | float | 0.13 |
| LengthHow elongated a stroke is, 1–13. 1 is a round dab; the far end is long combed ribbons dragged along the flow direction. | float | 6 |
| LayersPaint octaves, 1–8: from big background daubs down to fine detail dust. The stroke budget redistributes — more layers means finer paint, not more strokes. Changing it re-deals the lattice. | int | 3 |
| FlowHow strongly strokes align with the image's structure (edges, hair, contours), 0–1. 0 is each stroke's own random direction; 1 locks onto the picture. Comb blends OVER this. | float | 1 |
| CombThe unifying hand, 0–1: one flowing turbulent field combs ALL strokes toward a shared direction, like brush hair — the organic coherence a chaotic per-stroke rotation lacks. 0 turns it off; 1 overrides Flow completely. | float | 1 |
| Comb ScaleSize of the comb field's swirls, 0.01–8. Tiny values approach ONE broad sweep across the whole canvas (near-uniform direction); large values are tight little eddies. | float | 0.08 |
| DriftHow fast the comb field flows and morphs, 0–2. 0 freezes it; small values (≈0.15) give the slow, living drift where every stroke gently holds its neighbours' direction. | float | 0.05 |
| StreamThe current, 0–2: each stroke is born at its anchor, drifts along the turbulence vector at this speed, fades out and is reborn at home — an endless staggered loop, so the painting's structure heals itself every cycle. 0 anchors everything in place. | float | 0.1 |
| Stream LifeSeconds per drift cycle, 0.5–10. Short lives are a restless shimmer of small movements; long lives let strokes travel far down their streamlines before fading home. | float | 4 |
| Depth FlowThe form-following voice (needs the Depth cable), 0–1: strokes turn along iso-depth lines and wrap the 3D shape the depth map describes — outlining faces, shoulders, objects. Flat background keeps the Comb field; it speaks over Comb where the form curves. | float | 0.46 |
| Length AdaptThe painter's instinct, as a RATIO 1–100: at a hard bend (fold edges, silhouettes) strokes become this many times shorter, while laminar areas keep full ribbons. Once shorter than round, the whole dab shrinks — tight little touches in the folds. 1 is off. | float | 13 |
| Adapt ContrastHow sharply length reacts to a bend, 0.5–8. Low values shorten strokes gently over broad curves; high values keep full ribbons until a hard kink, then snap to dabs. | float | 7 |
| Adapt ReachHow far from a fold the shortening starts, 0.5–4. Larger values make the transition band wider — ribbons begin shrinking well before the edge instead of staying long and burying the tiny dabs right at it. | float | 2 |
| RaggedEdge break-up, 0–1. 0 is clean rounded daubs; 1 tears the rims into irregular knife edges. | float | 0.9 |
| ReliefHow three-dimensional the paint reads, 0–2 — the strength of the sculpted normal that catches the light. 0 is flat color. | float | 0.25 |
| GlossWetness: specular highlight strength and tightness, 0–1. High gloss is fresh oil paint; 0 is dry gouache. | float | 0.1 |
| Light AngleWhere the studio light comes from, in degrees around the canvas. | float | 313 |
| Light HeightLight elevation, 0–1. Low light rakes across the paint and dramatizes the relief; high light flattens it. | float | 0.6 |
| Depth PowerHow much a connected Depth map scales the strokes, −2–2: positive makes near paint thick and bold; NEGATIVE flips it — big loose daubs in the background, fine detail strokes on the subject in front, the classic painter's economy. Needs the Depth cable. | float | 0.1 |
| Displace XThe horizontal push, −2–2: near strokes slide sideways by their depth. Together with Displace Y any displacement direction is reachable — and animatable by cables. | float | 0 |
| Displace YThe vertical Rutt-Etra push, −2–2: near strokes physically move up (or down, negative) the canvas and OCCLUDE what's behind them. Cable an LFO or a hand for animated shear. Needs the Depth cable. | float | 0 |
| Displace ZStretches the depth space itself, −2–2: positive drives near paint nearer (bigger, on top) and far paint farther (smaller, behind) — exaggerated 3D separation; negative compresses it flat. | float | 0 |
| Layer DepthPushes the paint octaves apart in depth, 0–1: the base coat recedes (smaller, sorted behind), the top detail layer stays put — the stack reads as physically layered paint. | float | 0.8 |
| Layer ShadeDarkens the stroke ENDS on the far layers, 0–1: the deepest octave gets fully shadowed tips, the middle a little, the top layer none — cheap inter-layer occlusion that makes the stack read as depth. | float | 0.2 |
| Rim ShadeThe daub's own built-in rim and end darkness, 0–1. It is depth-weighted: near strokes stay almost clean (a dark foreground reads as dirt), far strokes keep their shadowed rims. 0 removes it everywhere — flat poster paint. | float | 0 |
| ShadowDrop-shadow opacity, 0–1: every daub casts a soft dark stamp opposite the light — onto the Background AND onto deeper paint — lifting the strokes off the canvas. Near (higher) paint casts farther. 0 is off. | float | 0.7 |
| Shadow DistanceHow far the shadows fall, 0.05–1 — the perceived height of the paint above the canvas. Works with Light Angle: move the light, the shadows swing. | float | 0.2 |
| SaturationVibrance push, 0–2. 1 keeps the source; higher exaggerates every color toward pure paint — the over-the-top look lives around 1.3–1.7. | float | 1.5 |
| QuantizePulls stroke colors toward the cabled Palette (or posterizes without one), 0–1. Full quantize means every daub is exactly one palette paint. | float | 0 |
| SmoothingTemporal calm, 0–1: how slowly strokes glide toward the video's new colors and directions. 0 repaints instantly (can shimmer); high values feel like drying paint. | float | 0.8 |
| SeedThe stroke lattice's random seed. Changing it re-deals every daub's position and character — same image, different painting. | int | 0 |
| BackgroundBase coat under the strokes. Transparent (default) lets the Canvas behind show through the gaps; a color primes the canvas. | color | (0, 0, 0, 0) |
Outputs
| Port | Type |
|---|---|
| ImageWhat gets painted: any image cable — a camera, a video, a generator, a whole Canvas. Every frame the strokes re-sample it and glide toward the new colors. | image |
| Width | float |
| Height | float |
How It Works
Impasto paints any image or video feed as exaggerated palette-knife strokes, live — up to eighteen thousand instanced daubs in three to eight coats, each with a procedurally sculpted rim, drag striations, ragged knife edges and wet specular light.
The strokes decide their direction by four voices, strongest last:
- their own scatter;
- the image's structure (Flow) — strokes hug hair, contours and drapery;
- a single flowing turbulent field (Comb) — the unifying hand that makes neighbours share a stroke, slowly morphing with Drift;
- and the form itself (Depth Flow) — cable Depth Estimation and strokes turn along iso-depth lines, wrapping faces and objects the way a painter follows volume.
Where the direction field bends hard — a fold, a silhouette — strokes shrink into tight little dabs, up to a hundred times shorter, ramping in from as far away as a ribbon's body would reach (Length Adapt, Adapt Contrast, Adapt Reach).
Depth also exaggerates: near paint swells and physically rises over far paint with honest occlusion (Depth Power, signed — negative flips to the painter's economy, big loose daubs behind and fine detail in front) plus Displace X/Y/Z, all cable-driven for animated or interactive shear.
Stream sets the whole painting flowing: each stroke is born at its anchor, drifts along the turbulence vector, fades and is reborn at home — an endless staggered loop that never scrambles the picture. Colours push past life with Saturation, or Quantize toward a cabled Color Analysis palette for the poster look where every daub is one clean paint. Every stroke's state glides on its own temporal Smoothing, so video breathes instead of shimmering.
Use Cases
- A live painted portrait — Camera into Image, Depth Estimation into Depth: the strokes wrap the face and the paint stands off the canvas.
- Painted video — Any clip becomes a moving oil painting; Stream keeps it alive without scrambling the picture.
- Poster reduction — Quantize against a Color Analysis palette gives a limited-palette screen-print look.
- Painterly titles — Paint a text or a logo render rather than a photograph.
- Interactive shear — Hand tracking into Displace X/Y and the painting leans as the viewer moves.
Tips
- Start with Strokes, Size and Layers. Everything else is refinement, and the defaults were dialled in by hand.
- Depth Flow is what makes it read as painting rather than as a filter — it is worth the cost of a Depth Estimation node.
- Negative Depth Power is a real look, not a bug: loose behind, fine in front, the way painters actually work.
- Raise Smoothing when video shimmers; lower it when the paint feels laggy on fast motion.
- Seed re-deals the whole painting — the cheapest way to find a better arrangement of the same settings.
- Background sets what the canvas is; leave its alpha at 0 to composite the paint over something else.
Open Impasto in the interactive catalog →
Impasto is one of 381 nodes in Grafit Pro.
Free download. Every feature for 7 days, no card. Then €99.99 once — or keep playing your projects as a Player.