Repository navigation
Releases: stack-junkie/sj-paint
Release list
SJ Paint v0.3.1
SJ Paint 0.3.1 adds complete Windows and Linux installers, the new SJ icon, and fixes for local AI setup and Object Select.
Install
- Windows x64: download
sj-paint-0.3.1-windows-x64-setup.exe. It installs the full app for your user and adds desktop and Start menu shortcuts. - Ubuntu, Linux Mint and Debian x64: download
sj-paint-0.3.1-linux-amd64.deband open it with your system package installer. SJ Paint appears in the app drawer under Graphics. Alternatively, runsudo apt install ./sj-paint-0.3.1-linux-amd64.deb. - Portable Windows ZIP and Linux tar archives remain available. SHA-256 checksum files accompany every package.
Save and close SJ Paint before updating. Newer installers replace the installed application while retaining settings and local AI assets. They do not automatically check for updates. AI models are separate optional downloads. Windows packages are unsigned.
Fixes
- Local AI setup now accepts valid compressed downloads while still checking the decoded size and SHA-256. This fixes the “AI download size differs from pinned manifest” error for the MI-GAN documentation required by Generative erase.
- Object Select Apply now activates selection dragging while preserving the mask. Cancel retains the prior tool.
- The new blue palette and upright brush icon has a large, readable SJ mark.
Background removal, Object Select and Generative erase remain available. Unfinished generative features remain excluded.
Verification
The release source passed Windows and Linux CI, including editor, file/format, model-free AI contracts and packaged application checks. The Debian package was installed and launched with normal sandboxing; drawing, Save/reopen, replacement and removal were also checked in disposable Ubuntu 24.04. The setup fix was separately exercised against the real compressed documentation response using existing verified AI assets.
Windows installer construction and payload are checked; its install/update/uninstall lifecycle has not been exercised. Linux graphical package installers, other desktop shells and Wayland are not certified. See the repository's coverage inventory for existing format limits and retained AI verification.
If migrating from Linux's older per-user archive installer to the system .deb, the old per-user launcher takes precedence. The README explains how to switch without removing drawings or user data.
SJ Paint v0.3.0
SJ Paint 0.3.0 consolidates the editor, file-handling and local AI improvements into one Windows/Linux release.
- Text preview and Apply share the same raster and layer composition. Interrupted text creation retains coherent Undo/Redo and saved state.
- Properties and file information track physical resolution and encoded size. Layer Rename and anchored canvas resizing are keyboard accessible.
- Linux Save As explicitly asks Cancel or Replace for an existing destination, with Cancel selected by default. Writes remain atomic.
- GIF uses adaptive palettes and opens the first frame of animated inputs. TIFF supports the documented classic profiles. Native
.paintsupport is limited to the tested full-canvas layer representation; use.sjpaintfor complete SJ layer state. Legacy.linuxpaintimports remain supported. - Managed local AI setup has progress, integrity checking and crash recovery. Model assets remain separate downloads. Background removal, object selection and erase are retained. Image creation, Cocreator, Generative Fill, Reimagine, stickers and coloring pages are excluded.
Windows x64 and Linux x64 portable packages include checksums. The Windows executable is unsigned. Exact Microsoft Paint parity, Microsoft services and physical-printer certification are not claimed. See the bundled README and PARITY.md for supported workflows, model licenses and verification limits.
Verified the connected editor and file-failure workflows, format regression, hidden Windows package, installed Linux app with normal sandboxing, real Linux overwrite Cancel/Replace and all three retained AI workflows. Linux AI Copy, project Save/reopen and clean shutdown passed. Windows host clipboard testing was deliberately skipped.
SJ Paint 0.2.26
Import classic 8-bit BlackIsZero grayscale TIFFs with an explicitly declared unassociated alpha channel. Decoding shares the existing strip codecs, predictor and orientation handling. Unsupported alpha, polarity and mixed-depth variants remain rejected without replacing the current drawing.
Verification: independent Pillow/libtiff fixtures cover all eight orientations, four compression modes, multiple strips and varied alpha. Local codec/native-fixture checks and 122 public import checks passed. CI 38891556492 passed 1,137 browser checks on each platform, 575 hidden Windows checks, 570 isolated Linux checks and 47 Linux installer checks. Each desktop run separately skipped actual AI inference. Windows and Linux archive checksums and identical app payloads were verified.
Native Paint reopening of the new gray-alpha variants remains unverified. Full Microsoft Paint baseline completion is not claimed. AI evaluation remains deferred; no models or runtime installers are bundled.
SJ Paint 0.2.25
Held curves, lines, shapes and pending-shape resizing now respond immediately when Shift changes without pointer movement. Releasing Shift after mouse release preserves the accepted geometry. Resize cursors follow each handle's direction, including rotation, and remain stable through redraws, release and cancellation.
Verification: CI run 38890937263 passed 1,111 headless browser checks on each platform, 563 hidden Windows desktop checks and 558 isolated Linux desktop checks. Each desktop run explicitly skipped real local-AI inference. Linux installation checks passed 47 assertions. Clipboard checks ran only on disposable CI machines. Windows and Linux archive checksums and identical app payloads were verified.
These correct demonstrated SJ Paint inconsistencies. Exact Microsoft Paint behavior, cursor artwork and full baseline parity remain unverified where native reference access is unavailable. AI evaluation remains deferred at the owner's request.
SJ Paint 0.2.23
Edit colors now has an inline hue/saturation spectrum, value slider, color preview, Basic colors, Custom colors and Add color. Palette edits stay inside the dialog until OK; cancellation and interrupted pointer capture preserve the drawing and saved palette. Keyboard controls share the existing numeric-color owner, and small windows retain reachable controls.
Verification: CI38888614713 passed 1,033 browser checks per platform, 485 hidden Windows checks, 480 isolated Linux checks and 47 Linux installer checks. Each desktop run separately skipped actual AI inference. Both runner-built archives contain identical app payloads. A cached spectrum reduced repeated synchronous dialog opening from about18ms to about5ms in the local measurement, with byte-identical screenshots; overall CPU reduction is not established.
Native resources support the controls, but exact Microsoft palette contents, persistence, geometry and rendering remain unverified. Native chooser responses remain simulated. AI remains deferred, and the full Paint baseline remains unfinished.
SJ Paint 0.2.22
The text font picker now discovers installed Windows and Linux font families with a bounded, read-only desktop query. It preserves the selected font and live text caret when discovery finishes, defers list replacement during keyboard use, and handles names containing commas or quotes. Browser discovery only uses previously granted font access. Failed queries retain the standard font list.
Verification: CI 38886542787 passed 1,012 browser checks on each platform, 466 hidden Windows checks, 461 isolated Linux checks and 47 Linux installer checks. Each desktop run separately skipped actual AI inference. Real Windows discovery returned 261 families in 629 ms; concurrent requests shared one query and cancellation closed the owned helper. Both archives were produced on the verified runners, with identical app payloads.
No fonts or dependencies are installed. Native chooser responses remain simulated. Exact Microsoft Paint font inventory and rendering equivalence remain unverified. AI remains deferred, and the full baseline remains unfinished.
SJ Paint v0.2.21
Edit colors now provides RGB and HSV channel entry with synchronized hex values. Empty, malformed and out-of-range entries cannot accept a stale color. Switching color models preserves exact RGB bytes, and hue edits preserve the precision of untouched channels. Live text selection, cancellation and the existing palette owner are retained.
Verification: 1,000 browser checks on each platform, 459 hidden Windows checks, 454 isolated Linux checks and 47 Linux installer checks passed in CI 38884897297. Each desktop run separately skipped actual AI inference; the earlier pass totals incorrectly included that skipped check. Both archives were produced on the verified runners; Windows and Linux app payloads match exactly. Native chooser responses remain simulated. AI remains deferred, and full Microsoft Paint parity is unfinished.
SJ Paint v0.2.20
Outline and Fill now use selectable menus with independent style previews. Changing styles keeps pending shapes and curves editable; keyboard navigation, cancellation and Undo/Redo retain their existing owners. Shape controls remain available in narrow windows, and menus fit short viewports.
Verification: 963 browser checks on each platform, 422 hidden Windows checks, 417 isolated Linux checks and 47 Linux installer checks passed in CI 38882342638. Windows and Linux app payloads match exactly. Native chooser responses are simulated. Actual AI inference was skipped; remaining AI work is deferred. Full Microsoft Paint parity remains unfinished.
SJ Paint 0.2.19
SJ Paint 0.2.19
This checkpoint adds optional offline background removal for the active layer, with a separate preview, explicit Apply and one-step Undo/Redo. It requires an externally configured U2NetP model and an existing Python/ONNX Runtime; the app bundles no models and downloads nothing.
View now exposes checked Rulers/Gridlines states and a Status bar toggle. Shared dialogs announce their current titles. This release consolidates the unpublished 0.2.17 and 0.2.18 changes.
Validation: local browser935 checks; hidden packaged Windows407 checks with real approved-model inference and clipboard skipped, owned process cleanup confirmed. CI38878171929 passed Windows389/Linux384 packaged checks,928 browser checks on each platform and47 Linux installer checks. CI explicitly skips model inference when no model/runtime is supplied. Windows and Linux app.asar payloads match exactly.
Full Microsoft Paint11.2605.81.0 baseline parity remains unfinished. Local mask quality is limited on fine details; exact Microsoft AI outputs, native chooser interaction, physical printing and full appearance/behavior acceptance remain unverified. EfficientSAM object selection and generative models are not part of this release.
SJ Paint 0.2.16
SJ Paint 0.2.16 combines the 0.2.14 and 0.2.15 work with selection menus, brush previews and print corrections. This remains a test release; full Microsoft Paint 11.2605.81.0 parity is unfinished.
- Preserve text selection through middle-button panning and formatting controls; add resource-backed text size and alignment controls.
- Import 1/2/4/8-bit grayscale and palette TIFF variants with strict format validation.
- Add checked selection and brush choices, independent brush previews and guarded selection deletion.
- Preserve tall drawings in print output and keep paper white in both themes.
Verification: 875 local browser checks, 369 hidden Windows package checks (host clipboard skipped), 365 Linux package checks, 47 Linux installer checks, 33 TIFF codec groups and independent fixture comparisons. Final Windows/Linux CI passed: https://github.com/stack-junkie/sj-paint/actions/runs/38874799454 . Twenty focused print checks include independently inspected PDFs, not a physical printer or native dialog acceptance. Simulated chooser checks remain separate from native chooser acceptance.
Windows: extract the ZIP and run Stack Junkie Paint.exe. Linux: extract and run ./sj-paint/install-linux.sh for per-user menu integration, or ./sj-paint/run-paint.sh portably. SHA-256 files accompany both downloads; both archives carry the identical tested application payload. Model/runtime weights are not included.