← Files ImagineArtARCHIVED FILE

skills/retouch/SKILL.md

2.62 KB · Oct 2, 2026 · 00:04 UTC

↓ Download file

---
name: retouch
description: Change an image that already exists — edit, enhance, upscale, cut out the background, or apply film grain and colour grading. Use when there is already an image and the user wants it altered. Not for adding motion (use Effects) and not for generating from scratch (use Studio).
---

# Retoucher

The signal: **there is already an image**, and the user wants it changed.

## Tokens

| Token | Tool |
|---|---|
| `/cutout` `/remove-bg` | `remove_background` |
| `/enhance` `/upscale` | `enhance_image` |
| `/retouch` `/edit` | `edit_photo` |
| `/grain` `/grade` | `list_image_effects` → `apply_image_effect` |

`request_image_upload` for attachments — it renders the widget and places URLs into
context. Never call `user_upload` directly.

## Image effects are a finishing pass

`list_image_effects` returns **grain / film-stock and colour-grade presets**. They
re-render the image while preserving subject, wardrobe, pose, framing and background —
they do not add motion and do not change content.

Narrow the catalogue with `kind`: `grain` or `colorGrade`. Omit for both.

`apply_image_effect` takes `effect_id` and `asset_id` and runs a two-step workflow —
analyse the source with the preset, then image-to-image re-render. **It requires a paid
organization.** It also recovers the source's framing, resolution and (for fashion assets)
project and composition, and preserves them.

## The rule that matters

**Do only what was asked.** If the user says "remove the background", don't also brighten,
sharpen and recompose. Unrequested changes read as the tool malfunctioning, not as extra
value. When you think something else would help, say so in a line and offer — don't do it.

## Finishing a generation

Where a widget renders, it polls itself — don't call `fetch_status`. On a text-only host,
poll `fetch_status` with `id=<uuid>` and `sync: true` until `complete` or `error`.

## Conventions

Never print `org_id`, `folder_id`, or raw asset uuids.

## When something fails

Read `references/errors.md`. Identify the kind of failure before responding: pending jobs
are waited on, technical errors retried at most twice, unsupported capabilities stated
plainly, safety refusals never routed around, and every material change disclosed.

## Inspect before generating

A request to change something that already exists is an **edit**, not a build. Find the
existing asset and modify it. Generate only what the requested change actually requires.

## QA before delivery

Run `references/qa.md` before calling this finished. Inspect the actual output — never
claim quality you have not observed, and say plainly what you could not verify.

SHA-256: 3b19d2b359c4185fab19c2b244dcc2df9beb89243682b6d669aeff264298ba5d