当摄影遇上工笔:一个图像 skill 的减法与拆分
本文目录

photo-to-gongbi-portrait 是一个遵循 Agent Skills 规范的图像生成 skill,可安装于 Codex 等 AI 助手:输入一张普通人物照片,输出一张人物保持摄影质感、背景转换为暖黄色绢本工笔画的新中式人像,其中人物的长相、表情与姿态逐部位保留,服装与发式替换为古典制式,背景以深赭墨勾线、平净设色与大面积黄绢留白构成。本文复盘它的设计过程,说明一次生成无法同时完成人物与背景两类修改的原因、两阶段隔离流程的构成方式,以及各项规则与失败案例之间的对应关系。
两阶段隔离流程
整个流程固定为两次相互隔离的图像编辑:第一阶段只修改人物造型,第二阶段只修改背景,一次调用不得同时处理两类任务。
第一阶段以原照片为唯一输入,将服装整套替换为同一历史制式的古典衣装,依据原有发型结构匹配最接近的古代发式并将发色统一为自然黑,同时逐项清除眼镜、手表、现代包袋等现代穿戴物;人物身份、表情、姿态与身体比例逐部位与原照保持一致,背景、构图、光线与景深维持原照片的摄影状态,产出的中间图仍是一张真实摄影。
第二阶段以通过质检的中间图为唯一内容底图,原照片不再传入,以避免现代服饰的细节回流;人物整体被设定为不可编辑区域,修改范围仅限人物轮廓以外的背景:背景被压缩为两到四个组团,删除区域一律恢复为裸露的黄绢,留白面积占背景的一半以上。
每个阶段生成后立即质检,未通过时仅重做失败阶段,禁止在第二阶段顺带修改人物。这一流程的依据在于,一次生成同时修改人物与背景时,两类任务互相干扰,容易出现人物被整体画化、背景串入无出处内容等偏差;将修改范围拆分并相互锁定之后,边界即可保持稳定。
过程中遇到的问题
上述规则均来自实际生成的失败案例。
第一类失败是人物被整体画化。最早的版本仅使用一条 prompt 将照片转换为工笔画,结果中荷塘背景得以保留,人物皮肤却覆上了绢本肌理,整个人像随之画化,与摄影人物置于画境的目标相悖。

据此确立媒介分层规则:人物、皮肤、头发与服装一律保持摄影质感,仅背景允许工笔化,绢纹、勾线与黄色不得进入人物内部,整幅图片亦不得统一泛黄。
第二类失败是服装残留现代元素。某次结果中躯干已呈现明制短袄的特征,袖子却仍为现代针织长袖,在吊带与牛仔裤的场景下残留更为明显;原因在于“换成古装”这类概括性指令没有反映服装的系统性,领口、肩部、袖身、腰部与下装彼此关联,概括指令只能覆盖模型最容易识别的部分。

据此将规则细化为逐部位映射:每一处均需指定替换目标,全身限定同一朝代的制式;吊带、露肩、短裤等暴露版型一律触发整套覆盖;拉链、明线、罗纹口等现代部件逐项列入清除清单。
第三类失败是背景被完整描摹。某次结果中房屋、灯具、花盆、砖缝等元素均有线条呈现,但整体仍是原照片的复写,信息密度过高;工笔画的核心在于取舍与留白,这种结果等同于将照片转描为线稿。

据此引入背景减法规则:背景按空间骨架、场所识别特征与视觉杂讯分为三层,仅保留两到四个组团,每个组团只取原照约一到两成的信息,删除区域必须完全恢复为黄绢,不得以装饰图案填补。
第四类失败是背景晕染模糊。背景元素已按要求删减,但模型以晕染与柔焦表现氛围,导致线条糊化、绢本质感消失。

据此将第二阶段的视觉语言固定为:绢本以 #C8A66A 为基准色,景物以清晰、连续、有起收的勾线建立结构,颜色平涂于轮廓线内;晕染、柔焦与景深逐项禁止,远景以更浅的线条与更淡的色块表达。
从原片到绢本
以下为完整的对比,每组依次为原照片、第一阶段结束时的中间图与最终成品。





安装与注意事项
仓库位于 GitHub(tunggian/photo-to-gongbi-portrait),安装命令如下:
git clone https://github.com/tunggian/photo-to-gongbi-portrait.git ~/.agents/skills/photo-to-gongbi-portrait
Claude Code、Codex CLI 等工具默认识别 ~/.agents/skills/ 目录,若工具使用其他路径,以其文档为准;安装后重载会话,发送人物照片并说明“把这张照片转成工笔画摄影”即可触发完整流程,最终仅输出通过质检的成品,中间图、提示词与质检过程均不展示。
使用时需注意以下事项。该 skill 的提示词链路较长、约束粒度细,对模型的指令遵循能力要求较高,实测搭配 OpenAI Codex 效果最佳,其他环境中出现人物漂移或背景过密多源于遵循能力的差异;输入照片以人物清晰、光线充足为佳,背景的复杂程度由背景取舍环节处理;生成结果具有随机性,同一照片多次运行的结果存在差异,质检未通过的阶段会自动重试,不满意可整体重跑。