Skip to content

Composite and edit

Composite images and video with compositors

A compositor in Nodespell is a node that holds its own node graph for layering images and video, much like a Nuke script inside one node. Image Compositor produces a still image and Compositor produces a video. Everything inside renders on the GPU in your browser, and the result leaves through one output that the rest of your graph, including AI generators, can use.

Nodespell has two compositor nodes. Both hold a node graph, both use the same effect nodes, and you can convert one into the other.

Image Compositor Compositor
Produces A still image (output Image) A video (outputs Video, Compositor and Preview Frame)
Input on the node Images Assets
Timeline, playhead and keyframes No Yes, with Frame Rate (default 30) and Duration Seconds (default 5)
Time-based nodes (Retime, Time Offset, Freeze Frame, Reverse Time, Optical Flow, Motion Blur, Camera Shake, Switch/Dissolve, Image Sequence, Timeline Source, Compositor Source) Not supported Supported
Audio None Audio Source: First Input or None
Result choices with colour management on Review PNG or Master EXR Review video, or HDR review where your device supports it

If an Image Compositor contains a time-based node, it cannot render a still and names the node so you can remove it or convert back to Compositor.

The menus that convert between the two call the video compositor Video Compositor; it is the same node as Compositor.

  1. In the Graph, press Tab to open the Tab menu and add Image Compositor or Compositor.
  2. Connect your images or videos to the compositor’s input (Images or Assets). The input accepts several connections, in order.
  3. Select the compositor and press Enter to go inside it. Press U to come back out.
  4. Inside, a new compositor already contains a Compositor Input connected to a Compositor Output. Add effect and Merge nodes between them.
  5. Select the compositor or any node inside it to see the composite in the Design panel.

You can also build a chain of image effects in the Graph first, select those nodes, right-click and choose Convert to Video Compositor or Convert to Image Compositor. Nodespell moves the selected nodes into a new compositor. If some connections cannot be carried inside, a message says how many were removed; use Undo to restore them. To switch an existing compositor between still and video, use the Actions submenu on the compositor node.

How do Compositor Input and Compositor Output work?

Section titled “How do Compositor Input and Compositor Output work?”

Compositor Input brings the media connected to the parent compositor into its inner graph. Its Index parameter is zero-based: index 0 is the first connection on the compositor’s input, index 1 the second, and so on. It has two outputs, Asset (the one item at that index) and Assets (all of them). Add one Compositor Input per source you want to work with separately.

Compositor Output marks what the compositor delivers. Whatever you connect to its Source input becomes the compositor’s result. On a video Compositor, Use In/Out Points (on by default) renders the playback range; turn it off to set Start Frame and End Frame yourself.

A video Compositor also offers source nodes for other kinds of media: Image Set Source (several stills for switching or dissolving), Image Sequence (stills spread over time by Total Length, Each Image Length or Manual Index), Timeline Source, Compositor Source (a nested compositor) and Switch/Dissolve.

Merge combines one Background with one or more Foregrounds. Each foreground is merged over the result so far, in connection order, using the chosen Mode (default Over). Mix (0–1, default 1) fades the merged result back toward the background.

Merge follows Nuke’s conventions: A is the foreground and B is the background. Foregrounds are premultiplied before merging, so you can feed straight-alpha images directly; only Matte reads the foreground unpremultiplied. Inputs whose size differs from the canvas are scaled to fit inside it without cropping.

Outside a compositor, the Composite node in the Graph does the same job for still images, with the same modes and matching results, including transparent inputs. Composite also has Edit Composite, where you move, rotate and scale each foreground layer.

In the formulas, A and B are the foreground and background colour values per channel, and a and b are their alphas. Values are not clamped, so float and HDR values pass through.

Mode Result Typical use
Over A + B × (1 − a) Standard layering of a premultiplied element
Under A × (1 − b) + B Put A behind B
Atop A × b + B × (1 − a) Layer A only where B exists
In A × b Keep A inside B’s alpha
Out A × (1 − b) Keep A outside B’s alpha
Mask B × a Keep B inside A’s alpha
Stencil B × (1 − a) Cut A’s shape out of B
XOR A × (1 − b) + B × (1 − a) Show each only where the other is absent
Conjoint Over Over that treats overlapping alphas as shared coverage Layers cut from the same matte
Disjoint Over Over that treats alphas as non-overlapping Layers that meet edge to edge
Matte Mix B toward unpremultiplied A by a Straight-alpha foregrounds
Copy A Replace with the foreground
Add / Plus A + B Light, glows, fire, flares
Minus A − B Subtract the background from A
From B − A Subtract A from the background
Multiply A × B Shadows, darkening, applying dirt
Divide A ÷ B Removing a multiplied pass
Screen A + B − A × B (Max when either is outside 0–1) Soft brightening
Overlay Multiply or screen, chosen by B Contrast and texture
Hard Light Multiply or screen, chosen by A Strong texture overlays
Soft Light W3C soft-light formula Gentle contrast
Color Dodge Brighten B by A Hot highlights
Color Burn Darken B by A Deep, saturated darks
Difference |A − B| Checking alignment or changes
Exclusion A + B − 2 × A × B Low-contrast difference look
Average (A + B) ÷ 2 Blending two plates equally
Geometric 2 × A × B ÷ (A + B) Averaging that favours the darker value
Hypot √(A² + B²) Combining reflections
Max / Lighten Larger of A and B Keep the brightest
Min / Darken Smaller of A and B Keep the darkest
Custom Your own expressions Per-channel control

