Shape Photo Wall
本 Skill 由 kekele.hu 原创。Copyright © 2026 kekele.hu. All rights reserved. 完整说明见 LICENSE.md。
使用 scripts/shape_photo_wall.py 在本机生成照片墙。脚本读取现有照片,生成新的 PNG、JPEG 或 WebP,不修改、不移动、不重命名、不上传原图。中国地图边界数据保留独立 MIT 许可证,见 assets/LICENSE-china-boundaries.txt。
运行条件
- Python 3.10 或更高版本;
- Pillow 9.1 或更高版本;
- WorkBuddy 需要能够在本机执行 Python 命令。
开始前运行 python -c "import PIL; print(PIL.__version__)"。若当前解释器缺少 Pillow,先寻找用户已经配置好的 Python;不要静默安装依赖,也不要修改用户的全局 Python 环境。
工作流程
- 确认输入照片文件夹、形状、裁切方式和新的输出路径。用户没有要求覆盖时,不覆盖任何已有输出。
- 选择形状:
-heart:心形;
-circle:圆形;
-star:五角星;
-china:内置中国地图装饰性轮廓,使用前阅读references/china-map.md;
-text:文字形,需要--text,中文应指定支持中文的字体;
-mask:自定义蒙版,需要--mask PATH。 - 每次通常同时生成
--preview和--report。照片少、形状不清楚时,可以使用--tiles N --repeat;所有原图会先各使用一次,再均衡重复。 - 命令完成后读取 JSON 报告,并实际查看成品:
-inputs.valid应符合预期;
-unused_sources应为空;
- 未请求重复时,repeated_sources应为空;
- 检查形状、人物裁切、间隙、边框、背景、文字和小岛区域;
- 确认输出尺寸、格式和 SHA-256。
常用命令
python scripts/shape_photo_wall.py `
--input "D:\照片\家庭照片" `
--output "D:\照片墙\家庭照片-心形-v1.png" `
--shape heart `
--width 3000 --height 3000 `
--preview "D:\照片墙\家庭照片-心形-v1-preview.jpg" `
--report "D:\照片墙\家庭照片-心形-v1.json"
中国地图照片墙推荐横向画布:
python scripts/shape_photo_wall.py `
--input "D:\照片\家庭照片" `
--output "D:\照片墙\家庭照片-中国地图-v1.png" `
--shape china `
--width 6000 --height 4000 `
--gap 10 --radius 14 --border 3 `
--shuffle --seed 2026 `
--preview "D:\照片墙\家庭照片-中国地图-v1-preview.jpg" `
--report "D:\照片墙\家庭照片-中国地图-v1.json"
完整参数和更多示例见 references/usage.md。
不可突破的边界
- 原始照片始终只读,不用生成式图片替代、补造或改变人物、面孔、物体和背景。
--fit cover会确定性裁切照片边缘,不能声称完整保留每张照片;需要完整画面时使用--fit contain。- 私人照片默认只在本机处理,不上传外部服务。
- JSON 报告包含文件名和绝对路径,应按私人元数据管理。
china输出属于装饰性照片墙,没有审图号。公开、商业、出版、新闻、教育、展览、产品或 App 使用前,应从当前有效的标准地图开始,核对送审与审图号要求,并完成人工合规复核。- 命令成功不能替代视觉验收。未查看实际成品时,不宣称完成。
WorkBuddy 执行约束
- 只读取用户明确指定的照片、蒙版、字体和输出目录。
- 不联网、不调用外部图片服务、不上传素材。
- 不自动安装 Python、Pillow 或其他软件。
- 不使用
--force,除非用户明确要求替换已存在的输出。 - 交付时说明成品、预览图、报告的实际路径,以及完成的结构检查和视觉检查。