Back to skills
SKILL.md
emoji-sticker-cn
ASecurity中文平台(微信表情开放平台 / 小红书 / 抖音)合规表情包生成助手。提供平台尺寸硬约束裁切与命名、违禁词校验(实时 API + 离线兜底)、静态贴纸转内容匹配动效 GIF、合规参考数据维护与平台规范规则巡检工作流。Compliance-focused Chinese-platform emoji sticker assistant: platform size constraints & naming, prohibited-word checks (live API + offline fallback), content-matched animated GIFs, compliance reference maintenance, and platform-rule patrol workflow.
- 2 stars
- 0 votes
- 0 copies
- 0 views
- Added November 7, 2026
Works with
Security analysis
100/100Pro scans all 13 files and shows the line behind each finding
npx -y skills add bonniegeng-max/emoji-sticker-cn --agent claude-codeAre you the author of emoji-sticker-cn?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/bonniegeng-max-emoji-sticker-cn)---
name: emoji-sticker-cn
description: 中文平台(微信表情开放平台 / 小红书 / 抖音)合规表情包生成助手。提供平台尺寸硬约束裁切与命名、违禁词校验(实时 API + 离线兜底)、静态贴纸转内容匹配动效 GIF、合规参考数据维护与平台规范规则巡检工作流。Compliance-focused Chinese-platform emoji sticker assistant: platform size constraints & naming, prohibited-word checks (live API + offline fallback), content-matched animated GIFs, compliance reference maintenance, and platform-rule patrol workflow.
version: 3.2.4
license: MIT
trigger: "微信表情上架|微信表情包|微信表情开放平台|小红书表情包|抖音表情|中文表情合规模板|表情包|做表情|做套表情|贴纸|表情动图|含义词|赞赏引导图|赞赏致谢图|特效表情|表情形象|表情包上架|表情包合规|巡检表情包规范"
agent_created: true
tools:
- filesystem
- http
- shell
metadata:
openclaw:
requires:
bins:
- python3
env: []
---
# 中文表情包生成 · 合规助手 (emoji-sticker-cn)
## Overview
帮你把「一张图 / 一段描述」变成**可直接上架或发布的中文平台表情包**,重点解决现有表情包 skill 普遍忽略的两件事:
1. **中文平台尺寸规范**(微信有完整上架规范,抖音 / 小红书是内联图片)
2. **内容合规**(违禁词 / 极限词校验,尤其公众号 / 小红书 / 抖音)
生成模型层**不重造**——直接复用宿主环境的文生图 / 图生图工具(WorkBuddy 下为 `ImageGen`,约 5–10 credits/张;OpenClaw 等其他环境用各自可用的生图工具);本 skill 只做「合规流水线」这一增量。
> 可移植约定:凡提到 `ImageGen` / `multi-wordcheck`,指「宿主环境有则用,无则降级」——生图无专用工具时让用户自备图;`multi-wordcheck` 未安装时降级用 `references/中文平台违禁词合规参考.md` 校验并提示局限。
## 硬约束速查(前置硬性约束,产出必须逐条满足)
### 微信表情开放平台(上架主目标)
| 资产 | 尺寸 | 格式 / 上限 | 背景 |
|---|---|---|---|
| 主图 | 240×240 | PNG/JPG/GIF,≤500KB | **不强制透明**(照片型合法;插画型建议透明) |
| 聊天面板图标 | 50×50 | PNG,≤100KB | **须透明底** |
| 封面图 | 240×240 | PNG,≤500KB | **须透明底**(正面半身/全身像) |
| 详情页横幅 | 750×400 | PNG/JPG,≤500KB | **避免透明底、避免纯白底、避免文字**(官方用「避免」,非禁止) |
| 赞赏引导图 | 750×560 | **PNG/GIF**,≤500KB | 避免透明背景 |
| 致谢图 | 750×750 | **PNG/GIF**,≤500KB | 避免透明背景 |
| 特效 | ≤480×480、≤24 帧 | PNG,整体≤5MB | — |
- **官方素材表就是 4 类**:表情图 / 详情页横幅 / 封面图 / 聊天面板图标,加赞赏 2 图(引导图、致谢图)。**「表情缩略图」不是可提交素材**——官方全文 1,249 行里「缩略」只出现 2 次,都是赞赏开通条件里的名词「赞赏缩略图」,**无任何尺寸/格式/上限**;素材总表不含此项,推测由平台自动生成。本 skill 不产出、不校验,**不要再加回来**。
- 成套:**8–24 张**(单品可 1 张);同一套统一动/静;动态须循环流畅。
- **文案字段**:表情名称 ≤8 汉字(无标点空格,**5 字内显示最佳**,避免重名)、介绍 ≤80 字、版权信息 ≤10 字、**含义词 ≤4 汉字且同套不重复**(含义词=用户搜索词,非画面台词)。
- 命名:数字编号 `01.png`…`24.png`,主图与各派生素材编号一致。
- **超规格素材不会被拒收,会被静默压缩裁剪**(主体可能被裁掉,务必先机检)。
### 小红书 / 抖音(内联,无正式商店)
- 小红书:1080×1080(笔记配图);GIF 常被转静态,优先静态图。
- 抖音:240–1000px,GIF/WebP ≤5MB(经验值,非官方强制)。
### 违禁词(文案 / 上架描述 / 专辑名)
- **硬性流程**:任何对外文案必须先过 `multi-wordcheck`(公众号/小红书/抖音,若宿主环境已安装);未安装则降级用 `scripts/check_compliance.py` + `references/中文平台违禁词合规参考.md` 种子集做离线兜底,并向用户说明这是离线兜底、非实时。**若 `multi-wordcheck` 已安装但 API 调不动(额度/积分不足、网络不通,典型报错 `code:3201 积分余额不足`),同样直接走离线兜底**——不要用离线兜底的结果冒充实时 API 结果,也要明确告知用户"实时校验未执行、需额度恢复后补跑"。校验通过才算完成。
- 红线类别:广告法极限词、政治敏感、色情低俗、虚假医疗、私域导流(小红书)、站外引流(抖音)。
> 完整规范与源 URL 见 `references/`。**执行时以 references 中 `status = active` 且「官方核实」的条目为最终依据**;`pending-verify` 条目需提示用户复核,`deprecated` 条目一律不得使用。
## 微信上架底线 Checklist(每次产出前逐条过,一票否决 · 2026-09-12 官方核实)
- [ ] 同一套**统一动态或静态**;动态循环流畅不卡顿
- [ ] 整套差异充分:各张姿势/表情不同,**动画互相差异化**(同配方 ≤4 张且参数微调、相邻编号不同配方)
- [ ] 角色形象**无白色描边、无锯齿、无正方形边框**(封面/图标硬性要求)
- [ ] 透明底规则:封面/图标=必须透明;横幅/赞赏图/致谢图=**避免**透明、避免白底(官方措辞是「避免」,不是禁止;机检判 WARN 不判 FAIL)
- [ ] 构图**少留白**、主体撑满画面;除纯文字类外**画面不出现文字**
- [ ] 动效**含义驱动**:无意义的缩放/平移/晃动/闪烁=拒审
- [ ] 文案:名称 ≤8 字(5 字内最佳,无标点空格,不重名)、含义词 ≤4 字普通话且**同套不重复**、介绍 ≤80 字、版权信息 ≤10 字
- [ ] 内容红线:无广告/导流/二维码/联系方式;无医疗金融烟酒等限制类内容;原创或已授权;不与官方已发布作品雷同
- [ ] **角色一致性(2026-09-12 实测样图教训)**:成套角色**禁止逐张纯文生图**(每张会画成不同人)——必须先出 1 张定稿图验收,其余全部**图生图延展**(image1=定稿,input_fidelity=high),并落一份「角色卡」(发型/眼镜粗细/固定套装/肤色/画风/表情红线)作为每张出图的验收依据
- [ ] 素材尺寸/大小严格执行(超规格会被**静默压缩裁剪**,不是拒收——更要先机检)
## When to use
- 用户说:做表情包、生成贴纸、微信表情上架、小红书 / 抖音表情图、一套聊天表情……
- 用户说:**动态表情 / GIF 表情 / 让表情动起来** → 走路线 D。
- 用户已有图片想批量裁成平台尺寸并打包。
- 用户要检查表情包文案 / 上架描述是否踩违禁词。
- 用户说:**更新表情包规则 / 巡检表情包规范** → 走下方「规则更新与退出机制」。
## 生成前「四步定姿势」(静态出图通用,v3.1.0 新增)
> 解决"文字/情绪语义 与 画面姿势不匹配"(例:要『加油』却出『举书摊手』)。规则表见 `references/静态姿势动作库.md`(通用,可复用)。
1. **定意图**:把用户的话归一为唯一意图词(加油→cheer、谢谢→gratitude…);模糊时问一次,不猜。
2. **选姿势**:查姿势动作库,按主体类型取 1 行 variant 的姿势组合;**整套各张取不同 variant**(保证差异充分)。
3. **联动动效**:取该行 `emo_key` 对照 `动效匹配规则.md` 选 GIF 配方(路线 D 用)。
4. **组装 prompt**:把该行 `prompt_en` + 角色描述 + 风格词 + 背景约束拼进 ImageGen prompt;**画面默认不加中文文字**(渲染不稳,用户明示才加)。
```
生成前 Checklist(每张图):
[ ] 意图词唯一且已定(或已问用户一次)
[ ] 已取姿势/手部/面部/构图/场景 prompt_en
[ ] 整套各张 variant 不同,无重复姿势
[ ] prompt_en 已拼入;中文文字未加(用户明示除外)
[ ] 路线 D:emo_key 已对照动效表选 --recipe
[ ] 出图后请用户目检:姿势/表情=目标?不符则报「第几项不对」→ 改对应英文词重出
```
## Workflow
按目标平台走不同路线(规范见 `references/中文平台表情包尺寸规范.md`):
**路线 A — 微信表情开放平台上架(主目标,有正式规范)**
1. **生成**:先走「四步定姿势」(见上,查 `references/静态姿势动作库.md` 定姿势组合),再用宿主生图工具(WorkBuddy: `ImageGen`)产出表情图(prompt 要点:同一角色 / 统一风格;插画型 `background: transparent`;照片型可保留原背景;如需角色一致可先出 1 张定稿,再用图生图批量延展)。**注意整套差异充分**——「整套差异不足」是官方明文的第一大拒因,宁可多出几张挑。
2. **裁切 + 命名**:一键生成可自动派生素材——
```bash
python3 scripts/resize_stickers.py ./raw --wechat --out ./wechat_pack --zip --max-kb 500
```
自动输出 **4 类**:主图 240×240(保持源图透明状态)/ 聊天面板图标 50×50 / 封面 240×240 / 详情页横幅 750×400(默认浅灰底),规范命名 `01.png`…`24.png`,每类独立 ZIP。
**赞赏引导图 750×560 / 赞赏致谢图 750×750 脚本不生成**——官方要求「图片风格须与表情一致」,机械贴合会踩官方 ④「不能出现与表情不相关的内容」和 ⑤「背景须与微信底色区分」两条(见下方「路线 A+」)。需按该路线出图后放进 `赞赏引导图/`、`赞赏致谢图/`,`check_assets.py` 会照常校验。
3. **文案校验**:表情名称 / 介绍 / 含义词优先调 `multi-wordcheck`(未装则用 `scripts/check_compliance.py` 离线兜底并提示局限);不通过则改写后复检。
4. **上架实操**(sticker.weixin.qq.com):
1. 登录微信表情开放平台,进入「提交表情」;
2. 创建专辑:填名称(≤8 汉字)、介绍(≤80 字)、版权信息(≤10 字)、分类、标签;
3. 逐项上传主图 / 图标 / 封面 / 横幅(编号一一对应);**开通赞赏时**再补赞赏引导图 / 赞赏致谢图。**不要去传「缩略图」——平台没有这个上传位。**
4. 逐张填写含义词(每张 ≤4 汉字,同套不重复);
5. 预览确认后提交审核;被驳回时检查整套差异是否充分(官方明文的第一大拒因)。
**路线 A+ — 赞赏引导图 / 致谢图(可选,只在要开赞赏时走)**
> **前置判断**:开通赞赏要绑**微信支付商户号** + 账号无违规 + 签赞赏协议(官方原文)。**绝大多数首次上架走不到这步,不要提前做**,也不要因为脚本没出这两张就以为流程缺了一块。
**为什么不让脚本出**:官方赞赏引导图 8 条要求里,③「图片风格须与表情一致」④「不能出现与表情不相关的内容」⑤「背景须与微信底色有较大区分」——`resize_stickers.py` 是 `thumbnail`+`paste`(contain 贴合),把 240×240 表情贴进 750×560 画布,得到的是「一张小角色浮在大片空底上」,且底色默认 `#F2F3F5` 正好等于微信聊天底色,**直接违反 ④⑤**。这是设计问题,不是参数问题。
**出图三条路,按优先级选**:
1. **本 IP 已有风格卡** → 走 `style-card` 的 Phase D:读 `library/INDEX.json` 挑卡 → 按「内容槽位」填值 → ImageGen 出图。最稳,风格天然一致。
2. **还没有卡** → 走 `style-card` 的 Phase A:拿**本套主图 1 张**当参考图反推风格卡 → Phase B 验证 → Phase C 入库(之后所有衍生图都能复用,是资产沉淀)。
3. 用户自己能画 / 有原画师 → 直接出图,跳过以上。
**⚠️ 角色锚定(这一步不能省)**:`style-card` 保的是**配色 / 构图 / 质感**,**不保主体身份**——它的 Phase B 验证标准明写「换一批与原图无关的测试内容」「风格迁移优先保配色+构图」,即它被设计成不保证角色一致。所以必须把 `references/静态姿势动作库.md` 里的**角色描述原样搬进卡的内容槽位**,并拿生成图与本套主图并排比对确认是**同一个角色**。漏这一步,最容易撞的拒因就是 ④「与表情不相关」。
**规格与验收**:
| 项 | 值 |
|---|---|
| 尺寸 | 引导图 750×560 / 致谢图 750×750(数量各 1 张) |
| 格式 / 体积 | **PNG 或 GIF**(无 JPG),≤ 500 KB |
| 背景 | **避免**透明底;须与微信底色(`#F2F3F5`)有明显区分;色调活泼明朗 |
| 画面 | 与表情相关、有故事性;元素不得拉伸/压扁变形;引导语是**文本字段**(5–15 汉字),不要画进图里 |
| 机检 | 放进 `赞赏引导图/`、`赞赏致谢图/` → `python3 scripts/check_assets.py ./wechat_pack` |
| **人工** | **必须看图确认「是不是同一角色、风格是否一致」——机检只验尺寸/格式/透明度,判不了语义** |
**成本**:ImageGen 约 5–10 积分/张,2 张起,反推风格卡可能多 1–2 轮。
**红线**:不要把这套生成逻辑写进 `resize_stickers.py`。那个脚本的卖点是「零依赖 Pillow、离线、确定性秒出」;掺进 ImageGen 就变成「要联网、要积分、同 prompt 两次结果不同」,还会让用户误以为机检通过 = 可以交。
**路线 B — 小红书 / 抖音(内联图片,无正式上架平台)**
1. 先走「四步定姿势」(查 `references/静态姿势动作库.md`),再用宿主生图工具生成表情图。
2. 裁切到推荐尺寸:小红书 1080×1080(笔记配图)、抖音 240–1000px GIF/WebP。
3. 文案走违禁词校验(优先 `multi-wordcheck`;小红书严打私域导流与绝对化词,抖音严查站外引流;离线兜底:`check_compliance.py --platform xiaohongshu douyin`)。
4. 直接用于笔记 / 聊天,无需成套上架。
**路线 C — 已有图片批量裁切**
- 直接跑 `scripts/resize_stickers.py`,指定平台尺寸与背景,输出规范图 + 可选 ZIP;`--fit cover` 可裁切填满、`--max-kb` 可校验体积超限。
**路线 D — 动态 GIF(内容匹配型动画,零积分,优先推荐)**
- **v2 工作流(看图自动配动效)**:
1. **画像**:agent 直接查看贴图,输出内容画像——主体类型(人物全身 / 大头像 / 动物 / 物件 / 文字)、情绪、动态倾向、置信度;
2. **匹配**:查 `references/动效匹配规则.md` 选配方;置信度 low → `neutral` 兜底(宁可轻微也不生硬);文字型主体 → `text`;
3. **渲染**:`python3 scripts/animate_sticker.py cat.png --recipe happy --out cat_happy.gif`
- 9 个情绪配方:`happy`(蓄力蹲→弹跳→落地压扁→回弹呼吸+★)/ `angry`(高频震动+💢)/ `sad`(慢垂+💧)/ `surprised`(过冲回弹+!)/ `shy`(慢摇+💗)/ `speechless`(近静止+…💧)/ `sleepy`(呼吸+Zzz)/ `neutral`(待机呼吸)/ `text`(整体强调脉冲)。
- 引擎要点:缓动曲线(禁线性)、多段相位、挤压拉伸守恒、**不等帧时长**(关键姿势停留更久)、程序化粒子(颜色自动取主体主色)、f(0)=f(1) 无缝循环、体积超限自动降色 / 抽帧。
- 兼容 v1 动效名:`--anim bounce/shake/pulse/wobble` 自动映射配方;`--list` 查看全部配方;`--size` / `--frames` / `--duration` / `--max-kb` 可覆写。
- 进阶可选(消耗积分):更丰富动作用宿主生图工具逐帧图生图(WorkBuddy `ImageGen` 每帧 5–10 credits)再本地合成,需注意帧间一致性;不推荐视频转 GIF 路线(50–100 credits/条 + 逐帧去底闪烁问题)。
## 规则更新与退出机制(规则持续维护的核心)
触发词:**「更新表情包规则」「巡检表情包规范」**(可由定时自动化发起)。流程:
1. **巡检**——先跑 10 秒的「构建号闸门」,再决定要不要全文比对:
- **0 成本预检**:取规范页入口 `readtemplate?t=guide/index.html`(1,394 字节空壳),grep 出 `sticker_platform/<构建号>` 与 `pages/guide/index.<hash>.js`。
- **构建号未变 → 微信侧规范零变动**,直接跳过全文抽取,只巡检其余平台源 URL(飞书 / 抖音 / 小红书 / B站)。
- **构建号变了 → 才做全文抽取**:抓 `https://res.wxqcloud.qq.com.cn/t/wx_fed/base/sticker_platform/<构建号>/static/js/pages/guide/index.<hash>.js`,用正则 `_v\("((?:[^"\\]|\\.)*)"\)` 抽 Vue 可见文本,再逐条 diff。
- 上次一致值记录在 `references/中文平台表情包尺寸规范.md` 的「巡检机制」节(构建号 `26052800` / hash `index.f84d77217115a9c8a0ed.js` / 792,674 字节 / 2026-10-26 复核)。
- 其余平台:逐个 WebFetch `references/` 中记录的「源 URL」,提取现行尺寸 / 格式 / 上限 / 成套要求 / 公约版本。
2. **Diff**:与文件中 `status = active` 的条目逐项对比(数字、格式、上限、平台开关)。
3. **报告**:把差异整理成「旧值 → 新值 + 来源 URL」清单,呈给用户,**未确认前不落盘**。
4. **更新(用户确认后)**:
- 旧条目改为 `status: deprecated`(保留原值、注明日期 / 原因 / 替代值)——**退出但不删除**,便于回溯;
- 新条目以 `status: active` 写入,更新「抓取日期」;
- 文件顶部 CHANGELOG 追加一行(日期 / 版本 / 变更摘要)。
5. **违禁词侧**:实时校验依赖 `multi-wordcheck` API,无需巡检;仅当平台发布公约大版本(如小红书 2.0)时,更新参考文件的「平台专属敏感点」节。
**为什么用 agent 巡检而非写死爬虫脚本**:官方规范页多为 JS 渲染、数字嵌在表格 / 文案里,LLM 提取 + 人工确认比正则爬虫稳健,也不用维护脆弱的选择器。
**条目生命周期**:`pending-verify`(待复核)→ `active`(生效,唯一可执行依据)→ `deprecated`(已退出,禁止使用,保留留痕)。
## References(持续维护,单独更新)
- `references/中文平台表情包尺寸规范.md` — 各平台尺寸 / 格式 / 上限 / 背景 / 成套要求 + status 生命周期 + 源 URL。
- `references/中文平台违禁词合规参考.md` — 违禁词类别、权威来源、平台专属敏感点、通用极限词种子集。**实际校验优先复用 `multi-wordcheck`,本文件仅兜底。**
- `references/动效匹配规则.md` — 情绪×主体 → 动效配方匹配表 + 粒子符号表 + 兜底规则(路线 D 的 L2 匹配表)。新增配方先在此登记(`pending-verify`),POC 验证后转 `active`。
- `references/静态姿势动作库.md` — 意图×变体 → 静态姿势/表情/场景组合 + prompt_en 词串 + `emo_key`(与动效表桥接)。静态出图"语义→姿势"一致性规则表(通用可复用)。新增意图先登记(`pending-verify`),POC 验证后转 `active`。
## Hard rules(Safety guardrails for the agent executing this skill)
- 微信**封面图 / 聊天面板图标必须透明底**;主图**不强制透明**(照片型合法,插画型建议透明);详情页横幅 / 赞赏引导图 / 致谢图官方措辞是「**避免**透明背景」「避免白色背景」——**不是禁止**,机检只判 WARN;横幅用脚本 `--wechat` 默认浅灰底。
- **赞赏引导图 / 致谢图格式只有 GIF 或 PNG**(官方原文),**不含 JPG**;机检会拦 JPG。
- **不要重造违禁词检测**:有 `multi-wordcheck` 就调;没有才用 `check_compliance.py` 兜底并说明局限。
- **动态整套装的动画差异化(v1.3,2026-09-12 官方核实)**:动效必须含义驱动(无意义缩放/平移/晃动/闪烁被拒);同一配方 ≤4 张且参数微调、相邻编号不同配方(「动画高度相似」整套被拒);静态源图不画粒子,统一由动效引擎程序化叠加。详见 `references/动效匹配规则.md` 第六节。
- 抖音 / 小红书无正式表情商店,按「内联图片」处理,不强求成套。
- 尺寸执行依据 = references 中 `active` + 官方核实条目;`pending-verify` 需提示复核;`deprecated` 一律不用。
- 规则巡检**先报告、后确认、再落盘**,禁止未经确认直接改 references。
- 生图消耗积分/配额前先告知用户(WorkBuddy `ImageGen` 约 5–10 credits/张),批量生成前确认张数。
## Script
```bash
# 微信四类可派生素材:主图/图标/封面/横幅一次生成 + 规范命名 + 打包 + 体积校验
# (赞赏引导图/致谢图需自行制作,官方要求风格须与表情一致)
python3 scripts/resize_stickers.py ./raw --wechat --out ./wechat_pack --zip --max-kb 500
# 单尺寸批量(命名 01.png…24.png,主图保持源图透明状态)
python3 scripts/resize_stickers.py ./raw --size 240x240 --format png --out ./out --zip
# 静态贴纸 → 内容匹配动效 GIF(零积分;先看图判情绪,再按 references/动效匹配规则.md 选配方)
python3 scripts/animate_sticker.py cat.png --recipe happy --out cat_happy.gif
python3 scripts/animate_sticker.py --list # 查看全部配方
# 文案离线违禁词校验(兜底;正式发布前仍优先 multi-wordcheck)
python3 scripts/check_compliance.py "全网最低价,加微信详聊" --platform xiaohongshu douyin
```
> 路线 A 进阶脚本已随本 skill 发布:`scripts/check_assets.py`(素材机检)、`scripts/make_submit.py`(提交清单生成),直接可用。
## 相关 skill / Related skills
- 发布前先跑 `xiaohongshu-prohibited-words`(离线违禁词检测):本 skill 负责「做出来」,它负责「发得出去」。
Files in this skill
- AGENTS.md
- SKILL.md
- llms.txt
- references/中文平台表情包尺寸规范.md
- references/中文平台违禁词合规参考.md
- references/动效匹配规则.md
- references/微信表情审核标准与高频拒因.md
- references/静态姿势动作库.md
- scripts/animate_sticker.py
- scripts/check_assets.py
- scripts/check_compliance.py
- scripts/make_submit.py
- scripts/resize_stickers.py
Attribution
Comments
Loading comments…
Newsletter
Get the weekly list of safe new skills, and the ones we pulled.