Write a custom merge with channel expressions

Section titled “Write a custom merge with channel expressions”

Set Mode to Custom to combine inputs with your own maths. Two fields appear: Colour (default A.rgb) and Alpha (default A.a).

  • Pick channels with .rgb, .r, .g, .b, .a, or combinations such as .rg.
  • Colour must give three numbers, or one number for grey. Alpha must give one number.
  • Position and time: x and y (pixels, y counted up from the bottom), u and v (0 to 1), width, height, frame and time (seconds).
  • Operators: + - * / ^, comparisons, &&, ||, ! and condition ? a : b.
  • Functions include abs, floor, ceil, round, fract, sqrt, exp, ln, log2, sin, cos, tan, atan2, pow, min, max, mod, step, clamp, saturate, lerp, smoothstep, fit, luma, dot, length, premult, unpremult, vec2 and vec3.

Inputs in Custom mode are straight (unpremultiplied) alpha, and so is the result. An input the expression reads but nothing is connected to reads as transparent. Mix sets how much of the custom result replaces input A. Expressions are limited to 600 characters.

Goal Colour Alpha
Blend B over A using C’s red channel as the matte lerp(A.rgb, B.rgb, C.r) max(A.a, B.a)
Take red from B, keep A’s green and blue vec3(B.r, A.g, A.b) A.a
Left half A, right half B u < 0.5 ? A.rgb : B.rgb A.a

Canvas size sets the compositor’s frame. New compositors start on First input; compositors saved before canvas sizing existed stay on Custom.

Option Canvas
First input The dimensions of the first connected input
Largest input / Smallest input The input with the most or fewest pixels; ties keep connection order
Custom Your own width and height (1920 × 1080 by default). The first switch to Custom starts from the current size
Presets 720p Landscape · 1280 × 720, 1080p Landscape · 1920 × 1080, 4K UHD Landscape · 3840 × 2160, 1080p Portrait · 1080 × 1920, Square · 1080 × 1080, DCI 4K · 4096 × 2160

Automatic sizes use the original media dimensions, including orientation, never a thumbnail’s size. While dimensions are loading, the compositor shows Waiting for input dimensions. You can also change the size from the compositor’s right-click menu under Canvas size. Changing the canvas size does not change frame rate, duration or colour settings.

How does a composite feed generators downstream?

Section titled “How does a composite feed generators downstream?”

Connect the compositor’s output to any node that accepts an image or video. An Image Compositor’s Image output carries the still; a video Compositor’s Video output carries the rendered clip and Preview Frame carries a still of the current frame. When you edit a composite, downstream generators receive the updated result the next time they run.

Compositing runs in your browser, not on Nodespell’s servers. What the compositor delivers depends on its colour settings; see Color management.

Compositor rendering and its effect nodes run on your device’s GPU in the browser. Credits apply to AI model nodes, such as a generator you feed the composite into, not to compositing itself.

Why can’t I find some nodes in the Tab menu inside a compositor?

Section titled “Why can’t I find some nodes in the Tab menu inside a compositor?”

Inside a compositor, the Tab menu shows only nodes that work in compositors. Inside an Image Compositor it also hides time-based nodes such as Retime and Camera Shake, which need a video Compositor.

Can I animate a Merge or effect inside an Image Compositor?

Section titled “Can I animate a Merge or effect inside an Image Compositor?”

No. An Image Compositor has no timeline. Convert it to a video Compositor to set keyframes.

What is the difference between Merge and Composite?

Section titled “What is the difference between Merge and Composite?”

Merge works inside compositors; Composite works in the ordinary Graph on still images. They share the same blend modes and give matching results.

Why does the Custom mode use A for the background?

Section titled “Why does the Custom mode use A for the background?”

Custom mode names inputs in connection order, starting with the Background as A. The fixed blend modes use Nuke’s naming, where A is the foreground.