git:20260818.23f7db3 to git:20260903.fa5e33b

7 added, 83 removed. Audit A to A.

---
name: niulai-movie-poster
description: >-
把用户上传的横版照片做成《牛来》式低成本电影海报。只要用户要求牛来海报、牛头电影海报、低清旧动画牛头,或明确调用 $niulai-movie-poster,就使用本 Skill;先识别照片里清楚可替换的人数,再在单人、双人、三人三套完整提示词之间路由,并只携带对应的黄色大牛、橙色小牛、黄色黑斑豹参考图。不要把三套参考无差别混用。
compatibility: "需要当前环境可用的图像生成能力;内置参考只用于当前生成,不读取用户照片到 Skill 包。"
---
# Wibi Style · 牛来电影海报
把一张横版照片转成 3:2 横版电影海报:真人照片负责真实场景、人数、姿势、衣服、手、道具和构图;低分辨率旧动画角色负责头脸反差;朱砂红片名和少量中文信息负责海报身份。成片要像认真但不包装的低成本电影宣传图,保留一点废片库式的偶然性。
不要把这个 Skill 当成普通动物换头。它的关键是:先按人数选一套完整提示词,再只带这一套需要的角色参考,避免参考图把不属于当前照片的角色、场景或全身动物搬进来。
- ## 欢迎卡
-
- 每个新对话第一次使用本 Skill 时,展示一次两段式欢迎卡,上半区身份与交流、下半区当前操作,中间只用一条分隔线:
-
- - 用户还没给照片时,运行 `python3 {baseDir}/scripts/show_skill_info.py --welcome --input-state waiting`。
- - 用户已经给了照片时,运行 `python3 {baseDir}/scripts/show_skill_info.py --welcome --input-state received`。
-
- 同一对话里只展示一次。用户主动索取或真实生图失败时,运行 `python3 {baseDir}/scripts/community_info.py` 取当前群二维码:先把图片下载到本地再渲染,不给浏览器点不开的链接;二维码过期或下载失败就不展示旧图。第一次成功生成后,展示一次署名、非商业授权与进群邀请。
-
- ## 对话语气
-
- - 使用自然、轻松的中文,告诉用户下一步是上传横版照片、确认人数路由,还是等待生成。
- - 默认不追问可以从照片判断的信息;只有人数确实数不清、或用户想指定角色位置时才询问。
- - 不把中间分析和完整内部 Prompt 发给用户。生成后用一至三句说明保留了什么、为什么选这条人数路由。
- - 失败时说明“这次没有成功生成,不会自动重新提交”,等待用户明确要求后再重做。
-
- 当前对话第一次成功生成后附上:
-
- `若公开分享,欢迎标注:Visual Skill by @威比 Hunter Wei.`
-
- `仅限个人非商业使用;商业使用请先联系作者获得许可。`
-
- `抖音、小红书同名。想看更多原创 Skill、原作者教程或参加新风格内测,可以回复“进群”。`
-
- 第二次起不再重复,除非用户询问署名、授权或交流群。
-
- ## 更新检查
-
- 随后运行 `python3 {baseDir}/scripts/check_update.py`。发现 `UPDATE_AVAILABLE` 时告知当前版、最新版和安装地址;其余状态静默。不得自动覆盖本地文件或上传用户数据。
-
- ## 交流学习群
-
- - 用户说“进群”“群二维码”或等价表达时,运行 `python3 {baseDir}/scripts/community_info.py`。
- - 输出中 `status` 为 `available` 且 `qr_status` 为 `ready` 时,说明群用途,并用 Markdown 图片语法渲染本地绝对路径 `qr_local_path`。不得渲染远程二维码或展示“点击加入微信群”链接。
- - 二维码下方说明:手机同屏时先保存二维码,再到微信“扫一扫”中从相册选择;电脑端使用手机微信扫码。无法扫码时添加备用微信 `fallback_wechat`,备注“进群”。
- - `qr_status` 为 `download_failed` 时,不展示旧二维码,只展示备用微信;`status` 为 `expired` 或 `unavailable` 时,不展示旧二维码,只展示 `landing_url` 和备用微信。
- - 生图接口报错、空输出或超时时,先说明“这次没有成功生成,不会自动重新提交”,再按上述步骤展示一次当前群信息。同一对话只展示一次失败入群卡。
- - 视觉验收不通过、用户取消、输入照片不适合或仍在等待用户选择时,不触发失败入群卡。
- - 展示二维码时提醒:群内交流请勿直接发送包含个人隐私的原图,可以先发错误提示或打码截图。
-
## 什么时候使用
用户上传照片并提出以下任一意图时触发:
- “做成牛来海报”“把人换成牛头做电影海报”;
- “用牛来这个风格”“牛来 skill”;
- “低成本旧动画牛头 + 真人照片 + 横版电影海报”;
- 明确调用 `$niulai-movie-poster`。
一次只处理一张照片。用户没有明确批量授权时,不扫描或生成其他照片。
- ## 人数路由与参考职责
-
- 先完整查看用户照片,只数能够清楚替换头脸的人。按照片中的左、中、右位置分配角色,不按性别、长相或肤色猜角色身份。
-
- | 照片条件 | 使用提示词 | 携带参考 |
- |---|---|---|
- | 清楚的 1 人 | `references/prompts/01-single.md` | `role-yellow-big-cow.png` |
- | 清楚的 2 人 | `references/prompts/02-double.md` | `role-yellow-big-cow.png` + `role-orange-small-cow.png` |
- | 清楚的 3 人 | `references/prompts/03-triple.md` | 上面两张 + `role-yellow-black-spotted-leopard.png` |
-
- 四人以上、远景小人群、脸部严重遮挡或竖版照片先停下来说明限制。默认只接受横版 3:2;如果用户明确允许裁切,再先把真实照片裁成能保住人数、头脸和关键姿势的横版底图。
-
- 参考图只提供角色头脸设计,不提供它们原来的场景、文字、姿势、背景、道具或其他角色。每次携带最少且刚好够用的参考:单人不带橙色小牛和豹子,双人不带豹子,三人才带豹子。
-
- ## 共同视觉规则
-
- 三套提示词都遵守以下优先级,出现冲突时从上往下执行:
-
- 1. 用户原图的内容关系优先:人数、位置、姿势、视线、手、衣服、道具、背景和光线不被参考图改写。
- 2. 只替换脖子以上的头脸。身体、手、衣服、四肢和物品继续来自原图。
- 3. 角色像低分辨率旧动画截帧:少色块、明暗直切、边缘略不稳、清晰度低于照片,表面粗糙。
- 4. 真人照片保持清楚,角色故意比照片低一档,形成“清楚的手机照片 × 不太讲究的动画角色”反差。
- 5. 片名固定为“牛来”,朱砂红粗毛笔字,配一枚朱红印章;下方只放 `NIU LAI` 和一两行简短中文信息。
- 6. 海报中文为主、信息少而认真。不要金色桂冠、真实影展奖项、四栏演职员表、长篇英文、商业大片字体、水墨重画背景或高级潮玩质感。
+ ## 运行顺序
- ## 运行步骤
+ 每一步只读它对应的文件,读完执行再进下一步:
- 1. 读取用户原图,确认方向、人数、角色位置、头脸角度、遮挡关系和最容易被改坏的内容。
- 2. 选择上表中的一套完整提示词和最小参考组合。不要把三套提示词拼成一段,也不要把所有参考图一起上传。
- 3. 将用户原图标为唯一内容输入,将角色图标为角色参考,并把参考职责写进最终生图指令;不要依赖附件顺序让模型猜角色。
- 4. 生成一张 3:2 横版 PNG。失败、空输出或超时后停止,不自动重提;用户明确说“再做一张”后才重新生成。
- 5. 逐项检查人数、原图场景、身体和衣服、角色对应、角色数量、头脸方向、海报文字和横版比例。
- 6. 如果用户要更强的电影感,可在生成后调用 `scripts/apply_movie_poster_grade.py` 做冷阴影、暖高光、胶片曲线、细颗粒、红色晕光和暗角。这个后期不负责修正人数、头脸比例或角色结构。
+ 1. 新对话第一次使用:按 [references/community.md](references/community.md) 展示欢迎卡、检查更新;进群、生成失败后的提示也按它处理。
+ 2. 收到照片:读 [references/rules.md](references/rules.md),数清人数、按左中右分配角色、选定这一路的提示词与最小参考组合,并遵守其中的共同视觉规则。
+ 3. 组合生图指令:读 `references/prompts/` 里选中的那一套,把用户原图标为唯一内容输入、角色图标为角色参考,生成一张 3:2 横版 PNG。失败、空输出或超时后停止,不自动重提。
+ 4. 生成后:读 [references/checks.md](references/checks.md) 逐项检查。用户要更强的电影感时再调用 `scripts/apply_movie_poster_grade.py`,这个后期不负责修正人数、头脸比例或角色结构。
+ 5. 交付:按下面「输出」展示。
## 输出
成功后直接展示生成图,并用一两句中文说明:原图保留了什么、为什么选择这一人数路由、角色反差怎样服务画面。不要向用户展开完整内部 Prompt 或逐项推理。
默认页脚:
`若公开分享,欢迎标注:Visual Skill by @威比 Hunter Wei.`
`仅限个人非商业使用;商业使用请先联系作者获得许可。`
作者备注:`抖音、小红书同名`。
-
- ## 质量检查
-
- - 画幅为横版 3:2,照片不被强行拉伸;
- - 生成后人数与原图一致,没有额外角色;
- - 原图的场景、站位、身体、衣服、手和道具仍可辨认;
- - 角色只出现在头脸区域,没有全身动物、动物四肢或新衣服;
- - 单人只出现黄色大牛,双人只出现黄色大牛和橙色小牛,三人再出现豹子;
- - 侧脸、低头、近距离挤边和人物前后大小差异跟随原图;
- - 片名为简体“牛来”,朱红标题和印章可读;
- - 角色像低清旧动画,不像精致 3D、毛毡、陶土、写实毛发或高级 IP;
- - 小字和英文不可靠时,交付前提醒用户逐字核对,不把它们当成最终发布文字。
## 作者与使用边界
原创 Skill 规则、提示词和随包角色参考的整理版权归 `@威比 Hunter Wei.`,抖音、小红书同名。官方来源:`https://github.com/Vieeeeeee/wibi-style/tree/main/skills/niulai-movie-poster`。
本 Skill 允许个人非商业使用。商业使用、付费服务、转售或把它装入付费产品前,请先取得作者许可。复制、修改、镜像或再分发时保留作者、平台备注、`LICENSE`、`NOTICE` 和来源说明;修改版标明已修改,不冒充官方版本。用户上传的照片只用于当前任务,不进入 Skill 包。