Changelog

See what's new in each release of ArcBrush.

1.5.0

Added
  • 32-bit (float) mode: a new per-document precision mode processes the whole graph in 32-bit floating point with linear-light compositing and overbright (HDR) values preserved end to end; switch in the new Color menu (requires a Pro license or trial).
  • Color management: 32-bit documents pick a working space (Linear, sRGB, ACEScg, ACEScct, Linear P3-D65) and a display transform (the ACES views, AgX, or the plain Standard view) in the Color menu, with a bundled ACES configuration and an Input Color Space picker on Image In and Image Folder.
  • Overbright authoring: in 32-bit mode, colors brighter than white can be authored directly (Canvas, Pad, Noise tint), a zebra-stripes preview indicator marks pixels above white, and the color picker, eyedropper, and histogram read float values.
  • Cryptomatte node: decodes Cryptomatte ID matte data baked into a render engine's EXR into a pickable object matte. Click objects directly in the preview to build the selection (an armed Pick+ / Pick- pair, or Ctrl+Click / Ctrl+Alt+Click, or a Ctrl+Shift drag that adds every object inside a rectangle at once, Ctrl+Alt+Shift to remove, with the preview automatically switching to Colored IDs while a pick is armed), with a hover tooltip naming the object under the cursor, a matte list with removable entries and manifest autocomplete, and Matte / Colored IDs / Highlight / Premultiplied output modes.
  • Multi-part and tiled EXR import: multi-part EXR files from render engines, such as one file holding a beauty pass alongside per-light or per-AOV passes, now load, with every part's layers listed together in the layer picker. Tiled EXR files load as well.
  • High-bit-depth import: Image In and Image Folder read 16-bit PNG, 16-bit TIFF, float TIFF, and OpenEXR files, with a layer picker for multi-layer EXR renders; hovering a layer in the picker previews it live in the main view, and 8-bit documents convert them down on import.
  • EXR export (Pro): Export Image and Export Batch write OpenEXR at 16-bit half or 32-bit float with an Output Color Space picker, preserving overbright values.
  • High-bit-depth export (Pro): 32-bit documents gain a PNG/TIFF bit-depth selector on the export nodes (16-bit PNG, 16-bit TIFF, 32-bit float TIFF).
  • Export color handling: a Color section on the export nodes chooses how a 32-bit document's colors are written: as displayed, converted to a chosen color space, or raw working-space values, with a clipping warning that suggests the Clamp node.
  • Scene-referred ranges: in 32-bit mode the Glow threshold, Levels white points, and Exposure offset accept overbright values, with sliders that expand past their 8-bit maximums.
  • Relight node: relights artwork with point and directional lights driven by a normal map, with on-canvas light gizmos, ambient and specular controls, and Lit / Lighting only / Specular only outputs.
  • Hex Tile node: hides the visible repetition when a texture tiles. The image is covered with a grid of hexagonal cells, each showing the source at a random rotation, scale, and offset, with neighboring cells blending smoothly; the output is itself a perfect tile by default (Seamless Output), and an Output Scale control grows the canvas up to 8x to synthesize a large non-repeating texture from a small tile. Rotation Steps (60/90/180 degrees) tames semi-structured textures, a Normal Map option rotates the normal vectors with each cell's content so a hex-tiled normal map still lights correctly (keep the same Seed across per-map copies to keep a whole texture set pixel-aligned), and a preview overlay shows the hex grid with each cell's rotation. Works best on a seamless input; use Seamless Blend first.
  • Merge node: coverage-based compositing with eleven operators (Over, Under, In, Mask, Out, Stencil, Atop, Xor, Plus, Divide, Multiply) and a Mix slider that dials the result back toward the untouched B input, in a new Composite category, for knock-outs, stencils, premultiplied linear adds, and unpacking or repacking a light or albedo pass; hovering an operator in the dropdown previews its result live in the main view.
  • Apply LUT node: applies a LUT file (.cube, .3dl, .clf, .ctf, .csp, .vlt) as a color-managed look, with input/output color-space pickers, interpolation choice, and a Mix slider.
  • Despill node: removes green, blue, red, or custom key-color spill after keying, with Neutralize and Desaturate modes and automatic key-color detection.
  • Clamp node: limits colors to a range with an optional soft knee, per channel or hue-preserving, for taming overbright values before delivery.
  • Premult and Unpremult nodes: convert between straight and premultiplied alpha for compositing workflows.
  • Lens Distortion node (formerly Spherize): the Spherize node is renamed Lens Distortion and gains two new modes alongside the classic bulge/pinch (now the Bulge mode): Sphere wraps the image onto a glass-ball hemisphere (negative amounts give the concave inverse), and Lens (the new default) applies camera-lens barrel or pincushion distortion across the whole frame, with an Edge control for wavy mustache distortion, a Correct direction that exactly removes lens distortion from photos, and a Scale control whose Fill Frame option (on by default) keeps the result automatically fitted to hide blank borders as settings change, with a one-shot Fit button when it is off. A new Feather control smooths the boundary of the bulge and sphere effects, an on-canvas gizmo drags the center, radius, and feather directly in the preview, and an optional warped grid overlay shows exactly how the distortion bends the image. Searching the node library for "spherize" still finds it, and existing projects open in Bulge mode and render unchanged.
  • Mirror node: a new Radial direction mirrors the image kaleidoscope-style around a movable center point, with 2 to 32 segments, a Reflect toggle for mirrored (kaleidoscope) or rotation-only (mandala) symmetry, an angle control, and an on-canvas gizmo for dragging the center and rotating the pattern.
  • Noise node: ten new texture types: Blue (high-pass pixel distribution), IGN (low-discrepancy golden-ratio pattern), Voronoi fBm (cellular turbulence), Crater (pitted terrain), Scratches (random wear strokes with Direction, Spread, Density, Thickness, Length, and Waviness controls), Curl (flow lines), Paper (fibrous paper texture), Stone (marbled stone), Wool (woven strands), and Erosion (eroded terrain with ridges and gullies), most of them tileable via Seamless, which now also covers the existing Voronoi type (its feature scale snaps to the nearest size that tiles cleanly); Voronoi also gains a Smooth Cell return type with a Smoothness control for adjustable soft per-cell blending.
  • Noise node: a new Color Output control turns the noise chromatic: RGB for full-color static, Tint to multiply by a chosen color, and Hue Cycle to drive hue from the noise value; Voronoi also gains a Colored Cells return that colors each cell. The default (Monochrome) output is unchanged, so existing projects look identical.
  • Noise node: new Contrast and Brightness controls, and the Scale maximum raised from 100 to 200.
  • Displace node: a new Map Midpoint control sets which map value counts as zero displacement (0.5 = mid-gray neutral as before; lower toward 0 to read the map as a height field), so one map can drive either a signed offset or a one-sided push.
  • Batch fan-out (M x N): Palette Remap and Separate now take a multi-frame batch and output every input image combined with every variant; use {source}_{name} in Export Batch for names like tree_purple.png, with a per-session cap to prevent runaway expansion.
  • Separate node: a new Grid slicing mode splits the image into a regular rows by columns grid of tiles (each 1 to 64) instead of detecting objects, so you can chop a sprite sheet or atlas into evenly sized frames; the original object-detection behavior is now the Connectivity mode and is unchanged.
  • Canvas, Shape, Gradient, Noise, Pattern, and Text nodes: a new Color Mode (RGBA / Grayscale) control lets each generator output a single-channel image directly, so you can build a mask, height field, or single-channel chain without adding a conversion node. In Grayscale mode the color pickers become gray sliders; switching modes keeps the visible brightness by carrying each color's luminance to and from its gray value, and the switch is a single undoable step.
  • Image In and Image Folder nodes: a new Output Format control (Auto / RGBA / Grayscale) keeps a grayscale source file as a single-channel image instead of always widening it to RGBA, with a Grayscale From option (Luminance, Red, Green, Blue, or Alpha) for reducing color sources. Auto (the default) preserves natively single-channel files and promotes the rest; Image Folder applies it per frame, so a mixed folder yields a mixed batch, and existing projects open unchanged.
  • Export Image and Export Batch nodes: a new Output Channels control (Auto / RGBA / Grayscale) saves a single-channel image as a genuine grayscale PNG, TGA, or TIFF instead of always writing RGBA, with a Grayscale From option (Luminance, Red, Green, Blue, or Alpha) for color sources. The Parameters panel and a node-body badge show the incoming channel type and what the format will write (JPEG and WebP still upcast grayscale to color).
  • Filter and structural nodes: most (Blur, Sharpen, Curves, Levels, Vignette, Pixelate, Mesh Warp, and more) now accept a grayscale or mask source directly and produce a matching single-channel output, so a mask stays a mask through a chain of effects.
  • Gradient Map and Normal Map nodes: now accept a grayscale or mask source directly on their image input (no color conversion needed); both still output color.
  • Resize, Pad, Offset, and Transform: replace their separate Image and Alpha pins with one combined input that accepts a color image or a grayscale/mask and outputs to match; existing wiring is preserved.
  • Mask inputs: wiring a color image directly into a mask input now uses the image's brightness as the mask (previously its transparency, so an opaque image acted as an all-white mask that appeared to do nothing). A new Mask From control appears when a color image is connected, with Luminance, Alpha, Red, Green, and Blue choices; single-channel wires and channels picked through Channel Split behave exactly as before.
  • Mask Fit on more nodes: the Mask Fit control (None / Stretch / Fit / Fill) now also appears on Scatter, Film Grain, Halftone, Separate, and Mask Boolean, choosing how a differently sized mask maps onto the image.
  • Remove Background and Upscale nodes: two free nodes that run in the cloud, returning a clean background-removed cutout or a 4x upscale. No credits or subscription required; a free account with email verification is needed to use them. Both are in a new Cloud category in the node library, which a Settings > Interface > Display toggle can hide; rate limits and a monthly cap apply. Existing files that contain these nodes open and display their cached results as before.
  • Node search: the node library and add-node search now also match common names for the same tool from other image and compositing apps, so "flip" finds Mirror, "hue" or "saturation" finds HSB, "gaussian blur" or "motion blur" finds Blur, "unsharp mask" finds Sharpen, "green screen" finds Chroma Key, "content aware" finds Inpaint and Smart Scale, "grayscale" finds Black and White, "feather" finds Mask Refine, "stroke" finds Outline, "ramp" finds Gradient, "solid color" finds Canvas, and more. Typing a node's exact name still returns just that node.
  • Corner Pin node: source corners are now adjustable (as a percentage of the foreground image), so you can pin them onto a perspective-distorted region of a photo and flatten it into a rectangle; a Straighten button in the preview toolbar converts the destination quad to an axis-aligned rectangle matching the source proportions; a new Crop to Destination output mode emits a tight crop at the destination quad size instead of the full reference frame.
  • Scatter node: five built-in presets (Organic Field, Random Tile Grid, Seamless Texture, Ring Pattern, Spiral Pattern) set the layout and scatter parameters in one click.
  • Canvas wiring: hold Shift and drag off an output pin that already has connections to move all of its wires onto another output pin at once, rerouting them to a new source instead of pulling out a fresh wire; works with a single connection too, so you can relocate one wire to a different node.
  • Preview histogram: hovering a pixel now marks it on the histogram, with a line at the pixel's brightness tinted with the hovered color plus thin red, green, and blue lines at each channel's value; drag the top edge of the histogram strip to resize it.
  • Preview: a new Preview Resolution control (Auto / Full / 1/2 / 1/4) next to the zoom controls sets how much detail the main preview (including the single-frame batch view) draws; Auto (the default) keeps large images responsive while you are zoomed out or actively editing, and shows the source at full detail once you zoom in close, so scrubbing a parameter or panning a large photo no longer briefly pauses the editor.
  • Parameters panel: right-clicking a slider, numeric field, text field, or dropdown now offers Copy Value and Paste Value alongside Reset to Default, so you can carry a value between two nodes; Paste is greyed out when the copied text would not fit the field (for example, text into a number), and dropdowns copy and paste by their option name. Copy All / Paste All Parameters in the node gear menu do the same for every value on a node at once, in one undoable step.
  • File path parameters: right-clicking a file or folder path now offers Convert to Relative Path (stored relative to the saved project so the project stays portable when moved) and Convert to Absolute Path; the option is greyed out until the project is saved, or when the file is on a different drive than the project.
  • Drop files onto path fields: drag a file from your file explorer onto any file or folder path field in the Parameters panel to set it directly, without opening the file browser.
  • HSB node: a new Model control picks the brightness axis: HSB (the default, unchanged) scales toward vivid full-saturation color, while HSL is symmetric around mid-gray and washes toward white or black.
  • Brush tools: the size bracket keys auto-repeat when held, Shift+bracket adjusts hardness, and a cursor ring shows the soft edge while you adjust it (Paint and Mask Paint).
  • Import nodes: Image In, Image Folder, and SVG Import gain a Reload button that re-reads the file or folder from disk.
  • Reroute nodes: can now be added from the node library and the add-node menu, not only by double-clicking a wire, so you can place a routing dot before wiring it up.
  • Arrange node: a new Grid direction packs frames into a fixed number of columns, wrapping to new rows.
  • Separate node: a Name Prefix parameter sets the output frame name stem (defaults to object; an empty prefix emits just the number).
  • Export Batch: a new {color} filename token resolves to a frame's variant color as a 6-digit hex code (e.g. a020f0).
  • Status bar: a 32-bit document shows its working color space and its active display view as pills in the status bar; the display-view pill is clickable to switch views.
  • Node alignment snapping: a new Snap Search Distance setting (Settings > Interface) controls how far away a neighboring node can be and still snap into alignment while you drag, separate from Snap Strength, which sets how strongly nodes pull together.
  • Commercial license: ArcBrush stays free for personal and non-commercial work; commercial use requires a one-time ArcBrush Pro license. A first-run prompt lets you pick personal or commercial use and learn what Pro adds, an in-app purchase dialog and a Help menu ArcBrush Pro page explain and unlock it, and a 14-day free trial with no card unlocks everything to evaluate. Pro adds commercial use plus 32-bit (float) mode and high-bit-depth export, and installs from a license file that works offline.
  • First launch: you are now asked to accept the Terms of Service and Privacy Policy before the editor opens, with the full text of each shown in the prompt. This one-time prompt appears on Windows, macOS, and Linux, and only returns if the terms are updated.
