JustAI 个人技能库 · 交付记录
把一个主题变成三张「像真人随手拍完随手写了几个字」的封面图。内含 7 种风格,按内容品类自己匹配,不需要用户懂设计。
这一节是给技能作者看的:它到底靠什么起作用,以及提示词该怎么写才不会塌。
原素材正文自己点破了机制:有烟火气、像真人随手做出来的图,更容易拉近距离。信息流里精修图和 AI 图已经泛滥,用户对「完美」产生了免疫,反而对「这是个真人、他就在现场」有反应。所以活人感不是一种审美,是一种反工业化的信任信号——这是整个技能唯一不能丢的东西。
原文里最值钱、也最容易被跳过的一句是:「人像原图尽量选择动态姿势,不要僵硬正面证件照,姿势越放松,活人氛围直接翻倍」。它意味着活人感的六成在选照片,不在后期。所以技能把「照片体检」放在生成之前,姿势这一项是一票否决——正面证件照姿势做出来的封面必然僵,宁可换一张。
用户不会说「我要 S3」,只会说「帮我做个封面,主题是 XXX」。所以技能必须自己走完这条链,中途不许停下来问:
匹配的主信号是内容品类,副信号是素材形态,副信号有一票否决权:主题是「歌单清单」最适合 S4 双图拼接,但用户只给了一张照片,S4 就不成立,降级到备选。
| 段 | 写什么 |
|---|---|
| 1 | 视觉印象 + 页面职责 这张图看上去像什么、要让人产生什么反应。先说印象,再说做法。 |
| 2 | 场景 具体到看得见的东西:桌上有什么、地上有什么。必须写死画质档位——普通手机主摄直出、无补光灯、暗部噪点、高光溢出、白平衡不准。 |
| 3 | 主体 衣着 + 具体动态姿势 + 描边与否 + 是否越出边界。不要只写「一个女生」。 |
| 4 | 画面文字参考 逐行列出,标注主标题样例 / 贴纸小字样例,写明可替换。回头数一遍主标题字数。 |
| 5 | 装饰 + 禁止 贴纸种类和数量;禁止水印、真实 Logo、真实 ID、棚拍感、居中对齐。 |
| 偏差 | 模糊写法(会塌) | 精确写法 |
|---|---|---|
| 变成 AI 精修图 | 一个女生在办公室 | 手机随手拍的抓拍照,办公桌上有水杯纸巾盒,室内白炽灯偏冷,有轻微手机噪点,构图不完美 |
| 姿势僵硬 | 人物站在画面中间 | 侧身坐在办公椅上,一手举奶茶朝镜头抬起,头微微歪着 |
| 描边没效果 | 给人物加描边 | 沿人形轮廓描一圈厚白边把她从背景剪出来,肩膀和举杯的手越过底图边缘一点 |
| 换行被画成斜杠 | 喝完这杯/状态回来 | 第一行:喝完这杯 第二行:状态回来 |
提示词里用斜杠表示换行,模型会把斜杠当成图形直接画进画面。多行文字必须一行一句分开写。同理,「第一首歌名占位」这类占位符也会被一字不差地画上去——占位符只能活在提示词里,不能进画面。
原素材是一张九宫格 + 九张单图。九张风格差异极大,但共用同一套底层规则。逆向时的关键判断是:把公约数抽成刚性锚点,把九张样张抽成可选风格模块,而不是把九张各写成一个独立技能。其中 3 张(工位 / 种草 / 读报)底层是同一套「荧光描边 + 手写大字」,合并成 S1。
白厚描边把人从背景剪出来,黄手写大字压顶,两条小贴纸补句子
超大白厚描边黑体英文把人夹在文字层中间,配立体 emoji 和假关注按钮
Win98 画图程序当底图,手写纸片标签盖在窗口上,角落放一个卡通分身
上下两块照片硬拼,一根荧光耳机线跨过分界把两块缝成一张
六到八个倾斜胶囊标签把人包在中间,每条一句人设短语
灰噪点地图底 + 蓝黄字块错落 + 白描边人物,唯一允许高信息密度的风格
手写大字从人物身前身后穿插而过,一句态度宣言直接筛人
以上为原素材样张,仅用于说明风格来源。技能里已剔除原图中的平台标签贴、品牌 Logo 和真实账号 ID。
同一句用户提问、同一套隔离流程,只有技能正文变了。测试提问:「帮我做个封面,主题是我最近单曲循环的6首深夜通勤歌。」两轮都自己选出 S4 主推 + S1/S5 备选,说明匹配规则是稳定的,不是随机的。
上下两块都很暗,物件看不清;那根连接线没有起点也没有终点,只是一条装饰曲线。三张图里有两张长得差不多。
把 S4 的字体写死成「圆润糖果体,笔画等粗、末端圆头」并明确禁止毛笔笔锋;连接线改成必须有起点终点——荧光绿耳机线从手机口出发,跨过硬分界连到耳朵。
打光讲究、景深漂亮、人物过于上镜。锚点第一条「手机随手拍」实际没兑现——技能当时只写了「实拍质感」,强度不够。
新增画质档位硬要求:普通手机主摄直出、没有补光灯、暗部有噪点、高光有溢出、白平衡不准、轻微手抖;并明确禁止电影感 / 大片感 / 浅景深 / 专业布光 / 胶片调色。
描边、手写大字、速度线、贴纸小句,四层齐全。
描边更完整,蓝色星星 + 速度线 + 两条黑底贴纸,按新的计数规则控制在 3 种以内。
技能的默认路径是不需要用户上传照片——大多数用户手上没有合适的素材,停下来问等于流程断掉。所以这一节的「输入」是一句话主题,不是原图。下面三张来自同一句提问,技能自己选了三种风格。
走这条路的理由:歌单是「我的 N 个 Y」式清单,上块放物件、下块放人,中间一根线把两件事缝起来,一张图能同时讲清「听什么」和「在哪听」。
情绪最直给的一条路。当用户想让人看到的是「我此刻什么状态」而不是「我整理了哪几首」时,S1 比 S4 更合适。
把六首歌拆成六个可扫读的场景短词。适合想让人逐条读完、并且在某一条上认领自己的场合。
用户如果给了照片,走的是另一条路——把照片作为参考图传入,提示词只描述「保留参考图里的人物、姿势和场景,只做描边和文字叠加」。下面三组的左边是一张普通随手拍,右边是同一张照片走完技能之后的样子:人、姿势、桌上的杂物、地上的水渍全都原样保留。
白厚描边把人剪出来,端咖啡的手越出边缘;桌上那堆没收拾的文件一样没动。
同一张照片,只叠了描边和文字层。
换 S6 撞色拼贴:标题逐字拆进蓝色方块,左右竖排写利益点,底部一条黑色通栏。
同一张照片,只叠了描边和文字层。
线上测试提问:「帮我做一张封面图,主题是我第一次一个人去菜市场买菜。」技能自己选了 S1 主推 + S4 / S5 备选,三张风格互不相同、字体族也不同。
白厚描边把人从菜市场背景剪出来并越出左下边缘,荧光黄手写大字两行错落压顶,两条黑色胶囊贴纸补句子。
上块菜摊俯拍带手写价签,下块人物仰拍举大葱,荧光黄手绘箭头跨越分界。标题是紫 + 绿的圆润泡泡体。
七条胶囊标签写的是真实心理活动(讨价还价失败 / 认不清菜名 / 买了半斤土豆),不是占位符。
这个技能会主动拒绝一部分输入,也会作废一部分自己的产出。两件事都要摆出来。
| 检查项 | 合格 | 判不适合 |
|---|---|---|
| 拍摄方式 | 手机随手拍、现场光、背景有真实杂物 | 影棚布光、纯色背景、修图过度、AI 人像 |
| 姿势(一票否决) | 侧身、仰拍、举手、歪头、张嘴、走动中 | 正面直立、双手垂放、职业微笑、证件照 |
| 环境 | 办公室 / 街头 / 家里 / 店铺门口,看得出在哪 | 抠好的白底、虚化到看不出场景 |
| 人物完整度 | 半身或全身,轮廓清楚,能描边 | 大头贴到只剩五官、肢体被裁得只剩一半 |
主流程从头到尾走的都是「无照片默认路径」,所以照片体检对真实用户照片的拒绝率,没有样本可以报——这四条规则目前只是写下来了,没被真实的坏照片检验过。图生图那条路径倒是在推广环节补测通过了:先生成一张普通随手拍当原图,再把它作为参考图丢回技能,三张都完整保留了原照片的人物、姿势、场景和杂物,只叠了描边和文字(见下方「原图 → 成品」)。
主流程的测试主题只路由到了 S1 / S4 / S5,另外四种风格当时只有配方、没有产物。做推广素材时用新主题各跑了一张补上,四种机制都成立。
超大白厚描边英文把人夹在文字层中间,立体 emoji 贴纸 + 假关注按钮 + emoji 胶囊条。机制成立。
Win98 画图程序当底,手写纸片标签带四个控制点盖在窗口上,角落一个 3D 卡通分身。机制成立。
黑白网点地图底 + 橙色字块错落 + 白描边人物 + 左右竖排利益点。没有出现机构名,也没有承诺任何结果或数字。
橙黄手写大字从人物身前身后穿插而过,配三四个极小像素图标。机制成立。
六条标签写着「第一首歌名占位」——模型把提示词里的占位符一字不差地画上去了。这张不能发,已回写技能第七节新增第 3 条写法细则,并加进自检清单。
S4 的字体跑成毛笔体,和同一组的 S1 几乎分不出来。一组三张的意义就是给用户三个不同选择,撞脸等于这一组只有两张有效。
最终采用样张扇形展示:四张卡片分别是四种风格,缩略图尺度下一眼能看出「这个技能会出好几种不同风格的封面」——这正是它的核心卖点。
从左到右:S1 荧光描边(暗底黄字)、S2 英文厚描边(暖调)、S5 标签云(冷调粉字)、S6 撞色拼贴(橙蓝)。四张的色调、构图机制、字体族两两不同。由 tools/make_fan_skill_cover.py --fullbleed 生成,1600×900。
封面 SOP 默认禁止把多张测试图排成扇面、矩阵或画廊,要求最终封面是 AI 一次性生成的单一主视觉海报。本次由用户明确指定改用样张扇形模板,属于 SOP 的例外条款,授权来源已记录在 cover/cover-brief.md 和 cover/cover-selection.md 里。
这一版仍然保留在 cover/cover-final-ai-poster-previous.png。三个候选都是主视觉、背景、标题同一次生成,没有后期叠字,中文全部正确。它的长处是本身就是技能的产物,看封面等于看了一次成品;短处是只能展示一种风格。
缩略图尺度下最清楚:画面最亮、主体最大、表情最外放。弱点:主标题左起两字压在浅灰天花板上,黄字对比略弱。
标题对比度三张里最强(荧光黄压深灰卷帘门),但整体偏暗偏冷,人物挤在最右且被裁掉一半,缩略图下重心偏。
氛围最有生活气,但人物低着头看不见脸——技能卖的是活人感,封面上的人却没有表情,这一条不成立。
按流程规定,线上测试预算 1 次,已用 1 次。判定:通过,但有三个如实记录的问题。
| 判据 | 结果 |
|---|---|
| 确实走了指定技能,不是通用图文模板 | ✅ 输出里直接引用了 S1 / S4 / S5 的风格名和配方,这些名字只存在于本技能里 |
| 提问足够小白,没有夹带内部规则 | ✅ |
| 按技能定义产出完整图片产物 | ✅ 主推 1 张 + 备选 2 张 + 标题候选 + 一句选型说明 |
| 三张风格互不相同、各自成立 | ✅ 描边抠图 / 双图拼接 / 标签云三套机制清晰,字体族也不同 |
| 活人感锚点 | ✅ 三张都是菜市场真实抓拍质感;姿势都是动态的 |
| 无平台水印 / 真实品牌 Logo / 真实账号 ID | ✅ |
| 无虚构数据、资质、背书 | ✅ 价签上的菜价属于场景道具,不构成对外承诺 |
| 没有展示内部生成提示词 | ✅ |
技能第六节写死「主标题 6-12 字」,线上主推图的标题是「第一次一个人买菜,站在菜摊前懵了」共 15 字。成因是这条约束只写在「标题文案」一节,组装提示词的第七节没有复述它,模型把它漏掉了。已回写:第七节第 4 段加了一句「写到这里必须回头数一遍主标题字数」。
备选图的「属于打工人的烟火气」,「于」被画成了「手」;另一张的「第一次独立买菜指南」,「立」多了个提手旁。这是 gpt-image 对中文手写体的固有限制。技能里已写「出错字就重新生成,不要事后叠字」,但线上是一次性生成、没有人工复看环节,这条规则在线上兜不住。本地使用时人工看一眼重出即可。
按 5.1 表,「日常状态 / 生活流」行的备选应是 S3 / S7,线上给的是 S4 / S5。主题「第一次一个人去菜市场」同时沾「日常」和「探店」两行,说明品类表缺跨行优先级规则。已回写:新增 5.3 节,按「用户最想让人看到的那件事」定主行,另一行的主推降级成备选。
问题 1 和 3 的修正是在线上测试之后回写的,并局部更新了同一个 skill_id(只传 --prompt-file,没有改 market_status / enabled / load_strategy / name / description,更新后已确认 enabled=true、market_status=off 未变)。所以线上现在跑的是「已通过测试的版本 + 两条未经线上验证的收紧规则」。要验证这两条,需要你明确授权再跑一次线上测试。
页面里的路径是纯文本,不可点击(浏览器沙箱打不开 file://)。在终端里跑下面这行可以直接打开任务目录:
| 产物 | 相对路径 |
|---|---|
| 技能文件(上传用的就是它) | 活人感封面-skill.md |
| 逆向分析 | analysis.md |
| 七种风格的逆向提示词 | prompts/ |
| 本地测试记录 | local-test.md |
| 本地图片 · 改前 | local-image-test/v1/ |
| 本地图片 · 改后 | local-image-test/v2/ |
| 整套一览 | local-image-test/contact-sheet.png |
| 封面 brief / 提示词 / 选型 | cover/cover-brief.md、cover/cover-prompts.md、cover/cover-selection.md |
| 最终封面(样张扇形) | cover/cover-final.png |
| 上一版封面(AI 单主视觉) | cover/cover-final-ai-poster-previous.png |
| 线上测试记录 | online-test.md |
| 线上返回图 | online-test-images/ |
| 原素材(10 图 + 正文 + JSON) | source/ |
| 推广内容包(4 条 · 27 图) | 推广/ |
| 进度卡 | run.json |
| 本页备份 / 构建脚本 | delivery-artifact.html、build-delivery-artifact.py |