写真拍摄企划(photo-shoot)
写真拍摄企划的维护记录。
- 上游:yang0/handraw-style 仓库1的
skills/couple-photo-orchestrator/,作者 yang0,MIT 加一条署名要求:基于它的二次开发要在文档、仓库、产品说明或界面里保留原作者 yang0 和原仓库链接2,本页就是署名处。上游是一个「完整工程包」:入口SKILL.md、总控skills/zongkong/、6 个子 skill(kefu、hairstyle、makeup、meihua、huanzhuang、paishe),规则真身在CORE_REQUIREMENTS.md,包内版本号 2.24.24,仓库version.json是 1.9.1。正文本来以中文为主,kefu、zongkong 的 references 和几处模板有大段英文 - 入口和 zongkong 的关系:两份
SKILL.md的 name、description 一字不差。zongkong 是完整工程包里的总控,比入口多「内部路由」「聊天优先 / 工程持久化两种入口」「旧工程兼容」和一大段真人参考图规则,脚本也放在它下面;入口是仓库对外的安装入口。2026-10-04 的三个提交(首轮方向卡改成可复制的代码块、末尾加「出8宫格图片。」、回 A/B/C 直接出图)只改了入口、CORE_REQUIREMENTS.md、kefu 的方向卡模板和 zongkong 的interaction-modes.md,没碰 zongkong 的SKILL.md。这里两份合成index.md,冲突处按 10-04 的版本 - commit:钉在
2a25a07(2026-10-19),当天读 - 跳过:
- 25 个测试:各子 skill 和
scripts/下的tests/ scripts/build_release.py:正式 ZIP 的构建器,查目录完整、文件数、三处版本号同步、YAML 可解析、Python 可编译、缓存清理README.md、README.en.md、skills/kefu/README.md、CHANGELOG_COUPLE_PHOTO_ORCHESTRATOR.md、TEST-REPORT.md、UPGRADE-NOTES.md、PACKAGE-MANIFEST.md、CURRENT_VERSION.md,以及docs/assets/readme/下 7 张 README 演示图CORE_REQUIREMENTS.md不单独成页:它是规则真身,规则并进入口和各 reference;「维护规则」一节(先改需求再改 Skill、三处版本号同步、示例图统一 WebP)和 Release Builder 一条是上游自己的维护流程,没收- paishe 的
generation-brief.yaml、main-visual-review.yaml:旧版「先出一张主视觉图、确认后再出 Shot List」路线的产物,现行脚本不再写,只有validate_project.py的旧工程校验还认 - 版本号叙事:各页按版本追加的「2.24.20 妆发 Hard Gate」「2.24.21 执行链路 Hard Gates」这类小节和模板尾部的「2.24.21: …」注释,规矩并进对应位置;frontmatter 的
version、language - zongkong 的「旧工程兼容」一节和
shot_board.py compose(旧的 8 张单图拼板):脚本照旧兼容,文档只在交接文件页提一句旧双人字段
- 25 个测试:各子 skill 和
- 翻译之外的改动:
- 重组:两份
SKILL.md和CORE_REQUIREMENTS.md→ 入口加 7 篇 reference;zongkong 的quality-contract.md拆成质量下限和地点两篇,kefu 正文里的地点规则和global-landmark-fallback.md并进地点那篇;identity-reference-policy.md和 CORE 里三节真人身份规则、paishe 的 Identity Lock v2 并成真人身份参考;few-shot-hard-gate.md并进时空方向;发送前检查单单独成页;出图是新写的 - 子 skill 目录:kefu →
requirements/,hairstyle →hairstyle.md,makeup →makeup.md,meihua →beauty-prep.md,huanzhuang →wardrobe/,paishe →shooting/。发型师、化妆师的模板只是输出字段清单,并进各自页面;美化的两个模板是 prompt,并成美化页里的两段;kefu 的requirement-field-guide.md和正文重复,并进需求页,confirmation-sheet.md、couple-look-plan.md、look-plan.md合成完整 Look,7 个示例合成一页;paishe 的qinglv.txt、hunsha.txt、qunxiang.txt各成一页骨架,4 个文档模板和放大 brief 合成 Shot List - 生图换成 agent-io:上游默认宿主自带生图工具(ChatGPT 的 image generation),参考图靠会话里的附图引用。改成 生成、编辑图片 的 gpt-image-2.5:没真人照片走生成接口,有真人照片走编辑接口,身份原图在前、构图参考在后放进
images[],prompt 开头写明每张图的用途;宫格请求的size用户没指定写"1:1"(上游不给整板比例,接口要写size);放大单张竖幅"4:5"、横幅"3:2",照shot_board.py的 orientation。多张参考图的顺序约定没实测过 - 几处冲突按 10-04 统一:回 A/B/C 就是授权出图,不先输出完整方案,
quality-contract.mdF 节和 CORE 第 11 节「自主模式实际生图仍需用户明确提出」作废;方向卡用text代码块,不再用加粗字段;原创虚构世界只在用户要求时进抽卡池(kefu 5.5 节的旧版放在默认池里);纯男性项目不加白皙柔焦,但化妆师照走(zongkong 写「默认不加」,CORE 写「不跳过」,两句说的是两件事) - 示例 01–04 改写:原来的「推荐回复」是让用户在 A–E 几种子风格里选一题,和现行规矩冲突(字母只给方向卡用、首轮直接出 A/B/C、不做问卷),改成把分叉拉开到三张方向卡里,解析要点照留;Cosplay 例保留「没给 IP 要问」
- few-shot 排除集写明范围:示例页、地点页和联想页里的示范锚点、分享卡的例句。上游的地点谱系和示例同时出现巴黎圣日耳曼、京都东山八坂塔,没说怎么办,这里按 few-shot 处理
- 枚举值对齐脚本:交接文件的
confirmation_source用direction_selected/ai_auto_confirmed,kefu 正文写的direction_selection不在validate_project.py的白名单里;概念化私人室内只用conceptual_private_interior,quality-contract.md里另外两种写法脚本不认;放大 brief 的aspect_ratio写4:5,上游模板的3:4和脚本实际写的对不上 - 按代码写的:上游文档说
register-grid「只叠加准确数字编号」,代码在自由布局下只登记、不叠编号 - 占位:三份出图骨架的
{…}改成填空输入框,选项列表放进 placeholder 当「比如」,群像的逐人描述和逐人调度用多行框;其余模板是给 AI 填的输出格式,留在代码块里,占位字段名译成中文;交接文件、Shot JSON、分享卡 JSON 的键名和枚举值保持英文(脚本按它们解析),注释和自由文本译成中文 - 复刻提示词:分享卡的调用句前缀
@couple-photo-orchestrator改成@写真拍摄企划,脚本同改 - frontmatter:各页
name改成中文能力名,description改写成什么时候用、用了做什么;入口开头补领域建模,页尾加维护记录链接 - 2026-10-19 在临时目录端到端跑过工程模式:建工程 → 建主题 → 用译后的交接文件模板填一对情侣 → 校验 →
shot_board.py create→share_card.py→prepare-grid(没编分享文案时被拦,编完放行)→register-grid→select→complete,每步校验 VALID;换装的 create → prepare-grid → register-grid → select 也跑通。跑出两件上游文档没写的事,写进了页面:手动把主题stage改成LOOKS_CONFIRMED后要跑theme_manager.py switch同步主题登记,否则校验报 out of sync;wardrobe_board.py select整个重写交接文件,identity_map和几项策略要补回去 - 部署时整个目录打成
photo-shoot.tar.gz,声明写在入口首段
- 重组:两份
脚本
9 个脚本随附,只在用户要求保存工程时用,依赖 PyYAML 和 Pillow(文件头不改,文档写 uv run --with pyyaml --with pillow):
| 位置 | 脚本 | 上游位置 | 改动 |
|---|---|---|---|
入口 scripts/ | init_project.py、theme_manager.py、theme_workspace.py、validate_project.py、identity_reference_manager.py、remix_dependencies.py | skills/zongkong/scripts/ | 原样 |
wardrobe/scripts/ | wardrobe_board.py | skills/huanzhuang/scripts/ | 第 18 行 THEME_SCRIPT_DIR 从 parents[2] / "zongkong" / "scripts" 改成 parents[2] / "scripts" |
shooting/scripts/ | shot_board.py | skills/paishe/scripts/ | 同上 |
shooting/scripts/ | share_card.py | skills/paishe/scripts/ | 第 25–26 行复刻提示词的前缀校验改成 @写真拍摄企划 |
shot_board.py、wardrobe_board.py跨目录 import 入口的theme_workspace.py,所以整包是整个photo-shoot/- 脚本拼出来的出图 prompt 里还写着上游子 skill 名 meihua,对出图没影响,没改
上游更新
只由人来做,AI 不要执行。
git clone --depth 1拿上游新 commit,和2a25a07比对skills/couple-photo-orchestrator/- 脚本有变化直接覆盖,再改回上表那三行
.md、.txt、.yaml有变化的,按上面的重组对应关系找到这边的页面重写;新冒出来的版本号小节照旧并进对应位置- 上游增删了文件:同步
mkdocs.yml的 nav 和所属入口的 reference 列表 - 更新本页的 commit、日期和脚注里的永链
-
yang0/handraw-style @ 2a25a07,2026-10-19 读;本 skill 取自其中的
skills/couple-photo-orchestrator/。 ↩ -
handraw-style 的 LICENSE @ 2a25a07,MIT License (with Attribution Requirement),2026-10-19 读。 ↩