Changed
  • Viewer slots: Export Image and Export Batch nodes can now be pinned to a viewer slot, showing the image being exported (Export Batch in sprite-sheet mode shows the assembled sheet).
  • Curves node: the editor now shows every channel's curve at once with the inactive channels dimmed behind the active one, draws the source image's histogram behind the grid, and displays the selected point's X and Y values; the control handles are a little smaller.
  • Levels node: the histogram now shows all color channels together instead of one at a time and sits at the top of the panel, and still updates live as you drag the sliders.
  • Histograms: the Curves, Levels, and preview histograms now draw as a smooth filled shape with a brighter top edge and light smoothing, instead of hard vertical bars, so the distribution reads more clearly.
  • Mask wiring: any node's image output can now connect to a mask input; previously some outputs were rejected with an error telling you to use Mask From Image.
  • Dropdown menus: long dropdowns now expand to fit as many items as the screen allows instead of capping at eight rows.
  • Preview: switching between soloed viewer slots of the same size now keeps your zoom and pan instead of re-fitting the view each time.
  • Update window: the release-notes pane now renders bold highlights, inline code, and clickable links, instead of showing the raw markup characters.
  • Layer node: each layer row now shows the connected node's custom name next to its title (e.g. "Pad 1 (Background)").
  • Reroute nodes: dragging a reroute now aligns it to nearby pin rows and to other reroutes, with guide lines drawn through the dots, and reroutes follow grid snapping like other nodes.
  • Noise node: seamless noise now matches the contrast and amplitude of the same noise with Seamless off; raise the new Contrast control to restore the old punchier look on existing seamless projects.
  • Separate node + Export Batch {source} token: a single-input Separate graph's {source} token now resolves to the upstream origin label (e.g. tree) instead of object_NN; {name} and {label} users are unaffected.
  • Display Color Correction: the display color-management toggle moved from Settings > Interface > Display into a new top-level Color menu in the menu bar; the setting itself is unchanged.
  • Status bar: the processing pill now also counts queued preview, thumbnail, and histogram work (shown as "Display") when it backs up, so a preview that is falling behind is visible at a glance.
  • Brush cursor: the brush outline is now a neutral, contrast-aware color that stays visible over any artwork.
  • Panel scrollbars: the side-panel scrollbars are now noticeably thinner.
  • Canvas pins: node pins are easier to grab and connect: the click target is larger, scales with zoom, and grows while dragging a wire.
  • Tooltips: reformatted app-wide for readability: option lists render as bullet points with bold names, key values are highlighted, and long tooltips wrap at a comfortable width.
