chroma-cut
Preserve anti-aliased outlines while cutting chroma-backed game assets. CLI + MCP + Codex plugin.
- Stars
- 0
- Language
- Python
- Created
- Aug 28, 2026
- Updated
- Aug 28, 2026
Introduction
Chroma Cut
Remove solid-color backgrounds from AI-generated images and game asset sheets without shaving off dark anti-aliased outlines.
Use cases
- Turn AI-generated icons, props, characters, and effects into transparent PNGs.
- Split a chroma-backed sprite or UI sheet into individual assets.
- Remove magenta, green, blue, or cyan backgrounds with mild gradients and noise.
- Keep related assets on matching canvases and anchors for animation or state changes.
Features
- Automatic chroma-color detection from the crop border.
- Soft Color-to-Alpha matting with chroma-spill removal.
- Dark-outline and similar-foreground-color preservation.
- Single-asset CLI and JSON batch processing.
- Optional canvas and anchor normalization for grouped assets.
- Checkerboard, black, and white QA previews.
- Local MCP server with
cut_assetandcut_sheet.
Installation
Python 3.11 or newer is required.
python -m pip install "git+https://github.com/avdergh/chroma-cut.git"
For development:
git clone https://github.com/avdergh/chroma-cut.git
cd chroma-cut
python -m pip install -e .
Quick start
Cut one asset
The crop box format is left,top,right,bottom.
chroma-cut cut sheet.png output.png --box 100,50,500,600 --padding 12
Cut a sheet
chroma-cut batch examples/sample-job.json
Example job:
{
"version": 1,
"output_dir": "./output",
"sources": {
"sheet": "./sheet.png"
},
"assets": [
{
"name": "energy_icon",
"source": "sheet",
"box": [0, 0, 512, 512],
"padding": 12
}
],
"qa": {
"preview": "qa_checker.png",
"black_preview": "qa_black.png",
"white_preview": "qa_white.png"
}
}
Batch jobs can also normalize related assets:
same_canvas: preserve artwork scale and use one shared canvas.resize_same_bounds: resize visible artwork to matching bounds.centerandbottom_centeralignment are supported.
MCP
Start the local stdio server:
chroma-cut-mcp
Available tools:
cut_asset: cut one image region into a transparent PNG.cut_sheet: run a JSON batch job.
DeepSeek Harness
plugins/dsh-chroma-cut/ is an installable
DeepSeek Harness bundle. It
mounts the same Python MCP server through the DSH-shipped MCP client bridge,
so the agent gains two native tools:
mcp__chroma_cut__cut_asset— cut one image region into a transparent PNG.mcp__chroma_cut__cut_sheet— run a JSON batch job.
Install from npm (or a packed tarball) into a profile:
dsh plugin --profile <name> add dsh-chroma-cut
dsh --profile <name> # first run bootstraps the Python runtime in ~/.cache
See plugins/dsh-chroma-cut/README.md for details, environment overrides, and release steps.
How it works
Chroma Cut detects the backing hue from pixels around the crop border, separates the outside background from enclosed foreground regions, and estimates the local backing color around the silhouette. It then calculates fractional alpha and removes the backing-color contribution from edge RGB values. Opaque interior pixels are preserved, so black outlines and foreground colors close to the backing hue remain intact.
Limitations
Automatic mode is intended for bright, saturated, mostly single-hue backgrounds. It is not a semantic background remover for photographs, hair, smoke, glass, or complex multicolored scenes.
Testing
python -m unittest discover -s tests -v
License
MIT. See LICENSE.