Image Editor Skill
Core Rules (NEVER BREAK)
- Preserve original resolution — never resize, scale, or change dimensions
- Verify every output with vision model — use the
imagetool to check the result before delivering - Use PIL directly — Python PIL/Pillow for pixel-level manipulation, not external tools
Workflow
Step 1: Analyze the original image
python3 -c "
from PIL import Image
img = Image.open('PATH')
print(f'Size: {img.size}, Mode: {img.mode}')
"
Step 2: Identify target region
- Open the image with
readtool (supports jpg/png) - Use
imagetool with prompt "identify the exact pixel coordinates of [target area]" - Record: x_start, y_start, x_end, y_end
Step 3: Edit with PIL
from PIL import Image, ImageDraw, ImageFont
img = Image.open('INPUT')
draw = ImageDraw.Draw(img)
# For text replacement:
# 1. Fill background color over old text
# 2. Draw new text with matching font/color
# macOS Chinese fonts: /System/Library/Fonts/STHeiti Light.ttc
font = ImageFont.truetype('/System/Library/Fonts/STHeiti Light.ttc', size=PIXEL_SIZE)
draw.text((x, y), 'NEW TEXT', fill=(R, G, B), font=font)
img.save('OUTPUT.jpg', quality=95)
Step 4: Verify output (MANDATORY)
Use the image tool on the output file with prompt:
"Compare this edited image with the original at ORIGINAL_PATH. Is the text replacement correct? Is resolution preserved? Any artifacts?"
Step 5: Only deliver after verification passes
Common mistakes (from real failures)
- ❌ Using web_fetch to "download" an image (it resizes)
- ❌ Skipping vision verification
- ❌ Calling external APIs that don't support the format
- ❌ Saving with wrong quality/format
- ✅ PIL direct pixel manipulation
- ✅ Vision verification of every output
