Product Image Processor
A Claude Code skill that reads image URLs from a Google Sheet, downloads at full resolution, normalizes sizing to max 2000px PNG, and removes backgrounds via rembg — saving output at each processing stage.
What it does
Type /product-image-processor in Claude Code and point it at a Google Sheet with image URLs. The skill downloads every image, resizes to a consistent max dimension, and removes backgrounds using AI — saving clean, transparent PNGs ready for spec books, presentations, or procurement documents.
Three output folders, one per stage: originals/, resized/, nobg/.
Install
Claude Desktop:
- Open Customize → Browse plugins
- Click + → Add marketplace from GitHub
- Enter
AlpacaLabsLLC/skills-for-architects - Install the Product & Materials Research plugin
Claude Code (terminal):
claude install github:AlpacaLabsLLC/skills-for-architects/05-materials-research
Dependencies
Requires Python 3.9+ with Pillow, rembg, and onnxruntime. The skill auto-installs missing packages on first run. The u2net background removal model (~170MB) downloads once and is cached.
Usage
/product-image-processor
Then provide a Google Sheet ID and tell it which column has image URLs. Optionally specify a name column and output path.
/product-image-processor
Sheet: 1FMScYW9guezOWc_...
Image URL column: AC
Name column: C (Product Name)
Output: ~/Documents/Work-Docs/product-images-2026-03-04/
Processing pipeline
| Stage | What happens | Tool |
|---|---|---|
| Download | curl -L each URL, preserve original format | curl |
| Resize | Scale to max 2000px longest edge, convert to PNG, skip upscaling | Pillow |
| BG Remove | AI background removal via u2net, output transparent PNG | rembg |
Files are named sequentially with slugified product names: 001-eames-lcw.png, 002-vardagen-vaso.png, etc.
How it handles failures
The skill never stops a batch on a single failure:
- Download failures (404, timeouts) — logged and skipped, batch continues
- Resize failures (corrupt files) — logged and skipped in subsequent stages
- rembg failures (vectors, icons) — logged, original kept in
resized/ - Sheet read errors — stops and asks to verify the spreadsheet ID and column
After every batch: success/failure counts per stage with reasons.
Pairs with
Use /product-spec-bulk-fetch to extract product specs and image URLs from vendor pages into a Google Sheet, then run /product-image-processor on that sheet. Fetch specs → process images → spec-ready assets.