Skip to content

Releases: Drommedhar/sable

v1.3.0

12 Jun 05:44

Choose a tag to compare

Added

  • PSD import — open .psd files 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 .abr files 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

10 Jun 20:33

Choose a tag to compare

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*2 or 50+10 into 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

09 Jun 06:43

Choose a tag to compare

Fix Macos and Linux

Full Changelog: v1.1.1...v1.1.2

v1.1.1

05 Jun 11:40

Choose a tag to compare

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

05 Jun 09:09

Choose a tag to compare

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 installAI ▸ 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

04 Jun 18:23

Choose a tag to compare

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 settingsView ▸ 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 settingsView ▸ 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

04 Jun 11:12

Choose a tag to compare

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

02 Jun 08:39

Choose a tag to compare

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).
  • 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 .sable files 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

01 Jun 18:42

Choose a tag to compare

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

01 Jun 13:20

Choose a tag to compare