Picwish Skills
by @px94
Root routing skill for PicWish (佐糖) image processing capabilities. Routes to: picwish-segmentation, picwish-face-cutout, picwish-upscale, picwish-object-remo...
clawhub install picwish-skills📖 About This Skill
name: picwish-skills description: >- Root routing skill for PicWish (佐糖) image processing capabilities. Routes to: picwish-segmentation, picwish-face-cutout, picwish-upscale, picwish-object-removal, picwish-watermark-remove, picwish-id-photo, picwish-colorize, picwish-compress, picwish-ocr, picwish-smart-crop, picwish-clothing-seg. Requires env PICWISH_API_KEY or openclaw config skills.entries.picwish.apiKey. China mainland users set PICWISH_REGION=cn via env or openclaw config. requirements: credentials: - name: PICWISH_API_KEY source: env | openclaw-config:skills.entries.picwish.apiKey - name: PICWISH_REGION source: env | openclaw-config:skills.entries.picwish.region required: false default: global permissions: - type: file_read paths: - ~/.openclaw/config.json - ~/.openclaw/workspace/scripts/ - ~/.openclaw/workspace/visual/ - ./ - type: file_write paths: - ~/.openclaw/workspace/visual/output/ - ./output/ - type: exec commands: - node
Purpose
This is the top-level routing skill for PicWish image processing. It routes user intents to the appropriate sub-skill. Each sub-skill maps to exactly one PicWish API endpoint.
Available Skills
| User Intent | Routes To |
|---|---|
| Remove background / transparent PNG / cutout | picwish-segmentation |
| Face/avatar cutout | picwish-face-cutout |
| Sharpen / upscale / enhance resolution | picwish-upscale |
| Erase object with mask / inpaint | picwish-object-removal |
| Auto watermark removal | picwish-watermark-remove |
| ID photo / passport / visa photo | picwish-id-photo |
| Colorize B&W photo | picwish-colorize |
| Compress / reduce file size / resize | picwish-compress |
| OCR / extract text | picwish-ocr |
| Straighten document / crop / perspective correction | picwish-smart-crop |
| Clothing segmentation / fashion parsing | picwish-clothing-seg |
Image Input Resolution
Before routing to a sub-skill, resolve the image source using the following priority:
1. URL in message — User provided https://... link → pass as image_url (or url for watermark-remove)
2. Local path in message — User provided an absolute/relative file path → pass as image_file (or file for watermark-remove)
3. File attachment — User uploaded/attached an image file:
- If the platform provides a temporary file path for the attachment → use as image_file
- If the platform provides a temporary URL for the attachment → use as image_url
- If the platform provides base64 data → pass as image_base64 in --input-json (optionally set image_ext for the file extension, defaults to png); run_task.mjs handles the decoding internally via Node.js without any shell commands
4. No image found — Ask user: "Please provide an image (URL, local file path, or attach a file)."
> All sub-skills follow this same resolution order. The resolved image_url or image_file is passed into --input-json.
Permission Scope
file_read covers the OpenClaw config, project files in the current workspace, shared visual memory under ~/.openclaw/workspace/visual/, and helper scripts under ~/.openclaw/workspace/scripts/.file_write covers project-mode output (./output/) and one-off outputs under ~/.openclaw/workspace/visual/output/.exec covers node for run_task.mjs execution and optional oc-workspace.mjs helper.oc-workspace.mjs Safety
oc-workspace.mjs is only looked up at ~/.openclaw/workspace/scripts/oc-workspace.mjs — a fixed path fully managed by the user.node if it already exists.Instruction Safety
Fallback
When intent is unclear: