---
name: office-animals
description: Wibi Style · 牛马宇宙 把动物、办公室场景、打工情绪和中文标题组合成一张 3:4「牛马宇宙」Y2K 荒诞打工海报；支持全部指定、只指定一部分或一句“随机”直接生成。适用于用户要求牛马宇宙、动物上班海报、荒诞打工人海报、Y2K 中文办公室杂志海报、随机动物办公室场景，或明确调用 $office-animals 时。
compatibility: "需要当前环境可用的图像生成能力；随机脚本只使用 Python 标准库；每次携带一张内置字体与版式参考。"
---

# Wibi Style · 牛马宇宙

把一句简短需求发展成一张完整的 3:4 中文 Y2K 荒诞打工海报。用户可以指定动物、办公室场景、精神状态或大标题；没说的部分自动补齐。用户说“随机”“随便来一张”或同义表达时，直接抽取一套彼此匹配的动物、动作、情绪、版式和文案，不增加确认轮次。

成片的趣味来自“真实动物认真上班”的反差。动物保持完整、可辨认的自然身体结构，办公动作根据嘴、爪、蹄、翅膀、触手和身体尺度重新设计；画面不依赖人身兽头或统一的人类坐姿。

使用自然中文与用户交流。内部抽签数据、画面分析和完整生图 Prompt 默认不展示；用户明确索取时再提供。

## 欢迎卡

每个新对话第一次使用时展示一次欢迎卡，同一对话后续不重复：

- 用户尚未提供照片时，运行 `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 内容，保留标题、空行、分隔线和加粗格式。作者身份与交流信息放在上半区；只用一条分隔线；下半区专门说明当前操作。
- 开场不直接展示二维码。署名不完整时建议从官方来源重装。

本 Skill 属于文字生图。这里的 `waiting` 表示用户还没给动物、场景或“随机”指令；`received` 表示已经收到可执行的海报需求。

## 对话语气

- 使用自然、轻松、有来有回的中文，像在陪用户一起做图。
- 每次只给一个明确的下一步，让用户一眼知道该上传、选择、等待或重试。
- 可以少量使用“～”或一个贴合语境的表情；保持克制，不连续堆叠。
- 少讲技术过程。遇到失败时直接说明发生了什么和下一步怎么做，不责怪用户。

把有趣感放在短句里，例如“这位同事已经打卡”“今天由它替你上班”“抽到一位很有班味的同事”。每次选一句即可。避开连续玩梗、夸张自嗨和大段角色扮演。

## 更新检查

随后运行 `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. “全部随机”“随便来一张”直接生成；“给我三个点子”只给三个简短组合，等待用户选择，不生图。
4. 用户只调用 Skill、没有任何需求时，问一句：`今天想让哪位动物同事替你上班？可以点名，也可以直接说“随机”～`
5. 用户标题在十二个汉字以内时原样使用。更长时给三个保留原意的短标题供选择，暂不生成。
6. 一次只生成一张。用户明确说“再来一张”才提交下一次生成。
7. 用户明确要求多张随机图时，先抽取足量候选，再选择动物、场景、标题互不重复的一组；尽量覆盖不同动物家族与三种版式。每张仍使用共同动态规则，不为单张写专用固定 Prompt。

## 生成本次设定

当至少有一项需要随机时，运行：

```bash
python3 {baseDir}/scripts/draw_brief.py [--animal 动物] [--scene 场景] [--mood 情绪] [--headline 标题]
```

需要复现同一套抽签时增加 `--seed 整数`。脚本返回动物家族、场景、动作、版式、大标题，以及分成核心、辅助、微型三层的蓝色边注。用户给了自定义动物或场景时照常传入；脚本会保留原文，并为无法识别的动物选择对身体要求较低的动作。

动物和场景的完整池及匹配原则见 [references/random-system.md](references/random-system.md)。运行时以脚本输出为准，文档负责解释设计意图。