Fixed
  • Opening documents: opening a project that contains several large images no longer freezes the app while it loads; the window stays responsive and images fill in as each one finishes.
  • Node groups: dragging a group that contains many connected nodes (such as a cluster of reroute dots) no longer makes the wires between them scatter and jump far outside the group; the connections now move with the group and keep their shape.
  • Large images: generating or exporting an image larger than 16384 x 16384 pixels now fails with a clear message instead of crashing or writing a corrupt or empty file; the Tile, Arrange, and Scatter nodes refuse to produce a frame beyond that size.
  • Linux: Chinese, Japanese, and Korean text now displays correctly when a system CJK font (such as Noto Sans CJK) is installed, instead of rendering as missing-character boxes.
  • Linux: signing in now persists across restarts on systems without a secret-service keyring, instead of asking you to sign in again each launch.
  • Linux: opening a project that was missing both its fonts and its input files no longer leaves the window frozen behind an invisible dialog; the missing-fonts and missing-files prompts now appear one at a time.
  • Batch preview: the batch grid and Viewer slot tiles now keep updating while you drag a slider, instead of freezing on the pre-drag image until you pause; and panning the All grid until every tile is out of view no longer triggers an error message in the Preview panel.
  • Canvas manipulators: holding a manipulator handle pressed without moving the mouse no longer reprocesses the node continuously while the drag is paused.
  • Canvas manipulators: a handle drag that ends without changing anything no longer adds an empty step to the undo history.
  • Image Folder node: selecting a node whose folder holds thousands of files, or sits on a network or cloud-synced drive, no longer freezes the app while its parameters are shown; the image count now refreshes when the folder settings change or Refresh is clicked, instead of rescanning the folder continuously.
  • Collect and Arrange nodes: batches with different frame counts now combine into one batch instead of failing with a size-mismatch error.
  • Reroute nodes: now fully transparent to channel and pin type, so a mask or single channel routed through one is no longer flattened to white; the routing dot also takes on the color of the data passing through it, so a single-channel (grayscale) signal shows the single-channel color instead of the full-color image color.
  • Sliders: holding Ctrl and clicking a slider no longer allows entering a value outside its valid range, and clicking the track just beside the handle now jumps to the clicked value instead of doing nothing.
  • Glow node: raising the threshold now fades the glow smoothly toward the top of its range, instead of an overly strong bloom just below the maximum that then cut off abruptly at the top.
  • Edge Detect, Luma Key, Trim, Displace, and Pixel Sort nodes: a freshly added node now processes with its documented default settings immediately, instead of using different values until a control was touched (Edge Detect drew an opaque black background instead of transparent).
  • Window placement: the app window now restores to a currently connected display instead of occasionally reopening off-screen after a monitor is disconnected or rearranged.
  • Linux (Wayland): hovering the ArcBrush window now keeps your system cursor theme and size instead of switching to a generic fallback cursor.
  • Tile node: a very large tiled image paged to disk no longer faults back in as a solid black frame.
  • Seamless Blend node: the preview no longer flickers between the blended and unblended image while you scrub a slider in Noise Blend mode.
  • Node groups and sticky notes: editing a group title or a sticky note's text no longer pops the edit field out into a separate floating window when the group or note is wider than the application window.
  • File > New: creating a new file now resets the node graph view to the default zoom and position instead of keeping the previous document's view.
  • Compact Parameters: indented labels (such as the Layer node's Blend and Opacity rows) are no longer clipped.
  • Compact Parameters: the panel now holds still while you work: the label column keeps its width during slider drags, so a row that a slider reveals or hides mid-drag (such as the Noise warp controls or Split Batch's Start Frame) no longer flickers or shifts the slider out from under the cursor, and selecting different Gradient color stops or changing the format on an Export Image or Export Batch node no longer nudges the panel sideways.
  • Preview histogram: the pixel color readout no longer overlaps the histogram (it now sits just above it while the histogram is shown), and switching between nodes no longer slides the histogram out and back in; it updates in place, with the slide animation reserved for showing or hiding the histogram.
  • Preview: a two-finger trackpad pan now pans the view even when a full-image manipulator is under the cursor on macOS.
  • Canvas: the ring that briefly flashes around a node when it finishes evaluating no longer draws on top of open dialog windows.
  • Gradient node: the stop color picker no longer briefly flashes open for a single frame when you select the node.
  • Keyboard: the numeric keypad's Enter key now works for the app shortcuts that already accepted the main Enter (confirming the sole Add Node search match, and Ctrl+Enter to run the graph).
  • Pattern node: the controls specific to the selected pattern type now appear under the Pattern section of the panel instead of under Color.
  • Viewer slots: a viewer grid cell now shows its node's custom name when the node has been renamed, instead of always showing the node type.
  • Export Image and Export Batch nodes: when an export finishes while a different export node is selected, its success or error message no longer goes missing or lands on the wrong node; it now appears on the node that ran the export the next time that node is selected, and a successful export is correctly remembered as up to date.
  • Remove Background node: a freshly added node now uses its documented default model (Bria RMBG 2.0) instead of running the rembg model until the Model control was touched.
Removed
  • Removed the cloud AI image generation features (Text to Image and Image Edit nodes). Files that use those nodes still open and display their existing results; creating new AI-generated images is no longer available.

1.4.0

Added
  • Scatter node: places many transformed copies of one or more stamp images across a canvas in Area (jittered-grid) or Circular (rings/spiral) layout, with per-instance random scale, rotation, opacity, and flip; Sequential or Random stamp cycling; an optional density mask whose grayscale value sets each instance's keep probability; 18 blend modes; z-order by scale, sequence, or random; edge wrap for seamless tiling; and a deterministic seed. A canvas manipulator sets the region (Area) or center and radius (Circular). Each stamp slot accepts a single image or a whole batch (frames cycle as stamps), while a batch on the background pin produces one scatter per variant.
  • Shape node: an Anti-aliasing toggle (turn it off for hard, pixel-exact edges) plus pixel-perfect tile coverage, so tiled shapes no longer show seams or fringing.
  • Manipulator constraints and snapping: hold Shift while dragging a preview manipulator to constrain it (axis-lock, proportional/aspect, 15° rotation) and Ctrl to snap it onto the image frame's edges, corners, center, or thirds. On the Paint and MaskPaint nodes, Shift draws a straight horizontal or vertical stroke.
  • Compact Parameters: a density mode (now on by default, View > Compact Parameters) that puts each parameter's label and control on one line to shorten the Parameters panel.
  • Viewer Slots: pin up to nine node outputs to a live Preview grid — hover a node and press 1-9 — each with its own manipulator; slots are saved with the project and undoable.
  • Embedded recipes: an opt-in Embed Recipe option on Export Image and Export Batch stores a privacy-sanitized copy of the whole graph inside exported PNG, WebP, JPEG, and TIFF files, reopenable by dropping the image back onto ArcBrush or via File > Open Recipe from Image.
  • Missing Files dialog: opening a project whose input files (Image In, SVG Import, Image Folder) are missing now lists them so you know what to relink, instead of leaving silent empty nodes.
  • Parameter presets: every node's Parameters panel gains a gear menu to save, load, reset, and manage named presets for that node type; loading applies as a single undoable change.
  • Palette from Image node: an Export Palette button saves the extracted colors to a .gpl, .ase, or .pal file, matching the other palette nodes.
  • Palette node: drag a swatch row's grip handle to reorder the colors, as a single undoable step.
  • Separate node: splits a single image's separate objects into a batch of clean per-object cutouts (detected by transparency, a corner color, a chosen color, or a mask), with size and count limits, padding, and five sort orders, ready to feed Scatter or Export Batch.
  • Export Batch: name the assembled sprite sheet and its JSON with a template (node, graph, date, time, quality, compression, and a new {count} token) instead of always getting nodename_sheet.
Changed
  • Dialogs now have a keyboard default button: when a dialog opens, its safe action (OK / Cancel / Save / Add Suffix — never a destructive or credit-spending one) is outlined and confirms with Enter or Space, with Left/Right and Tab moving the selection and Escape dismissing. The sign-in code and feedback message fields also take focus on open, and the sign-in code submits on Enter.
  • View menu: the quick visibility toggles moved here from Settings — Status Bar, Display, and Manipulator Snapping submenus, plus Quick-Lock Preview and Compact Parameters; the manipulator snap-strength slider was dropped for a fixed default, and Settings keeps the configuration.
  • The right-hand panel is renamed from Properties to Parameters; its behavior and saved layouts are unchanged.
  • In-app updates: Linux now downloads, verifies, installs, and relaunches AppImage updates in-app, matching Windows and macOS, instead of only opening the download page.
  • Linux: Open, Save, and import dialogs now use the desktop's native file chooser (via the standard portal) when available, falling back to zenity or kdialog.
  • Preview panel: an empty preview now shows the reason ("File not found.", "Upstream failed", or "No output") instead of a blank.
  • Unsaved-changes dialog: the buttons are reordered Save / Don't Save / Cancel to match convention; the actions are unchanged and Escape still cancels.
  • Export Batch: the Output Files list now shows the real deduplicated names, and the node's own Export button warns before overwriting with the same Add Suffix / Overwrite / Skip choice as Export Selected.
  • Pixel Sort node: the Advanced parameters are now always visible instead of hidden behind a collapsed header.
  • UI text renders noticeably sharper by default, with a new Text Hinting setting (Crisp / Light / None) under Settings > Interface > Display.
  • Text node: moving the text now updates much faster, especially rotated text on a large canvas, since the rendered text is cached and only repositioned instead of re-rendered on every drag.
Fixed
  • AI batch confirmation dialog: pressing Escape now cancels and closes it on every AI node, matching the rest of the app's dialogs.
  • Closing the app during an AI generation no longer freezes the window or loses the finished image; it waits for the generation to finish, then runs the normal save prompt.
  • Collect and Layer nodes: dragging a frame or layer downward now drops it at the insertion line with its name attached, instead of landing one slot too high and desyncing the names.
  • A panel hidden from the Window menu and shown again after restarting now reappears where you had docked it instead of jumping to its default slot.
  • Linux (Wayland): ArcBrush no longer double-corrects display color (the compositor already manages it); the Display Color Management setting is shown disabled there with an explanation.
  • AI nodes: a batch of named frames now keeps its frame names after a cache restore (re-evaluation or reopening) instead of reverting to frame_0, frame_1; results cached before this fix show generic names until the node is run once more.
  • Linux (Wayland): UI text is now crisp at fractional display scales (such as 125% or 145%); integer scales were already crisp.
  • Pattern node: the preview no longer flashes the transparency checkerboard while scrubbing frames or dragging a parameter.
  • Preview "All" view: per-frame labels no longer overflow into overlapping text on large batches; they hide once cells get too small to fit them.
  • Light nodes (such as Pattern and Noise) now update the preview live while you drag a slider, instead of freezing until you release; the freeze was most noticeable on high-refresh-rate (120Hz+) displays.

1.3.1

Added
  • UI motion: subtle, opt-out animation across the app: the canvas glides when framing or zooming to nodes, new nodes fade in and deleted ones leave a brief ghost, the Preview and canvas share one eased zoom, evaluations and new wires pulse, and modals, the search bar, tooltips, and badges ease in. A new Animations toggle (Settings > Interface, on by default) turns it all off.
  • Pixel Sort node: reorder pixels along rows, columns, an arbitrary angle, or radial spokes and rings, splitting each line into spans by brightness band, random length, edges, or the whole line for glitch and drip looks, with one-click presets, six sort keys (luminance, lightness, value, saturation, hue, alpha), and a mask that confines the sort inside the selected region.
  • Canvas and Shape nodes: accept an optional Size Ref input to inherit width and height from a connected image or mask, matching the Gradient / Noise / Pattern generators.
  • Shape node: an on-canvas manipulator to move, scale, and rotate the shape directly in the preview, plus a Lock Center option (on by default) that keeps the shape centered when the output size or Size Ref changes.
  • Export Image and Export Batch: new {label} filename token that resolves to a node's custom label, falling back to the source image name when no custom label is set.
  • Export Image and Export Batch: new {time}, {quality}, and {compression} filename tokens. {time} inserts the export time as HH-MM-SS (pairs with {date} for a sortable timestamp), {quality} the JPEG or WebP quality, and {compression} the format's compression setting (PNG level, TGA RLE, WebP lossy or lossless, or TIFF codec); {quality} and {compression} resolve to nothing for formats that have no such setting.
  • Collect node: applying a custom label to a connected node (in the Properties panel) now fills in that frame's name by default, so it carries through to exported filenames.
  • Quantize node: optional Palette input snaps each pixel to the nearest color in a connected palette (perceptual match), mirroring Dither; with no palette connected, the k-means behavior is unchanged.
  • Export Batch sprite-sheet preview: a Show Outlines option draws each packed sprite's boundary on the assembled sheet, matching the Sprite Sheet node's toggle.
Changed
  • Notifications (toasts) now stack instead of overwriting each other, are color-coded by severity with icons, animate in and out, pause when hovered, and merge rapid duplicate messages into one card with a count badge.
  • Export Selected / Export All: the export warning now checks the actual files being written (including every batch frame) instead of comparing raw path settings, also warns when a file already exists on disk, and offers a real choice: Add Suffix writes conflicting files under a numbered name so nothing is overwritten, Overwrite keeps today's behavior, and Skip leaves files already on disk untouched.
  • In-app updates: when a new version is available, ArcBrush can now download, verify, install, and relaunch itself without leaving the app on Windows and macOS, instead of only opening the download page in your browser; Linux still uses the browser download.
  • Shape node: moving, scaling, or rotating a shape now updates much faster, especially a small shape on a large canvas, since only the area the shape covers is redrawn.
  • Shape node: rotating a Polygon or Star (with Lock Shape to Output on) now keeps a constant size instead of growing and shrinking as it turns; like Circle, these shapes are now sized to fit within a circle.
  • Status bar: on unified-memory systems (such as AMD APUs, where the GPU shares system RAM) the GPU memory is now shown as a "shared" pool with the GPU's real usage, instead of a misleading tiny dedicated-VRAM figure or nothing at all.
  • Status bar: the memory readout is now consistent across RAM, image cache, and VRAM, using matching MB/GB units and showing RAM and VRAM each as used of total; the former "Cache" entry is renamed "Image Cache" with a clearer icon and tooltips, making it clear that cache lives in RAM (disk-spilled batch frames remain the separate "Spill" indicator).
  • Preview panel: scrubbing between frames of a large batch, or opening a very large single image, no longer briefly stutters; the image now loads in the background while the previously shown one stays on screen until it is ready.
  • Resize node: the Scale X/Y percentage now goes up to 800% (raised from 400%), still capped at the 8192px maximum output size.
Fixed
  • Undo/redo history now labels deleting a connected node as "delete " (or "delete N nodes") instead of the misleading "delete connection (+1 more)".
  • Export Image: an absolute output path that uses filename tokens (such as C:\Exports\hero_{date}.png) is now written to exactly that location; previously the drive prefix was mangled (C: became C_) and the file silently landed in a look-alike folder tree next to the project file.
  • Fixed undo/redo glitches where redoing past the creation of a node, group, or sticky note could crash the canvas, scatter a group's nodes, or lose edits made afterward.
  • Export Image: multi-node export labels and Reveal in Explorer now use the real filename when the output path uses template tokens like {source}.
  • Export filenames now keep underscores exactly as typed, including a trailing underscore or several in a row, instead of merging or removing them.
  • Parameters panel: dragging a slider's value ladder with the middle mouse button no longer scrolls the panel at the same time.
  • Parameters panel: the node name and category badge in the header no longer overlap when the panel is narrow; the badge drops out and the name clips to an ellipsis, with the full name and category shown on hover.
  • AI nodes fed by a batch no longer falsely show "Input changed" every time a saved project is reopened.
  • AI nodes fed by a multi-frame batch now process every frame on a freshly opened project, not just the first.
  • Double-clicking a .arcb file while ArcBrush is already running now opens it in the existing window instead of doing nothing (Windows and Linux).
  • Tooltips across the app (including inside nodes, on filmstrip frames, palette swatches, and node-graph pins) now respect the Tooltip Delay setting and the Show Tooltips toggle instead of appearing instantly.
  • Tooltips shown inside nodes no longer look cramped; all tooltips now use the same padding as the rest of the app.
  • Shape node: an Outside or Center stroke is no longer cut off at the edge when the shape is locked to the output size, or tiled at 100%; the shape is inset so the whole stroke stays visible.
  • Node thumbnails on the canvas no longer flicker to a gray placeholder while you drag a slider or an on-canvas manipulator that re-renders the node continuously.
  • Preview panel: large batches in the "All" view can now be zoomed out below 6% with the mouse wheel, trackpad, keyboard, and zoom buttons so the whole grid stays visible; the minimum zoom was previously locked at 6%, and zooming in from the Fit view snapped straight to it.
  • Linux: pasting an image or files from the clipboard into the node graph now works in KDE Plasma Wayland sessions.
  • Linux: the status bar VRAM reading now reports the GPU ArcBrush actually renders on. On a machine with more than one GPU it could previously show an unrelated device's memory or a tiny wrong figure such as 15/512 MB; NVIDIA cards now read through the driver's own reporting, AMD and Intel cards read the matching device, and the reading hides itself rather than show a wrong number when the correct device cannot be measured.
  • Preview panel: viewing a large batch no longer uses far more video memory than needed or briefly freezes; the grid now draws downscaled thumbnails of only the visible frames (still crisp as you zoom in) instead of a full-resolution copy of every frame on the GPU.
  • Export Image / Export Batch: a successful export now marks the project as having unsaved changes, so after reopening a project you exported but did not re-save, the export node no longer wrongly shows "Input changed, export to update".
  • Editing a node's custom label in the Properties panel and then selecting another node no longer copies the in-progress label onto the newly selected node.
  • Eyedropper now reports the image's true pixel colors (and the Paint color pick samples the document), so picks are correct on monitors with a non-sRGB color profile.
  • Using the eyedropper over a color swatch no longer also opens that swatch's color picker.
  • Paint node: painting a color over a matching background no longer leaves a faint one-shade-lighter ring along the stroke edge.

1.3.0

Added
  • Dockable panels: drag panel title bars to rearrange the layout, save it between sessions, and lock everything in place via Window > Lock Layout.
  • Pop any panel out into its own OS window for multi-monitor use, with per-panel Always on Top toggles.
  • Window menu lists every panel with show/hide toggles, plus Reset Layout and Lock Layout entries.
  • Ctrl+Shift+L, Ctrl+Shift+P, and Ctrl+Shift+I toggle the Library, Preview, and Properties panels; each shortcut is shown next to its Window menu entry.
  • Workspace presets (Window > Workspace): Default, Big Graph, and Vertical built-ins, plus Save Workspace As... and Manage Workspaces... for custom layouts.
  • Application Log and Generation Log are now dockable panels.
  • Windows: dragging an image directly out of a Chrome, Edge, Brave, or Vivaldi tab into the canvas now creates an Image In node; unsupported formats surface a toast instead of failing silently.
  • Per-monitor DPI scaling: text and UI chrome rescale cleanly when a popped-out panel moves between mixed-DPI displays.
  • Drop a node onto a wire to splice it in: the wire under the cursor highlights and both halves rewire as a single undo step.
  • Shake a node while dragging to disconnect every wire from it; upstream and downstream are bridged automatically where possible.
  • Node graph snapping: dragging a node aligns its edges to nearby nodes with dashed guide lines and snaps it into evenly-spaced runs marked by double-arrow badges; hold Ctrl to move freely.
  • Ctrl+Plus / Ctrl+Equal / Ctrl+Minus (numpad too) zoom shortcuts on the Node Graph and Preview, with matching View menu entries.
  • View > Hide Thumbnails (Lazy Eval) toggle: hides every on-canvas thumbnail and only evaluates the selected node's chain, with a status-bar indicator.
  • Selected node is now saved with the project and restored on reopen.
  • Settings > Privacy shows a Machine ID preview; the install ID used for anonymous telemetry is now stable across settings wipes.
  • Help > Join Discord opens the ArcBrush Discord server in your browser.
  • Ctrl+R swaps two selected nodes, trading positions and rewiring connections by pin name.
  • Arrange node accepts any number of input images via a variable-count pin array.
  • Settings > Display: Wire Curving slider controls how much Curved wires bend (range 0 to 10, default 4).
  • Hold Q on the Node Graph to bring every wire on top of the nodes in a high-contrast overlay for tracing connections.
  • Layer node: composite any number of inputs as a layer stack with per-layer blend mode, opacity, and visibility; drag rows in Properties to physically reorder the wires on the canvas.
  • Film Grain node: per-channel analog film grain with eight stock presets (Kodak Vision3 250D/500T, Portra 400, Tri-X 400, Cinestill 800T, Fuji Eterna 250, Ilford HP5+, plus Custom) and an optional mask.
  • Halftone node: dot screening with five spot shapes (Round / Square / Diamond / Line / Ellipse), three color modes (Grayscale / RGB / CMYK), eight presets, and an optional mask.
  • Multi-node connect: with several nodes selected, drag from one of their output pins onto an array input to fan the whole selection into consecutive pins, or onto empty canvas to add a new Arrange / Layer / Collect node already wired to every selected output.
  • New nodes get a unique number appended to their name on creation (e.g. Channel Merge 1, Channel Merge 2); custom labels remain optional and counters survive save and reload.
  • Right-click a file-referencing node (Image In, SVG Import, Export Image, Export Batch) for a Reveal in Explorer / Finder entry that opens your OS file manager.
  • Transform, Text, Mesh Warp, and Corner Pin nodes expose Blend Mode and Opacity controls when Output Mode is set to Composite.
  • View > Zoom to Selected (F hotkey) frames the selected nodes, groups, and sticky notes; with nothing selected it fits the whole graph.
  • AI Remove Background: Ideogram (illustrations / art / typography) and Pixelcut (product / studio photography) engines, both at the same flat 1 credit per image.
  • AI Text to Image: new GPT Image 2 tier with six output sizes (1024x768 to 3840x2160) and three quality levels (Low / Medium / High).
  • AI Image Edit: new GPT Image 2 Edit tier with Auto (match input) plus the same six size presets and three quality levels.
  • AI Image Edit: FLUX.2 Pro and FLUX.2 Max expose an Output Size combo (Auto plus six presets) to control per-megapixel cost.
  • Batch processing: wire a batch output into any image-consuming node and the graph evaluates every frame through it automatically. Build pipelines that process an entire folder of images through chains of filters, color corrections, and exports in one pass.
  • Insert any filter (Blur, Levels, Sharpen, Posterize, Drop Shadow, etc.) between Palette Remap and Export Batch; each variant flows through the filter and re-bundles automatically. AI nodes still gate behind their Generate button.
  • Export Batch node body shows a live file-write progress bar while a run is in flight, so progress is visible without keeping the parameter panel focused on the node.
  • Package as Zip success dialog has a Reveal in Explorer / Finder button next to OK that opens your OS file manager with the .zip selected.
  • Reroute node: double-click any wire to insert a compact routing dot that passes the signal through unchanged. Chain multiple reroute dots for cleaner paths, and fan out from one reroute output to several selected nodes at once.
  • Batch processing shows a live progress bar on each node body during evaluation, displaying frame count and completion status.
  • AI batch confirmation: when AI nodes receive batch input, a confirmation modal shows total cost (with cache hits pre-deducted) before dispatching, with per-frame caching and one-click retry for failed frames.
  • Collect node: bundles any number of IMAGE inputs into a single batch output with per-frame names and drag-to-reorder.
  • Image Folder node: loads all images from a folder as a batch, with file type filtering, recursive scan, sort by name/date/size, and a frame limit for testing.
  • Input pins fed by a batch source show the frame count on the pin label (e.g. "image (x4)").
  • Split Batch node: decompose a batch back into individual images or sub-batches with four modes (Individual outputs, equal Chunks, contiguous Slice, or glob-pattern Filter routing). Output pins rebuild dynamically as you switch modes.
  • Sprite Sheet and Export Batch: trim transparency, extrude edge pixels (1-8 px) to prevent texture bleeding, and constrain output dimensions to Power of Two, Multiple of 4, or Word Aligned.
  • Sprite Sheet: Show Outlines toggle draws colored sprite bounds in the preview panel, and the output size label appears in the parameters panel.
  • Export Batch: configurable filename template with tokens for frame name, source label, index, dimensions, date, node label, and graph name. Live preview of the resolved filename below the template field.
  • Export Image: output path field supports the same filename tokens; hovering shows the expanded path in a tooltip.
  • Drag a folder from the OS file explorer onto the node graph canvas to create an Image Folder node with the folder path pre-filled.
  • Optional input pins render as hollow shapes to distinguish them from required pins at a glance.
  • Settings > Performance: batch concurrency cap and memory ceiling sliders control how many batch frames run in parallel and when frames spill to disk. The memory ceiling defaults to half of your installed RAM and the slider scales to your machine, so large-memory systems are not throttled and low-memory systems are not overcommitted.
  • Chromatic Aberration node: per-channel radial dispersion simulating lens chromatic aberration, with Radial (vignette-style center falloff) and Uniform (fixed-angle shift) modes, and a Shift/Smear method toggle for clean separation or motion-blur-like channel streaking.
  • Batch preview: Magic Wand, Vignette, Gradient, and Transform / Crop / Smart Scale handles now work while previewing a single frame of a batch, track whichever frame you are viewing, and apply edits across every frame.
  • Smart Scale: target width and height accept px or % units; % scales each frame to a percentage of its own size, so a varying-size batch scales proportionally instead of snapping to one fixed pixel count.
  • Pixel sliders (Crop, Smart Scale, Offset, Pad, and the like) turn the px toggle amber when a fixed pixel value will apply per-frame across a varying-size batch, hinting that % scales each frame proportionally.
  • Resize node: with a size_ref connected, match its width, its height, or both; matching one axis keeps the source aspect ratio.
  • Arrange Nodes menu (Edit > Arrange Nodes, also on the canvas right-click menu): Distribute spreads the selected nodes with equal spacing while keeping the outer nodes in place; Pack reflows the whole selection into a tidy line toward the left, right, top, or bottom with a constant gap (wider horizontally than vertically, to leave room for wires). Both also line the nodes up straight. Shortcuts: Ctrl+Shift+H and Ctrl+Shift+V distribute, Ctrl+Shift+Arrow packs toward that direction.
Changed
  • Settings > Interface: canvas snapping is now one Snap Mode selector (Snap to Nodes / Snap to Grid / None) with Snap to Nodes the default, so grid snapping is no longer on by default.
  • Align Horizontally and Align Vertically now live under the new Edit > Arrange Nodes menu.
  • Zoom to Fit moved from F to Ctrl+0 / Cmd+0; View menu labels updated to match.
  • Shake to disconnect now works with any number of selected nodes: drag a multi-node selection and shake to cut every wire crossing the selection boundary while preserving the internal connections.
  • Dragging a mixed selection of nodes, groups, and sticky notes now moves every selected item together as a single undo step, matching how alt+drag duplication already worked.
  • Crop, Smart Scale, Corner Pin, and Transform preview handles have larger grab zones, so handles flush against the panel edge are easier to land on.
  • Crop and Smart Scale: dragging a handle leaves the preview at its current zoom instead of refitting every frame, so the handles stop moving under the cursor as the output resizes. Press the toolbar Fit button to refit when done.
  • Panel layout is now built on a docking system instead of fixed left/middle/right columns; first launch after upgrade rebuilds to the new default.
  • Panel tabs read as Library, Node Graph, Preview, and Properties (previously the title bars were blank).
  • Menu items throughout the app align icons, labels, shortcuts, and check marks in columns.
  • Workspace and layout preset names now allow up to 128 bytes (was 64); built-in names (Default, Big Graph, Vertical) are reserved.
  • Reset Layout confirmation dialog closes with the Escape key, matching the rest of the app's modals.
  • Preview panel: switching to a different node while in Fit mode re-fits the new image and re-centers the pan instead of snapping to a fixed zoom stop.
  • Curved wires no longer overshoot on shallow-angle connections; backward connections still loop smoothly, and the new Wire Curving slider tunes bend strength.
  • Preview Locked badge now shows the locked node's name and updates live as you rename it.
  • Node Graph minimum zoom dropped from 10% to 5% so very large graphs frame in one view.
  • AI Text to Image and AI Image Edit: removed the Safety Tolerance slider; underlying value is set to the most permissive supported by each model.
  • AI Text to Image and AI Image Edit: model info card no longer duplicates the cost; the credit cost is shown only above the Generate / Edit button.
  • AI nodes: when your balance is short, the action button reads "Need X more credits to Generate / Edit / Run" and opens the purchase flow on click.
  • AI Text to Image and AI Image Edit: tier picker descriptions now match what each model is actually good at.
  • AI Remove Background: each entry in the Model combo carries a parenthetical hint (rembg fastest; Bria RMBG 2.0 default; Ideogram and Pixelcut high quality).
  • Dialog windows throughout the app share consistent padding, button sizing, icons, button order (Cancel left / affirmative right), Esc-to-dismiss, and stable width across every modal.
  • Color Balance and Black and White nodes: the gradient color sliders now support the middle-mouse ladder for fine adjustment, matching the rest of the app's sliders.
  • Palette Remap processes all palette slots in parallel, so batches with many variants finish faster on multi-core machines.
  • Batch filmstrip thumbnails render at their actual pixel size relative to the largest frame, so a 16x16 sprite appears smaller than a 64x64 in the same batch.
  • Batch node bodies show a dimension summary below the filmstrip (e.g. "512 x 512, RGBA, x47" or "mixed sizes, RGBA, x47") with an amber error count when frames have failed.
  • Batches with more than 128 frames show an ellipsis tile in the filmstrip instead of rendering sub-pixel cells.
  • Clicking a frame in the Preview panel highlights the corresponding filmstrip cell on the node body.
  • Preview panel tab strip for non-palette batches shows source labels in neutral gray instead of blank colored buttons.
  • Sprite Sheet packs mixed-size sprites into a near-square sheet using MaxRects bin packing instead of wasting space with a uniform grid. Existing uniform-size batches with an explicit column count produce the same layout as before.
  • Sprite Sheet JSON manifest matches the TexturePacker JSON Hash format for direct import into game engines.
  • Node body thumbnails, Preview channel view switches, and histogram computation run asynchronously, keeping the interface responsive during large batch processing.
  • Performance: eliminated a full-image memory copy at the end of every node evaluation, reducing allocation by hundreds of megabytes on large graphs.
  • Performance: Shape node grid rendering is parallelized across CPU cores for faster evaluation on large canvases.
  • UI elements throughout the app scale correctly at 125%, 150%, and 200% system DPI instead of rendering at fixed pixel sizes.
  • Layer node per-layer controls are split into a two-row card layout: identity row (drag, visibility, name, disconnect) above a property row (blend mode, opacity), so layer names are no longer truncated at narrow panel widths.
  • Node groups automatically resize to keep their contents enclosed, growing and shrinking as the nodes inside them change size and sliding neighbouring groups aside instead of overlapping.
Fixed
  • Image In: the Large Image warning now respects the node's Custom Size setting, so a 5000x5000 source resized to 512x512 on import no longer shows the warning.
  • Crop, Smart Scale, Corner Pin, and Transform manipulator handles stay inert when the node is bypassed instead of letting you drag invisible parameters.
  • Ctrl+F node-search popup hides and resets its matches when you open a new file or start a new project, instead of carrying over stale results.
  • Settings file is written atomically; a crash or power loss during save no longer wipes preferences.
  • A single malformed entry in recent_files or favorites inside settings.json no longer discards every other setting.
  • Out-of-range window positions in a corrupt settings file fall back to OS default placement instead of putting the window off-screen.
  • Out-of-range zoom values in a project file are clamped to a safe range, and non-finite values fall back to 1:1.
  • Pasting a node from a version with unrecognized types now drops the unknowns with a toast instead of silently creating wrong-shape Canvas nodes.
  • AI Text to Image FLUX size presets: "1920x1080" and "1080x1920" labels now match what is actually requested.
  • Linux: dragging a window edge to resize on Wayland feels responsive again (the canvas now repaints at the end of the drag instead of live).
  • Linux: ArcBrush's app icon now appears in the taskbar, dock, and Activities overview on Wayland desktops (GNOME, KDE, Cosmic, Sway, niri).
  • Linux: opening a file dialog no longer triggers a "ArcBrush is not responding" prompt.
  • Linux: GPU acceleration turns on when OpenCL is available on your system; ArcBrush re-probes for OpenCL each launch when previously unavailable.
  • Paint node: stacking soft brush strokes no longer produces concentric rings of unrelated colors at iso-alpha contours.
  • Opening or creating a project no longer carries thumbnails or selection state over from the previously open project.
  • Drop-on-wire splice and the Y-key wire cutter now hit-test against the visible wire path when Wire Style is Right Angle.
  • 16-bit-per-channel TIFF, 16-bit WebP, and floating-point TIFF files now decode correctly instead of loading as solid white blocks.
  • Adding a node and immediately setting its initial values (Image In file path, palette slot colors, Canvas dimensions) is now part of the same undo step.
  • Changing UI Scale in Settings is now undoable; Ctrl+Z after a scale change restores the previous node positions and group bounds.
  • AI generations fail fast on a misconfigured proxy URL instead of stalling before reporting the error.
  • Noise node: scrubbing parameter sliders no longer leaves rectangular transparency bands through the preview, and previews refresh faster while scrubbing.
  • Shift+click on a sticky note body or resize handle, or a group's resize handle, no longer clears the selected nodes on the canvas.
  • Deleting an AI node while its generation is still queued on the server no longer deducts credits; deletions after the run has actually started still bill the run that was already in progress.
  • Settings > Performance: turning off GPU Acceleration now affects the running session; previously the toggle was silently ignored by worker threads, so older laptop GPUs that occasionally tripped an OpenCL error couldn't be worked around by disabling it.
  • Export Image no longer blocks the UI while writing the file to disk.
  • Clicking "Run" on an AI node while upstream is still evaluating no longer silently fails; the run is deferred until upstream completes.
  • Image In and SVG Import no longer crash on Windows when the file path contains CJK, emoji, or other non-ASCII characters.
  • Settings file save no longer crashes if the target path is locked by another process.
  • Stale recent file entries are pruned on startup instead of accumulating dead entries in the File menu.
  • Opening a malformed .arcb file skips bad entries gracefully instead of aborting the entire load.
  • Resize and Pad: wiring only the size_ref pin no longer passes the reference image through; the nodes now require an image input.
  • Linux Wayland: a file or image dropped onto the canvas now creates the node under the cursor instead of at a stale position.
  • Dropping several files onto the canvas in one drop is now a single undo step, instead of one undo per file.
Known issues
  • Linux Wayland: pop-out into a separate OS window is disabled because the protocol does not yet provide cross-display window drag; X11 (including XWayland) and Windows / macOS still support pop-out.
  • macOS: a popped-out panel does not follow you when you switch Spaces in Mission Control with "Displays have separate Spaces" enabled; use the Window menu to recall the panel.

1.2.0

Added
  • Settings > Network: configure HTTP proxy (Direct / Auto-detect / Manual) with Basic / NTLM / Negotiate auth and a custom CA bundle for corporate or restricted networks.
  • Settings > Network > Test connection: 4-step probe (resolve / TCP / TLS / HTTP) with per-failure tips and a Copy diagnostics button.
  • First-run banner appears when ArcBrush cannot reach its API server during startup, with a Configure network button.
  • Linux: Settings > Interface > UI Scale shows the detected system scale beneath the slider, plus an Auto button.
  • Blur node: Radial (rotational smear) and Zoom (radial smear toward / away from a center) blur types with center-point pickers.
  • Transform node: Pivot X/Y parameters set the anchor point for rotation and scale.
  • Preview Locked banner appears above the locked node in the graph.
  • Quick-Lock mode (Settings > General, on by default): double-click a node to lock the preview to it; double-click empty canvas to unlock.
  • Settings dialog: each tab has a help icon that opens the matching online documentation.
  • Gradient and Gradient Map: Interpolation dropdown with seven modes (RGB, Linear sRGB, OKLab, OKLCh, HSV, Kubelka-Munk, Constant), plus a Hue Path control for HSV and OKLCh.
  • Palette From Gradient node (Color category): generate a palette by sampling colors from an embedded gradient with editable swatch names.
  • Linux / macOS: file path fields accept and remember ~/... shorthand for paths inside your home folder.
  • High Pass node (Filter category): isolate detail by subtracting a blurred copy, with Per-channel and Luminance modes and an optional mask input.
  • Node Library: Favorites section at the top of the panel, populated by a star button on each node's Properties panel header.
  • Settings dialog: right-click any control to reset it to its default value.
Changed
  • Gradient and Gradient Map presets are now a dropdown with live previews of 16 curated gradients.
  • Canvas node is now grouped under the Generator category in the Node Library panel instead of Inputs.
  • Preview lock border and badge are now orange (was red), and the badge text reads "Preview Locked" (was "Locked").
  • Settings dialog: most rows are now a single line with explanatory subtext moved into hover tooltips.
  • AI nodes: when a generation fails, the node body and Properties panel now show the actual reason from the server instead of a generic message.
  • Opening a project saved with a newer ArcBrush shows the saving app's version in the upgrade-required dialog; unknown node types now route to the same dialog instead of being silently dropped.
  • Tile node: mismatched alpha input dimensions now produce a warning and continue with the image tile alone instead of silently dropping the alpha.
Fixed
  • Save dialogs: changing the Save as type dropdown updates the file name's extension to match the chosen file type (Windows).
  • Gradient Map: stop transparency now affects the output; the previous Preserve Alpha checkbox is replaced by an Alpha dropdown (Preserve / Multiply / Replace).
  • Purchase Credits no longer opens a "not yet available" dialog when the API server is unreachable; a toast explains the connection issue.
  • Right-clicking a text field in Settings now shows a Cut / Copy / Paste menu instead of closing the dialog.
  • Linux: ArcBrush no longer renders with a tiny UI on Wayland desktops that use high-DPI display scaling.
  • Windows: black window or frozen interface on systems with Intel UHD or Iris integrated graphics, with a [gl] compatibility_profile escape hatch for stubborn drivers.
  • Manipulator handles for Transform, Crop, and Smart Scale now line up with the input image immediately after opening a saved project.
  • Linux: dragging a window edge to resize on Wayland desktops now repaints the canvas live during the drag.
  • Linux: dragging an image from a web browser into the canvas now creates a working Image In node in many more cases (Firefox / LibreWolf, Google Images, hosts that block non-browser requests).
  • Linux: the eyedropper button on color pickers now samples the actual color under the cursor on Wayland desktops.
  • Eyedropper picks now apply the color from exactly the pixel under the cursor at the moment of the click.
  • Linux: sliders in Settings > Defaults no longer feel sticky during a drag.
  • AI nodes: clicking Generate after a failed generation now correctly re-runs the request instead of staying stuck on "Waiting in queue...".
  • Mesh Warp: Nearest interpolation no longer produces salt-and-pepper sampling noise across the warped region.
  • Mesh Warp: stray colored dots no longer appear at mesh edges in Nearest mode.
  • Mesh Warp: forward-scatter rasterizer no longer produces transient flicker at cell seams and folded warps.
  • Mask Refine: feathering an alpha mask no longer produces a dark halo around opaque edges; Dilate / Close / Gradient / Black Hat also stop turning newly-opaque pixels black on RGBA inputs.
  • AI nodes: changing a parameter or deleting the node while a generation is streaming now cancels the network request immediately.
  • Y-key wire cutter now commits the cut whether you release the Y key before or after the mouse button.
  • Tile node: the alpha input pin now actually contributes to the output.

1.1.0

Added
  • File > Package as .zip... bundles the current project and every referenced file (images, fonts, AI outputs) into a single shareable archive.
  • Channel Split node (Color category): split an RGBA image into four single-channel image outputs (R, G, B, A).
  • Channel Merge node (Color category): combine up to four single-channel image inputs into one RGBA image with per-channel Zero / One / Custom fill.
  • AI nodes show an "Insufficient Credits" dialog with Cancel and Purchase Credits options when your balance is below the cost.
  • Composite node: hovering a Blend Mode in the dropdown live-previews that mode on the canvas.
  • Group context menu: Select All Nodes, plus Bypass Group / Enable Group toggles every contained node at once.
  • Settings > Interface: Color Picker option to switch every color picker between Hue Bar (default) and Hue Wheel.
Changed
  • Gradient and Gradient Map editors: the per-stop eyedropper button now reads "Pick Color" with a clearer tooltip.
  • Group and sticky-note resize handles show the diagonal cursor that matches each corner's orientation.
  • Export Image: picking an explicit Format updates the output path's extension to match (preserving .jpeg / .tiff if typed).
Fixed
  • Windows: double-clicking a .arcb file in Explorer now opens that file (including paths with accented or non-Latin characters).
  • Dragging an image from a browser into the canvas no longer creates an Image In node that breaks after the project is reopened; drops are copied into the project's cache.
  • Re-enabling a previously bypassed AI node restores the last generated image from the project's cache instead of leaving the bypass passthrough output.
  • Exporting an image to WebP no longer fails with "WebP encode failed"; both lossy and lossless WebP output now write correctly.

1.0.3

Added
  • Eyedropper button on every gradient stop in the Gradient and Gradient Map editors.
Changed
  • Application Log window opens at a wider default size so the table is readable without resizing.
Fixed
  • Windows: laptops with hybrid graphics (NVIDIA Optimus, AMD PowerXpress) no longer launch into a black window; the app requests the dedicated GPU at startup.
  • The per-file AI spend total now survives Save As and file renames.
  • Curves node: the endpoint control points at (0, 0) and (255, 255) are now clickable from anywhere within their visible disc.
  • Gradient and Gradient Map editors: stops at position 0 and 1 can now be clicked and dragged from anywhere within their handle, including past the bar edge.
  • Polar Remap: a newly created node now produces output that matches the Mode dropdown selection.

1.0.2

Added
  • Non-Latin filenames and text (Chinese, Japanese, Korean, Cyrillic, Greek, Hebrew, etc.) now render correctly throughout the app instead of showing as question marks.
Fixed
  • Mac: filenames and paths with non-Latin characters no longer render with gap-spaced characters or floating accent marks in the Recent Files menu, window title, and tooltips.
  • Mac: pasting non-Latin text from the clipboard into any input field no longer renders with gap-spaced characters or floating accents.

1.0.1

Fixed
  • File paths with accented characters, non-Latin scripts, or folder names from non-English Windows installs now load and save correctly instead of failing with a misleading "out of memory" error.
  • Drag-and-drop from a folder whose path contains non-ASCII characters now opens the file correctly instead of showing "File not found".
  • An unexpected error during a frame now shows a clear "Unexpected Error" dialog with the underlying message instead of always reporting out-of-memory.

1.0.0

Initial Public Release.

Added
  • Right-click any node with an image output to "Copy to Clipboard as PNG" with intact transparency.
  • Right-click context menu now also has a Delete Node entry (with heal-on-delete behavior matching the Del key).
Changed
  • Preview transparency checkerboard uses fixed-size tiles at all zoom levels — the pattern pans with the image but no longer scales.
Fixed
  • Status bar credit balance and sign-in label no longer sit flush against the right edge of the window.