Releases: Drommedhar/sable
Releases · Drommedhar/sable
v1.3.0
Added
- PSD import — open
.psdfiles directly (File ▸ Open). Sable maps layers, groups
(including pass-through), layer masks, blend modes, opacity, fill opacity, visibility,
clipping masks, and per-layer bounds. 8- and 16-bit RGB and Grayscale PSDs are supported
(16-bit converts to 8-bit on import). Shape, text, and adjustment layers are rasterised;
every lossy mapping is listed in an import-notes panel so nothing is silently lost. - Missing-font warning — if an imported PSD contains text layers that reference fonts
not installed on your system, Sable lists the missing font names so you know before
editing. - Import Photoshop brush presets (.abr) — load Photoshop
.abrfiles via the brush
options bar (Import .abr brushes…). Supports legacy (v1/v2) and modern (v6/v7/v10)
format; sampled tips and computed presets both import. Tips larger than 512 px are
downscaled automatically. - Brush shape and dynamics — the brush options bar gains full shape controls: Angle,
Roundness %, Size jitter %, Flow jitter %, Scatter %, and Angle jitter %.
Sampled brush tips (from .abr presets) are now used when painting. - Brush blend mode — pick the blend mode the brush paints with (Multiply, Screen,
Overlay, etc.) directly in the options bar. - GPU-accelerated brush engine — brush dabs are now stamped into the layer's live GPU
buffer on the fly; no per-move CPU pixel writes or re-uploads mid-stroke. Large brushes
and long strokes are significantly faster. - Toast notifications — Sable shows a dismissible notification (top-right) for
background events such as import warnings, instead of a blocking dialog.
Full Changelog: v1.2.0...v1.3.0
v1.2.0
Added
- Welcome screen — when no document is open, Sable shows a welcome/tips screen with recent files
and quick how-to tips. Toggle it in Preferences (and via "Show this welcome screen"). - Contextual task bar — a small action bar with the most relevant actions for what you're doing
(Gen Fill, Mask, Invert, Deselect). Toggle from the Window menu. - Radial quick-tools menu — press ` to pop a radial tool picker at the cursor.
- Navigator panel — a zoomable thumbnail of the whole document for fast panning.
- Keyboard Shortcuts window (Help ▸ Keyboard Shortcuts) — a printable reference of every tool and
canvas shortcut. - Pass-through groups — a group can now composite straight onto the layers below it, so adjustments
and filters placed inside the group affect everything underneath (toggle per group). - Gradient Map adjustment — remap tones through a gradient.
- Blend If — in Layer Effects, hide a layer where the layers below are darker or brighter (shadow
and highlight ranges, on the underlying composite). - Gradient tool shapes — Linear, Radial, Conical, Reflected and Diamond (was linear only).
- Brush dynamics and presets — stroke smoothing (stabilizer), dab spacing, and stylus
pressure → size / pressure → flow for tablets, plus saveable brush presets (size/hardness/flow/
spacing/pressure). - Place… (File menu) to add an image as a new layer, plus Revert, Close, Close All and
Close Others. - Edit menu: Paste in Place, Fill with Foreground and Fill with Background.
- Copy / Paste / Clear layer effects from the layer context menu.
- Math in numeric fields — type an expression like
100*2or50+10into size/amount boxes. - Animated splash screen at startup.
Changed
- Non-destructive crop — the Crop tool gains aspect-ratio presets and a Delete pixels toggle.
With it off, layers keep the content outside the crop, so you can enlarge the canvas later to
un-crop. - Selection ▸ Grow / Shrink / Smooth / Border / Feather now ask for an amount instead of being
fixed at 4 px. - Hold
\to compare — temporarily view the image with all adjustments and live filters hidden. - More zoom presets (50% / 200%) and quick panel-visibility toggles (Tools / Colour / Layers).
- Status bar shows memory use — app working set and GPU VRAM in use.
- History panel — drag to scrub through the edit history.
- Esc closes dialogs consistently across every dialog, and middle-clicking a document tab closes
it. - Ungroup now has a menu entry, and the layer list can be filtered by name.
Full Changelog: v1.1.2...v1.2.0
v1.1.2
Fix Macos and Linux
Full Changelog: v1.1.1...v1.1.2
v1.1.1
Fixed
- The layer visibility eye (and the lock and group-disclosure buttons) work reliably again — a
click on a layer row's controls could be swallowed, so toggling visibility appeared to do nothing. - Generative presets no longer break when you move or delete the original workflow — the workflow
file is now copied into Sable's own storage when you create a preset, and that private copy is cleaned
up when the preset is removed.
Added
- Channels panel — the panel beside Layers gains a Channels tab showing RGB, Red, Green, Blue,
and Alpha. Click a channel to view it on its own, use the eye toggles to mask channels in the
composite, and right-click a channel to load it as a selection.
Full Changelog: v1.1.0...v1.1.1
v1.1.0
Added
- Generative AI (experimental) — a new opt-in image-generation tier driven by a local ComfyUI
runtime that Sable manages and runs in the background. Turn it on in Preferences ▸ Machine
Learning; nothing is installed until you do. On enabling, Sable reuses an existing same-OS ComfyUI
install if it finds one (models are referenced in place, never copied), otherwise it installs its own
PyTorch + ComfyUI into Sable's folder (a multi-gigabyte download).- Generative Fill (AI ▸ Generative Fill…) — fill the current selection from a text prompt.
- Generate Image (AI ▸ Generate Image…) — text-to-image.
- A generative panel with a model preset, compatible LoRAs, prompt and negative prompt, steps,
CFG scale, denoise, seed (with a Random button), and a CPU-offload option to fit large models.
- Reuse models from an existing ComfyUI install — AI ▸ Models gains a Model sources section
to add a ComfyUI (or compatible) folder; its checkpoints and LoRAs are referenced in place, never
copied, plus a Check sidecar / Python env action to verify the runtime. - Tidier update notes — the "update available" dialog now groups the release notes into
Added / Changed / Fixed tabs with a collapsible entry per version (and still combines every
version you've skipped into one changelog).
Changed
- Full interface translation — every remaining piece of on-screen text now follows the selected
language, not just the menus and panels. This covers tool names and their tips, the status bar
(cursor position, selection size, document info, zoom), all dialog titles and messages (open/save/
export, AI tasks, update checks, crash recovery), the command palette, the model manager, the
settings pages, the New Document presets, and default layer names. German translations are included
for all of it; switch languages in Preferences ▸ User Interface.
Fixed
- Stamped out the last of the app-wide swallowed clicks — the canvas render loop now runs at input
priority and prefers any non-blocking display mode (Mailbox → Immediate → relaxed v-sync), so buttons
and menus no longer occasionally flash pressed without actually firing. - Window minimise/maximise/close buttons fire reliably — the title-bar caption buttons no longer
ignore clicks (including at the very top edge and corner). They now act the instant you click them. - Colour panel tabs (Colour / Gradients / Swatches / Histogram) switch on the first click — a slightly
imperfect or near-edge click no longer does nothing; the whole tab is clickable and responds immediately.
Full Changelog: v1.0.5...v1.1.0
v1.0.5
Added
- Document bit depth — a new Image ▸ Mode menu (and a Depth picker in the New Document
dialog) lets you choose 8-bit, 16-bit, or 32-bit (float). The status bar now shows the
document's colour mode and depth. (8-bit is the editing precision today; 16/32-bit documents are
stored and carried through, with full high-precision editing arriving in a later release.) - Grid settings — View ▸ Grid Settings… opens a dialog to set grid spacing, subdivisions, and
colour, toggle the grid, and snap to it. Your choices are remembered between sessions. - Snapping settings — View ▸ Snapping… gives full control over snapping: a master toggle,
screen tolerance, and individual switches for snapping to the grid, guides, canvas edges/centre, and
other layers' bounding boxes (with an option to ignore hidden layers). - Choose where AI models are stored — the model manager now has a Change folder… button that
moves all your downloaded models to a new location and remembers it.
Changed
- The update notice now shows formatted release notes (markdown instead of plain text), and if
you've skipped several versions it shows the combined changelog for every version since your
build, not just the newest one. - The layer visibility (eye) icon now reflects hidden groups — hiding a group dims its children's
eyes to show they won't render, without changing each child's own visibility (re-showing the group
restores them exactly). - The model manager opens instantly — the VRAM-fit check now runs in the background and fills in
the fit badges when ready, instead of briefly freezing the dialog while it queries the GPU.
Fixed
- Menus that need an open document are now greyed out when there's no document — Save, Export, the
clipboard actions, and the Image/Layer/Type/Select/Filter/zoom menus no longer do nothing (or worse)
with the empty welcome screen showing. The rulers also dim and stop responding until a document is open.
Full Changelog: v1.0.4...v1.0.5
v1.0.4
Added
- Nested effects — drop a live filter or adjustment inside a layer and it now affects only
that layer, not everything below it (Affinity-style). Adding a filter or adjustment while a
content layer is selected nests it into that layer; deselect (or select a group) to add one that
affects the whole composite below, as before. - Adjustment, filter and shape settings now live in the right panel — the controls for the
selected adjustment/filter (and shape properties) appear docked at the bottom of the Layers panel
instead of a separate floating window. (Window ▸ Adjustments still opens them in a window if you
prefer.) - Model manager redesigned (AI ▸ Models) — split into ONNX (the built-in light AI tier) and
Generative tabs. Each model is now a card showing its VRAM-fit badge, supported tasks, licence,
and an install/remove button, with the per-task "default model" picker built right onto the card.
Changed
- Live filters now show the filtered result instead of layering it on top of the original. A blur,
for example, actually softens the edges underneath rather than leaving the original sharp content
showing through. A filter's opacity and mask now act as a blend amount between the original and
the filtered version. - Dragging layers onto each other nests effect layers as children or auto-groups, matching the new
nested model.
Fixed
- Clicks no longer get swallowed anywhere in the app — an intermittent issue where buttons, menus
and tools would occasionally not respond (caused by the canvas render loop blocking on v-sync) is
fixed by switching the canvas to a non-blocking present mode. - Dragging a multi-layer selection works — grabbing one of several selected layers now drags the
whole selection instead of collapsing it down to the row you grabbed. A plain click (no drag) still
selects just that one row. - Alt-click eyedropper no longer flickers during the brush HUD — the colour-picker loupe only
shows when Alt is held on its own; Ctrl+Alt (the brush size/hardness HUD) no longer triggers it.
Full Changelog: v1.0.3...v1.0.4
v1.0.3
Added
- Move and Transform are now one tool (V) — no more switching. Drag the layer to move it; grab a
handle to scale; grab the handle above the top edge to rotate. Selecting V no longer cycles. - Snapping for Move and Scale — dragging or resizing a layer snaps to the canvas edges, the canvas
centre, and your guides, with a magenta alignment line showing where it locked on. - More-tools indicator — toolbox buttons that hold several tools now show a small corner triangle
(Affinity-style), so it's clear which buttons have a fly-out.
Changed
- Transform handles redesigned to match Affinity:
- A corner or edge handle scales uniformly (locked aspect) by default, anchored at the opposite
side. - Shift while dragging a handle scales freely (just that direction).
- Ctrl scales from the centre (uniform, or non-uniform with Shift).
- Shift while rotating snaps to 15° steps.
- Alt-drag a corner does perspective/free-distort (this moved off Ctrl, which is now centre-scale).
- A corner or edge handle scales uniformly (locked aspect) by default, anchored at the opposite
- Shapes, text, paths and groups can be moved with the Move/Transform tool (previously only pixel
layers responded to the gizmo). - Adding or removing a layer mask is now undoable (Ctrl+Z).
- HardMix blend mode now matches Photoshop (was an approximation with a visible midtone difference).
Fixed
- No more crash when opening a corrupt, locked, or unsupported file — Open/Save/Export now show an
error message instead of closing the app. Corrupt.sablefiles are rejected cleanly. - Layer masks save and load correctly for layers that aren't the full document size (cropped,
offset, or pasted layers) — previously the mask could come back the wrong size or corrupt. - Undo reliability — paint, mask, gradient and delete edits no longer silently fail to undo after
a later edit resized the layer; undoing a paint stroke also restores the layer's mask. - Switching tools or documents mid-drag no longer leaves a half-finished edit pointing at the old
layer (which could paint into the wrong place or crash). - Leaving the Pen tool no longer leaks the mouse capture during a handle drag.
- Autosave no longer freezes the window — large documents are saved in the background.
- Memory leak on layer delete/merge/flatten — GPU memory for removed layers is now released.
- Crop, Resize, Delete and Copy now act on the correct region for offset/sub-document layers.
- Adjustment and live-filter layers now respect their Fill opacity and Clip to layer below
settings, like pixel layers. - Zoom-to-cursor accuracy and smooth panning (no more sub-pixel drift on long pans).
- The transparency checkerboard stays anchored to the document when panning instead of swimming
under the image. - Perspective/free-distort no longer smears when a corner is dragged past the vanishing point.
- Quick eyedropper (Alt-click) and the brush size/hardness HUD (Ctrl+Alt-drag) now work on the
retouch and Liquify brushes too. - Smart Select hover preview colour now matches what the click will actually do (including
Shift+Alt = intersect). - Shape stroke defaults to the foreground colour instead of always black.
Full Changelog: v1.0.2...v1.0.3
v1.0.2
Added
- Rename layers inline — double-click a layer's name, press F2, or use Rename in the
layer right-click menu. Enter commits, Esc cancels. - Smart Select per-layer cache — detected objects are remembered per layer, so switching back to
an unchanged layer is instant instead of re-running the analysis every time. - Window ▸ Transform — the numeric Transform panel can now be opened from the Window menu.
Changed
- The Transform tool no longer auto-opens the Transform panel. Open it from Window ▸ Transform
when you want it; the on-canvas gizmo works as before. - Smart Select shows a "Preparing AI…" dialog immediately on first use instead of briefly
freezing while the AI backend loads (which looked like a crash).
Fixed
- Brush accuracy — a 1px brush (and brush dabs generally) now paint exactly under the cursor
ring instead of being offset by about half a pixel. - Smart Select on moved/cropped/transformed layers — the selection overlay now lines up with the
layer. Previously a layer that wasn't document-sized was stretched across the whole canvas, and a
scaled/rotated layer was misaligned after transforming. - Stale Smart Select masks — masks are now correctly dropped (and re-analysed if needed) when you
switch layers, tabs, or images, or after editing the analysed layer, instead of showing objects
from a different layer. - Crash when adding a layer during Smart Select — adding a blank layer while Smart Select was
active could crash the app. Fixed (blank layers are skipped). - Layers turning invisible after Smart Select on a transformed layer (which required toggling
visibility to restore) no longer happens. - Typing in text fields (e.g. the new rename box, numeric option fields) no longer triggers
tool/keyboard shortcuts.
Full Changelog: v1.0.1...v1.0.2
v1.0.1
Full Changelog: https://github.com/Drommedhar/sable/commits/v1.0.1