Skip to content
Browse the knowledge base

Skill

/aseprite:fix

Fix or iterate on existing art

Change a sprite that already exists — the user's own work or your earlier output — without destroying what is already right. Use for edits, touch-ups, style corrections and "make it more X" requests.

On this page

Editing someone's work has a failure mode that drawing from scratch does not: breaking something that was already correct. The whole procedure is built around not doing that.

Procedure

#

1. Understand what is there before changing it

#
preflight
sprite_info
look op="preview"

For a targeted edit, also look op="ascii" on the region. You cannot edit pixels precisely from a description.

Never assume layer names, frame counts or the palette. Drawing into the wrong layer is the most common way an agent damages someone's file. When two groups hold same-named layers (left/arm, right/arm), a bare name is refused — pass the group path rather than renaming the user's layers.

2. Say what you are about to change

#

For anything beyond a small touch-up, state the plan in one line and let the user stop you. Especially before: changing the palette, resizing the canvas, merging layers, or editing a layer you did not create.

3. Scope the edit as tightly as you can

#
  • A selection limits draw, recolor and transform to one area.
  • A layer target keeps you out of everything else.
  • A region on recolor avoids touching the whole cel.

Scoping is cheaper than repairing.

4. Make the change in one call

#

One draw with all its ops, one recolor. That is one Ctrl+Z for the user if they dislike it. Use label to describe the intent — it becomes their undo entry.

For a pixel-level fix, edit the text, not coordinates: look op="ascii" layer=… rulers=false region=… gives bare rows, the legend and origin; change the wrong cells and send the same rows back as one draw kind grid at that origin. Only that rectangle is touched, and its transparent cells erase — pass transparent:"skip" when you mean to add pixels without clearing any. Glyphs are palette indices, so pieces read separately share one legend: merge their legends when rows from one piece land in another. Only glyphs listed in offPalette (colours outside the palette) can change between reads.

5. Verify what actually changed

#
look op="diff" fromFrame=… toFrame=…

for animation work, or look op="ascii" on the region for a static edit. A preview shows you the result; a diff shows you the change, including the parts you did not intend. The diff's changedBounds is the quick test: if you edited the hand and the box spans the whole sprite, something else moved.

6. Validate and report

#
validate

Report what changed and what you deliberately left alone.

Interpreting vague requests

#
Request Usually means
"more contrast" Widen the value range of the ramps, not the hue
"cleaner" Remove strays, even out line runs, merge near-duplicate colours
"more detail" Usually wrong at small sizes — ask what should read better
"pop more" Contrast against the background, or a brighter accent
"less flat" Shading exists but does not hue-shift, or has no light direction
"muddy colours" Too many near-duplicates — palette op="extract" on a copy, or analyze + snap
"add a label / score / title" draw kind text; measure with measureOnly first so it lands centred
"closer to the reference / concept" look op="compare", list the three to five largest mismatches, fix only those
"off / uncanny" Run aseprite:review; name the specific cause

Reflect your reading back before acting on it. "More detail" on a 16×16 sprite usually means the sprite needs to be bigger, and that is worth one question.

What not to do

#
  • Do not redraw a sprite from scratch because it is easier than editing it, unless the user asked for that.
  • Do not "improve" things nobody mentioned.
  • Do not widen the palette to fit a colour you chose. Say the palette lacks it.
  • Do not flatten, resize or re-index without being asked.
#

aseprite:review, rules://00-core-principles, rules://92-generated-art-tells for what makes art read as machine-made, and the subject file for the part you are fixing (skill://studio, Subject rules) — "fix the hands" starts at rules://34-hands-and-feet.