Changelog

What's new in each release.

RSS feed

v0.2.0 — Tools, content, and use case pages

What's new

Five new browser-based tools

Format ConverterConvert between PNG, WebP, AVIF, and JPG with quality control and before/after file size comparison

PNG OptimizerUpload any image and instantly see size savings as WebP (85%, 70%) and AVIF (80%), with a "Best Pick" recommendation

Compare FormatsUpload one image and see file size across PNG, WebP at two qualities, AVIF, and JPG in a single table

Colour PickerHover or click any pixel in an uploaded image to sample exact hex, RGB, and HSL values; pin colours to build a palette

Image ResizerResize to exact dimensions or a percentage scale with aspect ratio lock; export as PNG, WebP, or JPG

All tools are 100% local — no upload, no server.

Content

**42 use case landing pages** under `/for/` — covering e-commerce, photography, social media, professional services, and more

**19 blog posts** covering transparency, Photoshop/Figma/Canva workflows, AI background removal, batch processing, pet photography, ghost mannequin technique, and privacy

Help documentation23 articles covering every feature and workflow

Consent-gated analytics

Analytics (Vercel) and advertising (AdSense) scripts now only load after the user accepts the relevant consent category. Previously they loaded for all users regardless of consent decision.

Browser support

No changes from v0.1.0. All five new tools use the Canvas 2D API and are supported in all modern browsers.

v0.1.0 — Initial release

Fixes (post-launch)

Queue stuck / auto-restartitems stuck at `processing` or `loading` status (e.g. after navigating away mid-inference) are now automatically reset to `queued` on next mount; processing resumes immediately without a page reload

Worker crash recoverya 10-minute hard timeout and `onerror` handler on the inference worker now guarantee that a stalled Best Quality model download or unexpected worker crash surfaces as a clear error message instead of freezing the queue forever

Live progress labelsthe queue now shows human-readable status during model download ("Downloading model…", "Starting…") instead of staying at 0% during the first Best Quality inference

Editor blank canvaswhen the AI returns a near-zero mask (socks in packaging, low-contrast subjects), the editor now shows the original image with a "No foreground detected" overlay instead of a blank transparent canvas; the overlay now also suggests switching to Best Quality mode

Low-foreground hint in queueafter a Fast mode result with < 1% foreground, the queue row shows an amber hint recommending Best Quality mode for that image

Edge refinement presetstwo new one-click presets: "Soft edges" (hair/fur/feathers) and "Hard edges" (logos/products); "Reset to defaults" button now correctly restores decontamination ON state

PNG export CPU encoderswitched from `OffscreenCanvas.convertToBlob` to `HTMLCanvasElement.toBlob` (CPU path) to fix a Chromium/Windows GPU driver bug that silently produced JPEG bytes in PNG exports; magic-byte verification now aborts export if encoding fails instead of delivering a corrupt file

React #185 root causes fixedprimitive Zustand selector in `page.tsx` prevents re-triggering on every inference progress tick; `startTransition` in Canvas RAF callbacks prevents synchronous flush cascades

Processing stabilityfixed infinite re-render loop (React #185) that could stall the queue and crash ZIP export

Session restoreprompt now appears at most once per tab session; restored items no longer duplicate if the page is revisited

Gradient and image backgroundsthese now render correctly in the editor canvas and in exported files (previously fell through to transparent)

Export pipeline consolidatedall export paths (quick-download, export panel, batch ZIP) now go through a single `exportImage()` function; magic-byte verification and alpha integrity check run on every export

Export panel redesignedradio-button format selector with per-format descriptions; JPG automatically composites background; export button shows "Done ✓" confirmation for 3 s after success

Quick-download fixedthe queue-list PNG button previously used an unverified `convertToBlob()` path that could silently produce corrupt output; now routes through `exportImage()` with full verification

Canvas rendering fixedstale closure bug caused edge refinement sliders, background changes, and preview mode to not update the canvas; fixed with a render-frame ref pattern

Editor auto-fitguarded against negative zoom if container dimensions are not yet available on first paint

Clear allnow requires confirmation to prevent accidental queue wipes

Editor back navigation"← Queue" link added to the editor title bar; returns to the queue without removing any images

No-foreground warningwhen the AI returns a near-empty mask (complex outdoor scenes, cluttered backgrounds), the editor now shows a "No foreground detected" overlay with guidance to use the Restore brush

Best Quality model auth error`RMBG-2.0` requires accepting a free HuggingFace licence; the app now fails fast on 401/403 with a clear message instead of retrying three times

What's new

This is the initial public release of NSS Background Remover.

AI Upscaler (new tool)

Standalone `/upscale` pagedrop any image and upscale 2× or 4× with Swin2SR AI super-resolution; all processing is 100% local, no upload

Tile-based processinglarge images are split into 512×512 tiles, processed sequentially with progress feedback; images up to any size are supported

2× modefull AI super-resolution using Swin2SR; model (~47 MB) downloads once and caches in the browser

4× modeAI 2× upscale followed by bicubic 2× for 4× total output; faster than two full AI passes

Export panel integration"Export & Upscale ×2/×4" button in the editor export panel chains: remove background → export → AI upscale → download

Queue quick-action"↑ Upscale" button on every completed BG removal queues the image in the AI Upscaler with one click

Navigation"Upscaler" added to the top navigation bar and Product menu

Core features

AI background removalRMBG-1.4 (Fast) and RMBG-2.0 (Best Quality) models running locally via Transformers.js

WebGPU acceleration1–5 second inference on supported browsers; WASM fallback for Firefox and older Safari

True straight alpha exportverified PNG, WebP, and AVIF exports; automated integrity check on every file

Brush toolerase and restore with adjustable size (1–500 px), hardness, and opacity

Edge refinementfeather, smooth, expand/contract, decontaminate colour spill

Background replacementtransparent, solid colour, gradient, or image

Batch processingup to 20 images with ZIP export

Session persistenceIndexedDB auto-save; resume session on reload

PWA supportinstall as app; works offline after first model download

HEIC supportiPhone photos converted via WASM before processing

Privacy

All processing is 100% local — images never leave the browser

No account required

GDPR-compatible cookie consent (PIPEDA-first)

Transparency verification

Every export passes an automated alpha integrity check:

Decodes the exported blob back into pixel data

Samples 100 pixels where the mask was semi-transparent

Verifies alpha values are soft (not binary) and RGB is not zeroed

Shows a warning if the check fails — before the file downloads

Browser support

| Browser | Support |

|---------|---------|

| Chrome 94+ | Full (WebGPU) |

| Edge 94+ | Full (WebGPU) |

| Firefox 90+ | Good (WASM) |

| Safari 16.4+ | Good (WASM / WebGPU on Safari 18+) |

| iOS Safari 16+ | Supported (slower) |