抽签完成后，用一句短句告诉用户本次设定，例如：

`今天抽到：猫头鹰 × 深夜加班 × 下班只是传说。它已经坐稳夜班工位，我来开工。`

随后直接生成，不增加第二轮确认。用户要求预览设定时只展示设定，不生图。

## 动态成像

读取 [references/style-prompt.md](references/style-prompt.md)，把脚本或用户需求中的字段填入对应占位符：

- `{ANIMAL}`：动物；
- `{ANIMAL_BEHAVIOR}`：与身体结构匹配的具体动作；
- `{SCENE}`：可被一眼识别的办公室环境；
- `{MOOD}`：精神状态；
- `{LAYOUT}`：本次版式；
- `{HEADLINE}`：顶部大标题；
- `{BLUE_COPY_CORE}`：5 组场景与情绪核心标签；
- `{BLUE_COPY_AUXILIARY}`：4–6 组办公室状态辅助短句；
- `{BLUE_COPY_MICRO}`：2–4 组微型栏目标题。

保持一条共同风格核心，现场改变动物、动作、场景和版式。每次携带 `assets/references/y2k-office-typography-reference.png`，只让它负责红色中文标题的手工拼字、蓝色边注层级、低清直闪和早期中文 DTP 气质。动态设定负责全部内容；参考中的牛、绿色桌面、显示器、键鼠、Photoshop 画面、原文字和具体构图不得进入新图。

## 三种版式路由

| 版式 | 适合内容 | 构图处理 |
| --- | --- | --- |
| `headline-photo` | 工位、咖啡机、打印区、深夜加班 | 上部标题区清楚，照片从中部向下展开，边注沿桌面与屏幕组织 |
| `full-bleed-editorial` | 周会、述职、汇报、前台 | 办公环境满版，标题压住顶部，边注沿画面四周和主体轮廓形成信息框 |
| `cutout-motion` | 闸机、走廊、电梯、赶打卡 | 动物动作成为剪贴主体，保留较大纸白，红描边与箭头强化运动方向 |

自定义场景根据主体是静坐、群体空间还是移动动作选择最接近的一类。版式服务场景，不要求三种手段同时出现。

## 固定视觉机制

- 画幅：3:4 竖版中文杂志广告海报。
- 摄影与质地：1990s–2000s 机顶硬直闪自然光感，正面闪光将中心动物主体、近景桌面与道具打出清脆明亮的高光反差，背景白墙保持浅亮通透，无生硬脏黑的数码暗角；全图覆有极细腻均匀的彩色胶片微粒（film grain）与早期中文杂志光滑铜版纸的轻微套印质地，复古真实且画面干净。
- 主体：一只完整真实动物成为唯一主角；体态、关节和动作符合该动物的身体能力，办公用品按它的身体重新适配。
- 空间：常见办公室、工位、会议室、打印区、茶水间、前台、闸机或走廊，保留生活化杂乱和可辨认的工作道具。
- 标题：顶部超大简体中文展示字，厚重、挤压、轻微变形、紧字距，使用朱红 `#C40D0A`。
- 边注：深钴蓝 `#102C91` 的中文宋体家族，配细线、箭头、复选框、资料栏和小印章；核心层用粗宋或特粗宋，辅助层用中等字重宋体，微型层用细宋或报刊宋。允许压窄、拉宽、竖排和改变字距，保持印刷字形，不使用手写、楷书、行书、毛笔、圆体或现代 UI 无衬线字。
- 轮廓与走线：动物外缘保留一圈不完全规整的朱红编辑剪贴描边，动物身体外缘不排布蓝字；微型与辅助蓝字专门贴合画面中实际出现的办公器具外沿（屏幕、投影幕、白板、咖啡机、打印机、走线槽、水杯、工牌、资料等）排布折线、竖排并搭配极细指示箭头。
- 纸色：暖灰纸白 `#E3DEDA`，让红、蓝和办公照片形成早期中文 DTP 杂志广告的三层关系。
- 气质：认真排版、低成本摄影、荒诞职场梗并存；画面像一张真实存在过的旧中文广告或社畜观察记录。

