Pin Types
ArcBrush uses a typed pin system to ensure that only compatible nodes can be connected. Each pin type represents a different kind of data flowing through the graph.
The Six Pin Types
Section titled “The Six Pin Types”Each pin type uses a distinct shape and color so you can tell them apart at a glance. Most shapes never change when a pin is connected; they’re tied to the type, not the connection state. The one exception is the Pixels pin, whose color reflects the kind of data flowing through it (see Channel Polymorphism below).
| Pin Type | Shape | Color | Description |
|---|---|---|---|
| Image | ■ Filled square | Orange | RGBA image data (the most common type) |
| Mask | ● Filled circle | Blue | Single-channel grayscale mask |
| Pixels | Split circle (orange top, blue bottom) | Orange / Blue | A channel-polymorphic input that accepts a color image or a grayscale/mask, producing a matching channel count |
| Palette | ▲ Filled triangle | Violet | Named color slot collection |
| Batch | ▢ Outlined square | Gold | Multiple image frames (from Palette Remap, Collect, or Image Folder) |
| Size Reference | ○ Outlined circle | Teal | Dimensional reference (width/height) |
Channel Polymorphism
Section titled “Channel Polymorphism”Many filter and structural nodes (Blur, Sharpen, Levels, Curves, Brightness/Contrast, Vignette, Invert, Mirror, Crop, Resize, Transform, and more) expose their main input as a Pixels pin. A Pixels pin accepts either a full-color image or a single-channel grayscale/mask, and the node’s output follows the input: feed it color and you get color back, feed it a mask and you get a mask back. A mask can therefore flow through a whole chain of effects and stay a mask, with no manual color-conversion step in between.
On the canvas, an unconnected Pixels pin draws as a circle split into an image-orange top half and a mask-blue bottom half. Once you wire something in, an input Pixels pin turns a solid color to show which kind of data is actually flowing: orange for a color image, blue for a grayscale/mask. Output Pixels pins keep the split look, because the result’s channel count depends on whatever you connect upstream.
Two boundary nodes, Gradient Map and Normal Map, also accept a grayscale source on their Pixels input, but they always output a full-color image, since their job is to turn grayscale into color.
Originating and writing single-channel data. A single-channel image no longer has to come from Mask From Image or a keyer matte. The six generators (Canvas, Shape, Gradient, Noise, Pattern, and Text) have a Color Mode (RGBA / Grayscale) that outputs a single-channel image directly at the source, and Image In / Image Folder have an Output Format (Auto / RGBA / Grayscale) that keeps a grayscale file single-channel on load. Switching a generator’s Color Mode carries each color’s brightness to and from its gray value, as a single undoable step. At the end of the chain, Export Image and Export Batch add an Output Channels control that writes a genuine grayscale PNG, TGA, or TIFF (JPEG and WebP have no single-channel mode, so they upcast a grayscale frame to gray-valued color).
A handful of color-only nodes were deliberately left out: HSB, Color Balance, Black and White, Color Overlay, Chroma Key, Luma Key, Dither, Quantize, Palette From Image, Palette Remap, Color Remap, and Channel Shuffle keep a plain Image input and reject a Mask, prompting you to insert a Gradient Map to colorize it first.
Connection Rules
Section titled “Connection Rules”Most connections require matching pin types, with a few useful exceptions:
| From (output) | To (input) | Rule |
|---|---|---|
| Image | Image | Direct connection. |
| Mask | Mask | Direct connection. |
| Palette | Palette | Direct connection. |
| Batch | Batch | Direct connection. |
| Mask | Image | Auto-promoted. The grayscale mask is converted to RGBA and a small indicator appears mid-wire. A few color-only nodes reject this instead (see below). |
| Image | Mask | Auto-converted. The color image is read as a mask by its brightness (luminance) by default; a Mask From control appears on the node so you can read Alpha, Red, Green, or Blue instead. Use Mask From Image when you also want thresholding or feathering. |
| Image or Mask | Pixels | Direct connection. The data passes through as-is (color stays color, a mask stays a mask), and the node’s output matches. |
| Batch | Pixels | Allowed. The batch is processed frame by frame, exactly as it is for an Image input. |
| Pixels | Image | Allowed. A grayscale result is promoted to RGBA if the downstream node needs color. |
| Pixels | Mask | Allowed. A color result is read as a mask by its brightness (luminance) by default, mirroring the Image to Mask conversion, with the same Mask From control to pick a different channel. |
| Pixels | Palette | Not allowed. Pixels carries pixel data only. |
| Image, Mask or Pixels | Size Reference | The Size Reference pin accepts any of them; it just reads the connected node’s dimensions. |
The graph blocks invalid wiring as you drag, and an inline toast explains why if you try to make a forbidden connection. Connecting a Mask into one of the color-only nodes (HSB, Color Balance, Black and White, Color Overlay, Chroma Key, Luma Key, Dither, Quantize, Palette From Image, Palette Remap, Color Remap, Channel Shuffle) raises “This node requires a color image. Insert a Gradient Map to colorize a mask first.”
Common patterns:
- Most nodes have Image inputs and outputs.
- Palette Remap takes an Image + Palette and outputs a Batch.
- Collect and Image Folder also output a Batch; Split decomposes a Batch back into individual images.
- Export Batch takes a Batch and writes every frame as a separate file.
- Keyer nodes (Chroma Key, Luma Key) expose a
matteMask output you can route directly into mask inputs, with no Mask From Image needed.
Pin Naming Conventions
Section titled “Pin Naming Conventions”When you hover a pin, the name hints at how it’s used:
image: the primary image input or output. On channel-polymorphic nodes this is a Pixels pin that also accepts a grayscale/mask.alpha: a generic single-channel input (often interchangeable with a mask).mask: a mask input that restricts where the node’s effect applies.matte: a mask output produced by a keyer node (Chroma Key, Luma Key).palette: a Palette pin connecting a Palette node to a remapper or exporter.size_ref: a Size Reference pin that drives output dimensions.
Pin Indicators
Section titled “Pin Indicators”- Input pins appear on the left side of a node.
- Output pins appear on the right side.
- Connected pins are filled; unconnected pins are hollow (the shape is the same either way).
- A Pixels input pin shows the orange/blue split while unconnected, then turns a solid color once wired to show whether color or grayscale data is flowing; output Pixels pins always keep the split.
- Hover over a pin to see its type and name.