Generator node

Composite

A compositor with its own canvas: pick an exact pixel size, an aspect ratio, or follow the render view, then stack up to 8 image layers on it — each with its own Mask, Blend mode (14 Photoshop-style modes), Opacity and Fit mode. The result is a single Image, so composites chain into other composites, filters or a Canvas. This is the node for building a finished frame at a fixed delivery resolution instead of layering Canvas nodes on the viewport.

Outputs

PortType
Imageimage
WidthSize Mode: Custom only — canvas width in pixels.float
HeightSize Mode: Custom only — canvas height in pixels.float

Live Preview

Interactive — Layers and blend modes — the math made visible

How It Works

Composite renders on two GPU compute passes per frame. The first composites every connected layer into an internal texture at the node's own exact pixel size, bottom-to-top in layer order (Image 1 is the bottom layer, Image 8 the top). The second "present" pass letterboxes that finished composite into the viewport-sized output texture, aspect preserved with transparent bars — so a downstream Canvas shows the composite at its true proportions, and a chained Composite can read the content rectangle back through the standard Width/Height contract.

Size Mode decides the internal canvas resolution (clamped to 16–8192 px per side):

ValueSize ModeResolution
0Render ViewMatches the render viewport pixel size
1Custom PixelsExactly Width × Height
2Aspect RatioThe Aspect W : Aspect H box fitted inside the render view

Compositing math follows the W3C spec on straight (un-premultiplied) colors: each layer's texture is un-premultiplied, blended against the accumulated backdrop, then combined with source-over alpha. Coverage per pixel is source alpha × Opacity × mask. The final write re-premultiplies, and Background Color seeds the accumulator (default fully transparent).

Each layer is re-fitted onto the composite canvas by inverse-mapping its Fit mode against the composite's aspect — and crucially, the fit works on the layer's content rectangle (its declared Width/Height in Grafit units) rather than on the padded viewport texture, so a small shape doesn't get treated as a full-frame image:

ValueFitBehavior
0FitLetterbox — whole content visible, transparent bars
1FillCrop — content covers the canvas, overflow cut
2StretchContent distorted to exactly fill the canvas
3Original Size1:1 pixel mapping — no rescaling

A layer's optional Mask is sampled in composite space and always covers aspect-preserving (fill, never stretched — a silhouette keeps its proportions on any canvas). Mask coverage comes from the mask's premultiplied luminance: white opaque areas pass the layer through, black or empty areas block it.

Blend selects how the layer's straight color s combines with the backdrop b beneath it (the blend result is mixed toward the plain source where the backdrop is transparent, per W3C):

ValueBlendFormula / effect
0Normals — plain source-over alpha compositing
1Addmin(b + s, 1) — linear dodge, brightens, glow and light
2Multiplyb · s — darkens; white is neutral
3Screenb + s − b·s — lightens; black is neutral, inverse of Multiply
4OverlayMultiply where the backdrop is dark, Screen where light — contrast boost
5Soft LightGentle dodge/burn: s ≤ 0.5 darkens, above lightens, with a smooth curve near black
6Hard LightOverlay driven by the source instead of the backdrop — harsh contrast
7Darkenmin(b, s) — keeps the darker channel
8Lightenmax(b, s) — keeps the lighter channel
9Differenceabs(b − s) — absolute channel difference, inverting overlaps
10Exclusionb + s − 2·b·s — softer, lower-contrast Difference
11Color Dodgeb / (1 − s) clamped — brightens the backdrop hard toward white
12Color Burn1 − (1 − b) / s clamped — darkens the backdrop hard toward black
13Subtractmax(b − s, 0) — removes source luminance from the backdrop

Layer port groups appear progressively: Image 1 is always visible, Image N appears once Image N−1 is connected, and a layer's Mask, Blend, Opacity and Fit ports only appear once its Image is connected. Likewise, Width/Height show only in Custom Pixels mode and Aspect W/Aspect H only in Aspect Ratio mode. With Enable false, no layers are composited — only the transparent/background canvas is produced.

Parameters in Depth

Canvas

PortDefaultMeaning
EnabletrueOff produces an empty canvas (no layers composited)
Size Mode0Render View / Custom Pixels / Aspect Ratio
Width1920Canvas width in pixels (Custom Pixels only, 16–8192)
Height1080Canvas height in pixels (Custom Pixels only, 16–8192)
Aspect W16Aspect numerator (Aspect Ratio only)
Aspect H9Aspect denominator (Aspect Ratio only)
Background Color(0, 0, 0, 0)Base color under all layers; default fully transparent

Per layer, N = 1…8

PortDefaultMeaning
Image N—Layer texture; layer 1 is the bottom, 8 the top
Mask N—Optional mask; luminance gates the layer, aspect-preserving cover fit
Blend N0Blend mode 0–13 (table above)
Opacity N1Layer opacity 0–1, multiplied into coverage
Fit N0Fit / Fill / Stretch / Original Size

Outputs: Image (the composited texture), plus Width/Height reporting the composite's content size in Grafit units — which is exactly what lets a chained Composite or a Canvas place it at its true aspect ratio.

Practical interactions: Opacity N and the mask multiply together, so a 50% layer under a mid-gray mask reads at 25%. Blend modes operate against everything already accumulated below, not against a single layer — reordering connections changes the result. Original Size maps source pixels 1:1 onto the canvas, which means a small source lands small even on an 8K canvas.

Use Cases

  • Fixed-resolution delivery frame: several generators → Composite (Size Mode = Custom Pixels, 1920×1080) → Canvas — build the show at broadcast resolution regardless of window size.
  • Vertical social cut: the same graph → a second Composite with Size Mode = Aspect Ratio, Aspect W 9 / Aspect H 16, layers set to Fill — an instant portrait crop of the same scene.
  • Masked reveal: Video Player → Image 1; Text generator → Image 2 with a Shape generator into Mask 2 — the text appears only inside the moving shape.
  • Glow stack: base render → Image 1 (Blend = Normal), the same render blurred → Image 2 (Blend = Add, Opacity 0.6) → Canvas.
  • Duotone / grade over footage: Camera Input → Image 1; a flat Color generator → Image 2 with Blend = Overlay or Soft Light at partial opacity.
  • Chained composites: Composite (background plate) → Composite (Image 1 = plate, Image 2 = foreground elements, Blend = Screen) → Image Adjustment → Canvas — group layers logically and grade the whole stack at once.

Tips

  • The output is still an offscreen texture: it needs a Canvas node to reach the screen. Layer ordering happens inside Composite (Image 1 = bottom); the Canvas layer system is separate and only orders Canvas nodes.
  • Prefer Composite over many Canvas nodes when you want a fixed pixel canvas, per-layer masks, or blend modes richer than Canvas's four — and when you want to grade or transform the whole stack afterwards as one image.
  • Masks read luminance from premultiplied pixels: an empty (transparent) mask region blocks the layer entirely, exactly like black. A generator that outputs a white shape on transparency is a ready-made matte.
  • Fit works on the content rectangle each source declares through its Width/Height outputs, so a small generated shape stays small under Fit/Fill instead of being blown up to the full padded texture — use Stretch deliberately when you actually want distortion.
  • Very large Custom Pixels canvases cost fill rate on every frame; 8192 is the hard ceiling per side, but a 1080p or 1440p canvas is usually the sweet spot for live work.
  • Related nodes: Image Adjustment for grading the composited result, Image Transform for moving/warping a layer before it enters a slot, and Canvas for final placement in the 3D output scene.

Open Composite in the interactive catalog →

Composite 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.

More Generator nodes