Tapcanvas Collage Local
Documentstapcanvas-collage-localTapcanvas Collage Local is an Agent Skill for documents published in the anymouschina/TapCanvas repository on GitHub: a SKILL.md instruction file an AI agent can load to do this task.
Use local Python Pillow to compose storyboard/role-card collages with per-cell role-name labels. No model call needed.
QUICK START
How to use this skill
Bring this guide into your coding agent with a prompt tailored to the tool you use.
- Open your project in Codex.
- Copy and paste the prompt below.
- Review files and risks before approving any action.
Prompt to paste
Inspect the Agent Skill at https://github.com/anymouschina/TapCanvas/blob/HEAD/apps/agents-cli/skills/tapcanvas-collage-local/SKILL.md and all supporting files. Report provenance, permissions, scripts, dependencies, and security risks. Propose an exact installation into .agents/skills/tapcanvas-collage-local, but wait for my approval before writing files or running scripts.
Copying this prompt does not install or run the skill. Review third-party files before use.
TapCanvas Local Collage
Use this skill when the task is:
- merge multiple storyboard frames into one grid image
- merge role-card images and add role-name labels
- avoid model-based collage generation
This skill is local-first and deterministic. It does not call any model API.
Prerequisites
- Python 3.9+
- Pillow
Install:
python3 -m pip install --upgrade pillow
Script
Path:
skills/tapcanvas-collage-local/scripts/collage.py
Input modes
You can pass image inputs as:
- local file paths
- HTTP/HTTPS URLs
Usage examples
- 2x2 collage with role labels:
python3 skills/tapcanvas-collage-local/scripts/collage.py \
--input ./tmp/shot1.png \
--input ./tmp/shot2.png \
--input ./tmp/shot3.png \
--input ./tmp/shot4.png \
--label "真宫寺唯" \
--label "萧夜" \
--label "真宫寺唯" \
--label "萧夜" \
--output ./tmp/role-collage.png \
--grid 2 \
--cell-size 640 \
--divider-width 4 \
--divider-color "#ffffff"
- URL inputs, auto grid:
python3 skills/tapcanvas-collage-local/scripts/collage.py \
--input "https://example.com/a.png" \
--input "https://example.com/b.png" \
--input "https://example.com/c.png" \
--output ./tmp/storyboard-collage.png \
--grid auto
Behavior
- Fills each cell with center-crop + resize (stable visual layout).
- Draws a semi-transparent dark label strip at cell bottom.
- Draws per-cell label text in white.
- If labels are fewer than images, remaining cells are unlabeled.
- If labels are more than images, extra labels are ignored.
Output
- Default output format: PNG.
- Ensure output path parent directories exist (script auto-creates).