Image Region Remove Key Color App
Paint a region mask in a local Gradio UI, then remove key-color pixels only inside that region (global keying scoped to the brush). Preserves white/light subject pixels outside the paint strokes.
Use after image-remove-white-background when edge flood fill leaves enclosed white islands (e.g. gaps inside a silhouette).
Rules
When this skill applies, read and follow skill-dependency-manager — run scripts as documented, install missing tools into .dependency/.
- Run
app.pythrough theimage-region-remove-key-color-appmanifest entry (.dependency/image-region-remove-key-color-app/.venv/). Never use hostpython,py,python3, or any interpreter outside.dependency/. - Do not hand-write a one-off Gradio app — use the bundled script at
.ai/image-region-remove-key-color-app/app.py. populated: falseis not a reason to skip. Install first, setpopulated: true, retry the same command.- This skill is interactive: launch the UI, give the user the local URL, wait for them to paint / Apply / Download.
Setup (first run)
From project root:
.dependency/python/python -m venv .dependency/image-region-remove-key-color-app/.venv
.dependency/image-region-remove-key-color-app/.venv/Scripts/python.exe -m pip install Pillow gradio
If python -m venv fails (missing venv / ensurepip), create the env with virtualenv from another populated skill venv, then install packages into the new env:
.dependency/rembg/.venv/Scripts/python.exe -m pip install virtualenv
.dependency/rembg/.venv/Scripts/python.exe -m virtualenv .dependency/image-region-remove-key-color-app/.venv
.dependency/image-region-remove-key-color-app/.venv/Scripts/python.exe -m pip install Pillow gradio
Register in .dependency/manifest.json:
"image-region-remove-key-color-app": {
"populated": true,
"bin": ".dependency/image-region-remove-key-color-app/.venv/Scripts/python.exe"
}
Use bin/python on Unix.
Quick Start
# Preload an image (opens http://127.0.0.1:7860)
.dependency/image-region-remove-key-color-app/.venv/Scripts/python.exe .ai/image-region-remove-key-color-app/app.py path/to/sprite.png
# Custom port, no auto-open browser (agent / headless)
.dependency/image-region-remove-key-color-app/.venv/Scripts/python.exe .ai/image-region-remove-key-color-app/app.py path/to/sprite.png --port 7861 --no-browser
Download uses the same filename as the source (forced .png). No share / no save-to-disk folder.
UI workflow
- Upload the image via the file control (or preload via CLI) — do not drop into the editor canvas.
- Transparent areas appear as gray in the editor (download still has real alpha).
- Paint over local white / chroma patches to remove.
- Choose Key color / tolerance / feather if needed.
- Click Apply → preview (gray = transparent).
- Click Download → browser download with the original name.
- Click Stop server when done (or
Ctrl+Cin the terminal).
Key color
Use the UI color picker (default #FFFFFF). CLI --preset only sets the initial color and tolerance:
--preset |
Key color | Default tolerance |
|---|---|---|
white (default) |
#FFFFFF |
25 |
green |
#00FF00 |
40 |
magenta |
#FF00FF |
40 |
Agent workflow
- When — user needs selective / painted removal of flat key-color patches; full-image
globalwould damage white subjects;border/bothleft enclosed islands. - Ensure deps — manifest entry + venv with Pillow + Gradio.
- Launch — run
app.pywith the user image path; prefer--no-browserif the agent cannot open a GUI browser, and printhttp://127.0.0.1:<port>. - Hand off — tell the user to paint, Apply, then Download (same filename as source).
- Verify — after the user confirms download, they are done; do not overwrite sources.
- Stop — click Stop server in the UI, or terminate the Gradio process when the user is done.
Defaults
| Option | Default | Notes |
|---|---|---|
| Download name | same as source (.png) |
Prepared on Apply via DownloadButton |
--preset |
white |
Match the batch key skill |
--tolerance |
preset-specific | Raise for gray fringes |
--feather |
2 |
Softens hole edges inside the paint mask |
--port |
7860 |
Change if busy |
| Share | off | share=False; no share UI |
Troubleshooting
| Issue | Fix |
|---|---|
| Manifest / venv missing | Follow Setup; update manifest |
No paint strokes found |
Brush visibly over the white islands; ensure strokes are on the editor layers |
| Subject holes outside paint | Only paint the background islands — strokes gate keying |
| Leftover fringe in region | Raise tolerance by 5–10 |
| Port in use | Pass --port 7861 (etc.) |
| Gradio import error | Reinstall in the skill venv: pip install -U Pillow gradio |
CLI
Copy-paste commands: cli/image-region-remove-key-color-app.md
Related
- Full-image / batch keying: image-remove-white-background
- AI matting: image-remove-background