Wibi Style 官方视觉风格。把用户随手拍的餐厅打卡照、餐桌照、外卖照重新构图成红底复古杂志美食静物: 先看懂这一桌谁是主角、留白该放哪一侧、哪些器皿值得出框,再把杂乱餐厅环境换成纯正复古印刷红, 加上旧杂志扫描的颗粒与网点。适用于用户要求复古餐桌杂志、红底美食大片、把吃饭照片拍成广告, 上传餐桌照片换风格,或明确调用 $retro-table-print 时。
Scanned 9/2/2026
Install to Claude Code
npx -y skills add Vieeeeeee/wibi-style --skill retro-table-print --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Retro Table Print?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/vieeeeeee-retro-table-print)More formats (shields.io, HTML) on the badges page.
---
name: retro-table-print
description: >-
Wibi Style 官方视觉风格。把用户随手拍的餐厅打卡照、餐桌照、外卖照重新构图成红底复古杂志美食静物:
先看懂这一桌谁是主角、留白该放哪一侧、哪些器皿值得出框,再把杂乱餐厅环境换成纯正复古印刷红,
加上旧杂志扫描的颗粒与网点。适用于用户要求复古餐桌杂志、红底美食大片、把吃饭照片拍成广告,
上传餐桌照片换风格,或明确调用 $retro-table-print 时。
---
# Wibi Style · 复古餐桌杂志
## 欢迎卡
每个新对话第一次使用时展示一次欢迎卡,同一对话后续不重复:
- 用户尚未提供照片时,运行 `python3 {baseDir}/scripts/show_skill_info.py --welcome --input-state waiting`。
- 用户已经提供照片时,运行 `python3 {baseDir}/scripts/show_skill_info.py --welcome --input-state received`。
- 完整展示 `SHOW_SKILL_WELCOME` 后的 Markdown 内容,保留标题、空行、分隔线和加粗格式。作者身份与交流信息放在上半区;只用一条分隔线;下半区专门说明当前操作。
- 开场不直接展示二维码。署名不完整时建议从官方来源重装。
## 对话语气
- 使用自然、轻松、有来有回的中文,像在陪用户一起做图。
- 每次只给一个明确的下一步,让用户一眼知道该上传、选择、等待或重试。
- 可以少量使用“~”或一个贴合语境的表情;保持克制,不连续堆叠。
- 少讲技术过程。遇到失败时直接说明发生了什么和下一步怎么做,不责怪用户。
## 更新检查
随后运行 `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` 时,不展示旧二维码;只展示备用微信 `fallback_wechat`。
- `status` 为 `expired` 或 `unavailable` 时,不展示旧二维码;只展示 `landing_url` 和备用微信 `fallback_wechat`。
- 生图接口报错、空输出或超时时,先说明“这次没有成功生成,不会自动重新提交”,再按上述步骤展示一次当前群信息。同一对话只展示一次失败入群卡。
- 视觉验收不通过、用户取消、输入照片不适合或仍在等待用户选择时,不触发失败入群卡。
- 展示二维码时附上提醒:群内交流请勿直接发送包含个人隐私的原图,可以先发错误提示或打码截图。
## 核心目标
把一张普通的餐厅随手拍,变成一张像是从旧杂志广告页上撕下来的美食静物照。
三件事同时成立才算做到:
1. **菜还是那道菜。** 食材、酱汁、器皿、花纹、分量、新鲜度全部对得上原片,看图的人能认出这就是自己吃的那顿。
2. **构图重做过。** 不是给原片换个底色,而是重新决定谁当主角、留白放哪、哪些东西被画面边缘切掉。
3. **红底印刷质感。** 纯正的复古印刷红,短而实的投影,轻微颗粒和网点,略微褪色的油墨色。
三件里最容易丢的是第二件。原片是随手拍,主体通常居中、周围一堆杂物;如果只换背景不重构图,出来就是廉价抠图,这款风格就废了。
## 输出尺寸
固定 3:4 竖构图。用户明确要求方形或横构图时按用户要求,其余情况不询问、不改比例。
**提交生图时必须显式声明 3:4,不要让工具从用户原片自动推断比例。** 手机竖拍多是 9:16,一旦被继承,留白会被拉长一截,画面变松,跟这个风格该有的紧凑编辑感对不上。工具带比例参数时直接传 3:4;只认原片比例的工具,先把原片按 3:4 居中裁一版再送进去。
## 触发与生成次数
一次调用生成一张。用户没有明确说“再来一张”“换个构图”时不重复提交,也不自动做多个版本让用户挑。
## 运行参考图
本 Skill 内置 2 张运行参考图,都在 `assets/references/`。它们只提供红底印刷的视觉语言,不提供餐具、菜品和构图模板。不要求用户上传这些图,也不要依赖附件顺序——在生图指令里按视觉内容说明谁是内容输入、谁是风格参考。
| 文件 | 它擅长什么 | 什么时候选它 |
| --- | --- | --- |
| `01_多器皿红底静物.jpg` | 多件器皿在红底上的排布节奏、前后层次、金属与玻璃的反光、器皿之间的投影关系 | 原片是一整桌:两道以上菜,或主菜之外还有杯子、小碟、酒瓶、餐具值得留 |
| `02_单主体红底特写.jpg` | 单个主体在大面积红底里的存在感、干净利落的轮廓、克制的投影、大留白的呼吸 | 原片只有一道菜、一碗、一杯,或虽然有很多东西但只有一件值得当主角 |
默认只带一张。两种情况都沾边时(比如一碗面加两碟小菜),选 `01`,因为多器皿那张同时包含了单主体的处理方式。只有当一张明显不够——多器皿排布和大留白特写都要——才两张一起带,并在指令里写清楚各自负责什么。
## 第一段:先看懂这张照片
生成之前先把原片看完,这一段不需要展示给用户。
### 1. 认清内容
- 这是什么菜?主要食材、酱汁、颜色、有没有蒸汽和油光。
- 器皿是什么?盘碗杯的形状、材质、釉色、花纹、碗沿的字。这些是识别度,必须原样带走。
- 桌上一共有几件东西?哪些是食物,哪些是餐具,哪些是垃圾(手机、纸巾、二维码牌、账单、包、椅子、路人)。
### 2. 定主角和配角
一张图只能有一个主角,就是最有食欲、最有辨识度的那道菜。
配角留 2 到 4 件,选的标准是**能帮画面建立层次或呼应颜色**:另一道菜、一杯饮料、一个蘸料碟、一双筷子、一瓶酒。超过这个数就开始堆积,红底的呼吸感会没。
明确删掉:人、手、手机、纸巾、消毒餐具包装、二维码立牌、菜单、账单、椅子、地板、其他桌、店内招牌和一切文字招贴。原片器皿上本来就有的花纹和文字保留。
### 3. 判断视角
看原片是俯拍、45 度还是平视,成片保持同一视角。这一条比构图更硬:视角一变,菜的样子就变了,用户会觉得不是自己那顿饭。
- 俯拍原片 → 俯拍成片,桌面就是整个背景,红色铺满。
- 45 度原片 → 45 度成片,桌面和背景连成一体,不要出现地平线、墙面、桌沿。
- 平视原片 → 平视成片,背景是一整片纯红,桌面与背景无缝。
### 4. 决定留白落在哪一侧
看主角在原片里偏哪边、盘子的开口和酱汁的走向朝哪边,把留白放在对角或对侧。
3:4 竖构图里通常这样落位:主角压在下半部或某一侧下方,留白吃掉上方或对侧那一大块。留白不是空着没用,是给红色一块完整、干净、不被打断的面积。
### 5. 挑出谁去出框
至少一件器皿要被画面边缘大胆切掉,这是这个风格的骨架。选那个**被切掉一半也不影响识别**的:一杯饮料只留半杯、一个大盘子只进来三分之二、一瓶酒只露瓶身。
不要切主角的关键部位。主角的菜可以被切掉一点边,但整道菜的完整感要在。
## 第二段:把它拼成一张成片
### 固定风格(每张都成立)
**背景**:纯正复古印刷红——正红偏暖,接近旧杂志四色印刷的品红加黄,不是番茄红、不是酒红、不是玫红。桌面和背景是同一块红,平整、无纹理、无渐变、无暗角。红是这个风格的身份,不要换色,用户主动要求换背景色时才换。
**投影**:短、方向统一、边缘略实。物体稳稳压在桌面上,有明确接触点,不悬浮、不漂浮、不加倒影。投影里可以带一点红底的颜色,不要纯黑。
**光**:柔和棚拍光或轻微直闪,从一侧偏上打。食物形体明确,高光在油光、汤面、玻璃和金属上。不要戏剧性侧逆光,不要大面积暗部。
**颜色**:食物本身的颜色饱和、鲜明、受控,跟红底拉开对比。绿的更绿一点,黄的更黄一点,但不能塑料。整体带一点旧油墨的偏色,像放了三十年的印刷品。
**质感**:轻微胶片颗粒、细密印刷网点、旧杂志扫描感、略微褪色的油墨。绝不做旧到发脏、发霉、划痕、折角。
**解析力(这一条决定像不像复古)**:旧杂志的复古感来自**镜头解析力有限、印刷网点把高频细节吃掉**,不是滤镜色。所以画面必须是**柔的**:边缘略微发软,细节到网点为止,看得出是印刷品不是屏幕截图。
这一条最容易被写反。不要在指令里写「轮廓清晰」「锐利」「高清」「4K」「纤毫毕现」——这些词会把画面推成电商产品图或 CG 渲染,一眼就不复古了。要写的是柔和的胶片光学、有限的印刷解析力、被网点吞掉的细节。
「柔」指光学上的柔,不是拍糊。形体、食材种类、器皿花纹都要认得出来,只是边缘不是刀锋。
### 二次构图怎么做
按第一段的判断重新摆这一桌,不是把原片抠出来贴到红底上:
- 主角放在偏心位置,占画面显眼但不铺满的一块。
- 配角按前中后分层,允许互相遮挡一点,形成自然的深浅关系。
- 至少一件器皿出框。
- 留白留成一整块完整的红。
- 器皿之间留出干净的红色缝隙,不要挤在一起。
摆完自检一句:把这张图放进旧杂志的整版广告里,它撑得住吗?撑不住通常是因为主角太小、太居中,或者东西太多。
### 写当前照片的生图指令
把上面两段的判断,编成一段只服务于这张照片的指令。**顺序很重要:内容锁定必须排在第一位,风格描述排后面。** 风格那几段写得越细越有分量,一旦放前面就会盖过内容,模型开始自作主张重新设计摆盘。
1. 明确这是图生图,用户照片是内容来源,内置参考图只提供风格。
2. **内容锁定,放最前面。** 这道菜是什么、必须保留哪些识别特征(食材、酱汁、器皿形状、花纹、碗沿的字)。写死一句「这是同一顿饭的重新拍摄,不是重新设计的样片,不许重新摆盘」。
3. 本次视角、主角位置、留白落在哪一侧、谁出框、留哪几件配角、删掉什么。
4. 固定风格那几段:红底、投影、光、颜色、质感、解析力。解析力那段必须写进去,别只写颗粒和网点。
5. 3:4 竖构图。
写内容锁定时,**对容易被改的地方点名给数**,别只说「保留原样」:
- 数量点名:「大虾只有三到四只,不要加到六只以上,不要沿盘边摆成一圈」。
- 器皿形状点名:「圆形黑铁盘架在圆形木托盘上,不是带长柄的煎锅,不是多边形木板」。
- 主食形态点名:「白米饭是随意盛在盘里的一小堆,不要捏成规整的半球或饭团」。
- 架状器皿点名:「烤网直接放在桌面上,底下不加盘子、不加托盘、不加垫布」。
- 最后补一句:「保留原本那种随意的、真实吃饭的样子,不做精致摆盘,不做对称排列」。
反过来也别写过头。描述某样东西时加「要有分明的米粒感」这类精修形容,会反过来诱导模型去重做那个部位。要的是「保持原样」,不是「做得更好」。
不要把这段指令展示给用户。
### 执行生成
使用当前运行环境已经可用的图像生成工具或模型生成一张结果,优先使用无需用户额外配置的内置能力。某个工具不可用时继续寻找环境中的其他生图能力;确认没有任何生图能力后,请用户添加或启用可生图的工具或模型。实际提交后报错、空输出或超时则停止,说明情况,不自动重复提交。
选模型时有两条经验,环境里有多个可选时按这个挑:
- **优先 GPT 系图像模型。** 实测同一张原片、同一段指令,它出的图天生更接近旧印刷品——边缘本来就软,颗粒和褪色油墨是自带的,而且对「不要重新摆盘」这类内容约束更听话。别的模型出的往往是干净数码图,复古感全靠后期补。没有 GPT 系可用时用环境里的其他模型,收尾脚本会自动补足差额。
- **确认走的是能吃图的端点。** 这个风格是图生图,用户照片是内容来源。有些工具在 OpenAI 兼容接口上把图像模型接到了纯文生图端点(`/v1/images/generations`),一旦带图就**静默降级换成另一个模型**,日志不显眼很容易看不出来。带图必须走图像编辑端点(`/v1/images/edits`)。出图后如果发现内容忠实度突然变差,先回头确认实际用的是不是你以为的那个模型。
画幅:目标是 3:4。工具支持就直接指定;只提供 1:1 / 3:2 / 2:3 的(GPT 系常见)选 2:3 再居中裁成 3:4,裁掉的是上下留白,不会伤到主体。
### 收尾:印刷质感
生成成功后,对结果运行一次收尾脚本,再展示给用户:
```bash
python3 {baseDir}/scripts/vintage_finish.py 生成结果路径
```
这一步做的是解析力和动态范围,不动颜色:降解析力、光学柔化、加印刷网点与胶片颗粒、把暗部抬起高光压住。
为什么必须有这一步:图像模型出的图默认太锐,**光靠文字指令压不下来**——实测把指令里所有「清晰、锐利」换成柔化描述,锐度只降了一半,离目标还差一个数量级。文字负责风格方向,这一步负责把质感钉死。
强度不用管,脚本自己量自己调:先量当前图的锐度,二分搜一个能落进目标区间的强度。不同模型出图锐度差很多,写死一个数换个模型就废。
- 输出 `VINTAGE_FINISH_OK` 时,展示收尾后的图片,不展示收尾前那张。
- 输出 `VINTAGE_FINISH_SKIPPED reason=already_soft` 时,说明这张本来就够柔,直接展示原图。同一张图不要重复收尾。
- 输出 `VINTAGE_FINISH_SKIPPED reason=pillow_not_installed` 时,直接展示原始生成结果,顺带一句可以装 Pillow 拿到更足的印刷质感。不要因为这一步失败就重新生成。
- 用户说太糊时用 `--strength 0.3` 重跑收尾前的原图,说复古味不够时用 `--strength 0.9`。这是重跑收尾,不是重新生图,不花生成费用。
## 生成后硬检查
出图后逐条看,任何一条不过就是不合格:
1. **菜对不对。** 食材、酱汁、颜色、分量跟原片一致,没有多出原片里没有的食物或餐具。
2. **器皿对不对。** 盘碗杯的形状、釉色、花纹、文字跟原片一致。
3. **视角对不对。** 跟原片同一个视角,没有偷偷变成俯拍或平视。
4. **构图重做了没有。** 主角偏心、有整块留白、至少一件器皿出框。三条里缺两条就是抠图贴底,要重做。
5. **红底干净不干净。** 一整块平整的红,没有渐变、暗角、纹理、桌沿、墙面、地平线。
6. **物体落地没有。** 每件东西都有短投影和接触点,没有悬浮。
7. **质感对不对。** 收尾脚本跑过了;边缘是柔的、细节到网点为止,像印刷品不像屏幕截图。反过来也要看:颗粒网点没有盖过食欲感,食材和器皿花纹仍然认得出,没有发脏发霉。**边缘锐得像电商产品图,就是这一条没过。**
8. **杂物清干净没有。** 没有人、手、手机、纸巾、二维码牌、店内文字。
第 1、2、3 条属于内容错误,不合格就说明问题、等用户明确要求后再重做。第 4 到 8 条属于风格偏差,同样不自行连续重试。
## 常见偏差与修法
| 出图问题 | 原因 | 下一次怎么改 |
| --- | --- | --- |
| 像把菜抠出来贴在红纸上 | 没做二次构图 | 明确写主角偏心位置、留白方位和哪件器皿出框 |
| 红底有渐变或四角发暗 | 模型自动加了氛围光 | 指令里写死:平整纯色红,无渐变、无暗角、无纹理 |
| 菜品被改了 | 风格权重压过内容 | 把“保留原菜品与器皿”提前,并具体点名食材和花纹 |
| 出现原片没有的餐具或摆盘 | 参考图被当成内容 | 重申参考图只提供风格,不提供餐具和构图 |
| 没有复古味,像电商产品图或 CG 渲染 | 边缘太锐,高频细节太足;指令里出现了「清晰」「锐利」「高清」 | 跑收尾脚本;指令改成柔和胶片光学、有限印刷解析力、细节到网点为止 |
| 食物发假、发塑料 | 做旧和饱和度过头 | 减弱颗粒网点,强调真实食材质地和油润反光 |
| 物体像漂在红色上 | 缺投影 | 强调短投影、明确接触点、物体压在桌面上 |
| 出图比例变成 9:16,留白被拉长 | 生图工具继承了手机竖拍原片的比例 | 提交时显式声明 3:4,别依赖自动推断 |
| 整桌被重新摆盘,变成精致样片 | 风格描述压过内容;或指令里出现了「要有分明的米粒感」这类精修形容 | 内容锁定提到最前面,对数量、器皿形状、主食形态逐项点名,写死不许重新摆盘 |
| 换了模型后内容忠实度突然变差 | 工具把图像模型接在纯文生图端点上,带图时静默降级成了另一个模型 | 确认走的是图像编辑端点,核对返回里的模型名是不是你指定的那个 |
| 烤网、蒸笼、砂锅底下自动生出一个托盘 | 模型替架状器皿补了配套餐具 | 点名这件器皿直接放在桌面上,底下不加盘、不加垫 |
## 给用户的输出
展示通过检查的成图,附一到三句中文创作说明:这张保留了什么、为什么把留白放在这一侧、哪件器皿出框帮了构图。说得具体、好懂,不展示完整生图指令,也不复述内部判断过程。
当前对话第一次成功生成后附上:
`若公开分享,欢迎标注:Visual Skill by @威比 Hunter Wei.`
`仅限个人非商业使用;商业使用请先联系作者获得许可。`
`抖音、小红书同名。想看更多原创 Skill、原作者教程或参加新风格内测,可以回复“进群”。`
第二次起不再重复,除非用户询问署名、授权或交流群。
## 权利边界
作者固定为 `@威比 Hunter Wei.`(抖音、小红书同名),官方来源固定为 `https://github.com/Vieeeeeee/wibi-style/tree/main/skills/retro-table-print`。复制、修改、镜像或再分发时必须保留作者、平台备注、官方来源、`LICENSE` 和 `NOTICE`;修改版必须标注修改,不得冒充官方版本。
用户上传的照片只用于本次生成,不保存、不上传、不用于其他用途。内置参考图随本 Skill 分发,仅作为本 Skill 的运行输入,不单独授权作其他使用。
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!