Spriteloom
Local · GPU only · No subscription

Pixel art sprites, generated inside Aseprite.

Spriteloom runs a diffusion model on your own GPU and wires it straight into Aseprite. Type a prompt, get a sprite; describe an edit, get a variant dropped in as a new layer. Nothing leaves your machine, and your existing pixels are never touched.

Runs fully offline One resident model, no swaps Apache 2.0 licensed
results · hover a sprite
see prompt

A tall man in classic costume in classic three-quarter view game perspective, seen from slightly above.seed 829855608

see prompt

Show the same character from the front, seen head-on (edit of a prior character)seed 2574489800

see prompt

pixel art character sprite, side-view full body, young human woman, lean athletic build, weathered explorer, short dark hair tied back, leather jacket over a grey undershirt, worn canvas trousers tucked into scuffed boots, wide belt with pouches and a coiled rope, long dark red scarf trailing behind, fingerless gloves, short curved sword sheathed at the hip, alert forward-leaning stance, limited palette of muted browns, dusty red, olive green, off-white skin tones, dark outline, clean readable silhouette, side profile, transparent backgroundseed 3350658901

see prompt

A House, seen exactly from the side at eye level, in strict profile view: only its side silhouette is visible, the front face cannot be seen at all. A flat 2D side-scroller game object. The camera does not look down at it.seed 2162032872

see prompt

A a rusty iron lantern with a warm yellow flame inside in classic three-quarter view game perspective, seen from slightly above.seed 1450310675

see prompt

A single gold coin with an embossed crown, shiny in classic three-quarter view game perspective, seen from slightly above.seed 2231528890

Real output from the tool, one generation each. Shown scaled up with hard pixel edges to keep them crisp.

Four tasks, one panel

You stay in the editor the whole time

Every task opens results in a side window; click a variant to insert it as a new layer. It never modifies the pixels you already drew.

Generate

A sprite from a text prompt. Pick a view preset, name the subject, add extra detail, and the panel shows the exact text it will send.

"closed book with dark brown leather cover"

Edit with AI

Change an existing sprite by instruction, not a strength slider. Style and everything you didn't mention stays put.

"make the sword glow slightly blue"

Inpaint Selection

Same as Edit, but only ever touches the region you selected. The rest of the sprite is guaranteed untouched.

"replace the wheels with skis"

Rotate and Instruct

See the same subject from another angle. Name the subject explicitly and enable mirror symmetry for clean front and back views.

"show the same character from behind"
Prompting

A good sprite starts with a concrete subject

You don't write a paragraph. You name the subject the way you'd describe it to another artist, pick a view, and drop refinements in the extra field. The panel wraps that into the exact camera and framing text the model reads. "a bear" works; "a bear" with detail works far better.

subject + material & colour + one defining detail

3/4 view

Props and objects. Read as a game asset from slightly above.

"a wooden treasure chest with iron bands and a brass lock, lid closed"

Side view

Creatures and characters for a side scroller. Name the silhouette.

"a four legged brown horse with a black mane, standing"

Front view

Buildings, gates, symmetrical structures seen head on.

"a grey stone castle gate with two towers and a raised portcullis"

Top down

Tiles and furniture for an overhead map.

"a round wooden table with a red cloth, a lit candle, and two plates"
Too vague
"a monster" · "a character" · "a building"
Concrete
"a horned red demon with leathery bat wings, standing on two legs"

Two more levers: put palette and mood in extra ("muted earth tones", "limited eight colour palette"), and for Rotate keep the same subject wording so the character stays itself across angles.

Architecture

How it works

A Lua extension in Aseprite talks over WebSocket to a local Python server that keeps one model warm on the GPU. After the first warm up there are no model swaps, so tasks on 12+ GB cards respond in seconds — 8 GB cards (Legacy 8 GB mode) take longer per task.

Aseprite · Lua
The plugin
Control panel, results & history windows, frame/mask export, layer insertion.
Python · WebSocket
The server
Validates the request at the boundary, streams progress, postprocesses raw output into a clean sprite.
FLUX.2 Klein · GPU
The model
One 4B parameter pipeline, warmed up once. First load downloads ~15 GB; on 12+ GB cards it then stays fully resident, on 8 GB cards (Legacy 8 GB mode) it streams layer-by-layer per task instead.
Before you download

This runs a real model on your hardware

Spriteloom is deliberately local: no cloud, no CPU fallback. That buys you privacy and zero subscription, at the cost of needing a capable GPU. Check the spec before you install.

GPU
NVIDIA, 12+ GB VRAM · developed on an RTX 5080; 8 GB cards work in Legacy 8 GB mode
OS
Windows
Python
3.11 or newer
Aseprite
1.3 or newer
Disk
~15 GB for the model, downloaded on first run
No NVIDIA GPU, no Spriteloom. There is no cloud option by design. If that's a dealbreaker, this tool isn't for you, and that's fine.

Legacy 8 GB mode (e.g. a laptop RTX 4060): the ~8 GB transformer doesn't fit on the GPU whole, so it swaps one layer onto the GPU at a time, out to system RAM the rest of the run. Same output as the 12+ GB path, just much slower per image. VRAM and GPU usage both stay low the whole time; the constant PCIe transfer, not compute, is what makes it slow.

Setup

Four commands and a restart

Create a virtual environment: py -3 -m venv .venv

Install server deps: .venv\Scripts\python -m pip install -r server\requirements.txt

Install CUDA Torch: pip install torch --index-url https://download.pytorch.org/whl/cu128

Run install-plugin.bat, restart Aseprite, then start the server and open Sprite → Spriteloom.

Forge your first sprite.

Free, open source, and entirely yours to run. Full setup and docs live on GitHub.