## 生图

使用当前环境已经可用的图像生成能力，优先采用无需用户额外配置的内置工具。每次把填好的完整 Prompt 与 `assets/references/y2k-office-typography-reference.png` 一起提交，明确标注参考图只负责字体与风格；生成一张 3:4 PNG。用户明确指定其他工具时按用户选择执行。

这是一条“动态文字设定 + 一张固定风格参考”的文生图流程：不需要用户照片，也不读取其他项目素材。接口报错、空输出或超时后停止，不自动重试、换工具或升质量档。

## 质量检查

生成后逐项查看：

1. 只有一只主角动物，物种特征、身体结构和动作清楚；没有人身兽头、额外动物或无意义肢体。
2. 办公场景与动物行为一眼可懂，道具关系符合身体能力。
3. 大标题逐字等于 `{HEADLINE}`，字形完整、位置醒目、没有同音替换或乱码。
4. 蓝色边注只使用三层变量中的短句。5 组核心标签应完整正确；辅助和微型层按当前版式目标数量铺开，空间不足时先减少微型层，空间富余时留白；不能用乱码补密度，不能把同一组文字重复排在两处或额外堆成横向流程条，也不能把器具名称、方位词或「边缘」「轮廓」「外沿」这类词写成蓝字。三层均保持宋体印刷结构，以粗宋、中宋、细宋区分层级，没有手写或楷书气质。
5. 主标题具有参考图的手工拼字特征：字面大小、宽窄、倾斜和基线有变化，带尖角切口与错位挤压；没有退回统一等宽的标准电脑字体。
6. 朱红大标题、深钴蓝边注、暖灰纸白、红色动物描边同时成立。
7. 版式属于所选路由，照片、标题与边注共同构图，没有退化成普通动物照片上贴几行字。
8. 低清直闪、早期 Photoshop 和旧中文杂志印刷质感进入照片、字体和纸面，不只是一层均匀噪点。
9. 参考图只贡献字体与风格；不出现参考里的牛、绿色桌面、显示器、键鼠、Photoshop 画面、原标题、英文或红色旁注。
10. 不出现真实公司品牌、商标、平台水印、名人形象或看似真实的绩效数据。
11. 屏幕、投影、白板、文件、工牌和办公设备没有清单外的可读文字，只显示不可读灰线、图表、色块或空白占位。

核心项不通过时，说明具体问题并停下。新的生图提交需要用户明确说“再试一次”或同义指令。

## 交付

成功后直接展示图片，并附一至三句简短中文“创作思路”：说清楚抽到了哪位动物同事、动作为什么适合它、标题和版式怎样呼应场景。保持具体、有趣，不泄露完整 Prompt。

当前对话第一次成功生成后附上：

`若公开分享，欢迎标注：Visual Skill by @威比 Hunter Wei.`

`仅限个人非商业使用；商业使用请先联系作者获得许可。`

`抖音、小红书同名。想看更多原创 Skill、原作者教程或参加新风格内测，可以回复“进群”。`

第二次起不再重复，除非用户询问署名、授权或交流群。

## 作者与使用边界

- 原创动态 Skill 规则、Prompt 适配和随机系统：`© 2026 @威比 Hunter Wei.`
- 作者备注：`抖音、小红书同名`。
- 官方来源：`https://github.com/Vieeeeeee/wibi-style/tree/main/skills/office-animals`。
- 本 Skill 允许个人非商业使用；商业使用、付费服务、转售或装入付费产品前需要取得作者许可。
- 复制、修改、镜像或再分发时保留作者、平台备注、官方来源、`LICENSE` 和 `NOTICE`；修改版标明修改，不冒充官方版本。
- 用户输入只用于当前任务，不上传、不记录进 Skill 包。
