Community图像github.com

构建微信表情包

将一张或多张用户提供的参考照片转换为完整的、可发布的微信表情专辑:规划并生成恰好20个保持身份一致性的Q版独立表情,包含多样的中文反应;保留未经修改的原始图片和高分辨率生成源;创建符合现行规范的微信横幅、封面和聊天图标素材以及提审元数据;验证每个交付物;并构建仅用于上传的包和完整的归档包。当用户希望根据参考图片创建、重建、打包或准备微信表情包时使用。

构建微信表情包 是什么?

该技能提供了一个端到端的自动化工作流,用于将用户提供的参考照片转化为一套完整的、可直接提交微信平台审核的Q版表情包。它能精确生成20个独立的高分辨率表情素材,每个都通过独立的图像生成调用创建,确保姿势、表情和反应各不相同,同时保持角色一致。除了核心的20个表情,技能还能自动生成并处理发布所需的横幅、封面和聊天图标,并利用预设脚本处理文字合成、文件校验、联系方式生成和打包。整个流程严格遵守非协商性约束,包括无损保留原始参考文件、生成检查和表单,并对权利归属和AI披露提出明确的问询和记录,最终产出仅包含提审必需文件的“仅上传”归档包和包含所有过程资产的完整归档包。该技能支持Claude Code等平台,其核心逻辑由`sticker_pack.py`脚本驱动,并依赖于内置的图像生成和查看功能。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Brclio/Skills/tree/HEAD/skills/build-wechat-sticker-pack

Installed? Explore more 图像 skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

构建微信表情包 是做什么的?

创建一个端到端的20个表情制作流程,基于参考图片完成生产。保留原始文件,独立生成每个表情,准备微信发布素材,进行验证,并打包。

所需的配套技能和工具

在生成图片之前,请完全阅读并遵循已安装的 imagegen 技能。默认使用其内置的图像生成路径。不要默默切换到 CLI/API 回退方案。

使用:

  • 内置 image_gen 生成角色锚点图、20个独立的表情画稿、横幅、封面和图标;
  • view_image 进行参考图检查和视觉质量检查;
  • scripts/sticker_pack.py 执行确定性采集、文字合成、验证、联系方式生成和打包;
  • 官方微信/腾讯来源以刷新有实效的发布规则。

将 <skill-dir> 解析为包含此 SKILL.md 的目录;不要假设工作区的工作目录就是技能目录。

非协商性约束

  • 生成恰好20个最终表情,编号为 01.png 到 20.png。
  • 通过20次独立的 image_gen 内置调用生成20个表情画稿。绝不可使用拼贴画、多图面板、联系方式图像、使用 n 的单次调用或重复的画稿作为替代。
  • 首先生成一个独立的、不带文字的角色锚点图。该锚点不计入20个表情。
  • 逐字节保留每个提供的参考文件,包括其原始文件名、扩展名、EXIF信息、文件大小和SHA-256哈希值。绝不可覆盖、转码、裁剪或剥离已归档的副本。
  • 保留每个被接受的高分辨率原始生成画稿和每个高分辨率最终母版。在有利于审核时,将拒绝的重试输出保留在源目录 versions/ 下,但绝不可用它们替代已接受的位。
  • 联系方式仅保留在预览/审查目录下;绝不可将其放入提审包中。
  • 请勿编造所有权、版权、肖像同意书、AI披露或审核状态。
  • 仅当所有20个表情、发布素材、元数据、人工审核关口和权利关口均通过时,才将本次制作标记为 ready-to-submit。

输入约束和个人默认值

对于正常的自有版权制作,仅需一张或多张参考图片。从 assets/creator-profile.json 加载此用户的可复用默认值。

如果 copyright_holder 为空,则提出一个引导性问题以获取确切的真实提交者/版权名称,将其保存到配置文件中,然后继续操作。绝不可用仓库维护者的身份替代其他用户。

应用已保存的版权持有者和发布选择。在检查参考图片后明确设置本次制作的权利和肖像布尔值。对于私下提供的自拍参考,仅在没有冲突信息时,将调用视为用户的证明。如果图片是公众人物、第三方作品、下载的画稿、明显的品牌IP或同意情况不明的人,在宣布包为“可提交”之前,先提出一个简洁的权利问题。

如果多张图片明显显示同一主体,则将它们合并为身份参考。如果显示的是不同的主体且意图不明确,则提出一个主体选择问题。

输出目录结构

在 output/wechat-sticker-pack/<slug>-<timestamp>/ 下创建一个新的制作目录:

00-reference-originals/       未修改的用户输入 + 哈希值
01-plan/                      pack.json, 计划CSV, 角色/风格圣经, 提示词
02-source-assets/
  character-anchor.png
  generated-raw/stickers/     20个未修改的图像生成输出
  generated-raw/assets/       横幅, 封面, 图标的源文件
  generated-masters/          20个高分辨率文字合成母版
03-submission/
  stickers/                   01.png ... 20.png
  assets/                     横幅, 透明封面, 透明图标
  metadata/                   公开副本, 含义说明, 权利/AI声明
  qa/                         QA JSON/TXT 和哈希值
04-preview/contact-sheet.png
archives/<slug>-submission.zip
archives/<slug>-full-archive.zip 或 <slug>-draft-full-archive.zip
state.json                   仅本地状态;排除在归档包之外

工作流程

1. 刷新平台规则

阅读 references/wechat-publish-spec.md。在有网络时,每次制作前浏览微信表情开放平台和当前官方资源代码。如果支持的规则发生了变化,记录 changed-unsupported,在生成前停止,并在继续之前更新技能和测试;绝不可仅通过修改制作元数据来声称兼容性。

如果无法验证当前规则,则仅作为草稿继续,使用带日期标记的快照,并记录 rules_status: snapshot-unverified 加上实际检查日期。如果检测到规则变更,则记录 rules_change_details;脚本会阻止生成,直到技能更新。

2. 检查参考图片并建立权利

使用 view_image 检查每一张参考图片。明确标记其角色:身份参考、可选服装参考、可选风格参考。

根据可见的、非敏感的特征构建角色圣经。不得从外貌推断职业、健康状况、人际关系、种族或个性。

使用 assets/creator-profile.json 中的个人默认值,除非当前请求覆盖它们。遵循 references/rights-and-ai.md。

3. 规划恰好20个表情

在编写计划之前阅读 references/content-planning.md。创建一个冻结的 pack.json,它必须符合 references/pack-schema.json 并包含:

  • 当前专辑名称、简介、版权、平台选择以及权利/AI字段;
  • 恰好20个唯一条目,ID为 01–20;
  • 唯一的意图、准确文本、含义词、表情、姿势/动作、道具、构图、文字区域和绘画提示词;
  • 一个角色圣经、风格圣经、共享避免列表、一个锚点提示词和发布素材提示词。

不要自动复用前一个包的固定短语。优先使用用户提供的短语,然后动态填充剩余的沟通角色。

将配置文件模板复制到运行计划中并初始化制作:

python <skill-dir>/scripts/sticker_pack.py init \
  --run-dir <run-dir> \
  --spec <prepared-pack.json> \
  --reference <reference-image> [--reference <image> ...]

4. 生成并注册角色锚点图

使用原始参考图片生成一个中性、不带文字的Q版角色锚点图。保留关键可见身份特征和一套简化的服装。使用纯色的制作背景,无道具、文字、标志、签名、边框或水印。

将确切的冻结锚点提示词保存为 UTF-8 文本,然后注册生成的文件:

python <skill-dir>/scripts/sticker_pack.py import-art \
  --run-dir <run-dir> --kind anchor --source <anchor.png> \
  --generator builtin-imagegen --prompt-file <anchor-prompt.txt>

5. 生成20个独立的不带文字表情画稿

阅读 references/prompt-templates.md。对于每个冻结的计划项:

  1. 使用原始参考图片加上相同的角色锚点图,调用内置 image_gen 一次。
  2. 重复共享的身份和风格不变要素。
  3. 仅更改计划的表达、姿势/动作、道具、构图和预留文字区域。
  4. 生成一个独立的方形画稿,不包含任何文字或类似文字的标记。
  5. 检查身份一致性、动作、裁剪、背景、杂散文字、水印和单图合规性。
  6. 导入已接受的原始图像:
python <skill-dir>/scripts/sticker_pack.py import-art \
  --run-dir <run-dir> --kind sticker --slot <01..20> --source <generated.png> \
  --generator builtin-imagegen --prompt-file <slot-prompt.txt>

重试策略:

  • 对于工具失败,使用相同提示词重试一次;
  • 对于身份漂移、错误动作、裁剪、杂散文字或多面板输出,进行一次有针对性的提示词修正;
  • 使用参考图片 + 锚点图 + 最佳尝试进行第三次有针对性的尝试;
  • 对于一个插槽,在三次尝试失败后停止,完成安全的剩余工作,并将制作标记为草稿/未就绪状态。绝不可用重复项填补空缺。

6. 合成精确文字并发布表情贴图文件

使用确定性渲染器,而不是信任生成的汉字:

python <skill-dir>/scripts/sticker_pack.py render-stickers --run-dir <run-dir>

渲染器会保留原始图像生成文件,创建带有精确计划文字的高分辨率母版,生成240×240的上传PNG文件,去除衍生的EXIF信息,并写入一个包含文字、编码点、字体、源文件哈希值、输出哈希值和布局的收据。

如果渲染器无法以可读的方式容纳确切的文字,请仅修改该计划项的文字或布局后再进行渲染;绝不可静默地截断或将其缩小到最小尺寸以下。

7. 生成发布素材

通过三次独立的内置调用生成三个不同的素材:

  • 详情横幅:彩色不透明故事场景,无文字/数字,无白色或透明背景;
  • 专辑封面:在完全平坦的色度键背景上的可识别前半身/全身,无文字或白色轮廓线;
  • 聊天图标:在相同平坦色度键上的正面头部特写,无手、文字、装饰、白色轮廓线或边框。

选择一个主体中不存在的关键色:默认 #00ff00,当主体/服装包含绿色时使用 #ff00ff。在素材提示词和抠除命令中固定该选择。

使用图像生成技能要求的辅助程序去除封面/图标的色度键。验证Alpha通道结果;仅在还有残留边缘时,使用 --edge-contract 1 重试一次。

在去除色度键之前导入原始的色度输出,然后导入已接受的横幅和已透明的封面/图标:

python <skill-dir>/scripts/sticker_pack.py import-art --run-dir <run-dir> --kind cover-chroma --source <cover-chroma.png> --generator builtin-imagegen --prompt-file <cover-prompt.txt>
python <skill-dir>/scripts/sticker_pack.py import-art --run-dir <run-dir> --kind icon-chroma --source <icon-chroma.png> --generator builtin-imagegen --prompt-file <icon-prompt.txt>
python <skill-dir>/scripts/sticker_pack.py import-art --run-dir <run-dir> --kind banner --source <banner> --generator builtin-imagegen --prompt-file <banner-prompt.txt>
python <skill-dir>/scripts/sticker_pack.py import-art --run-dir <run-dir> --kind cover --source <cover-alpha.png> --generator local-chroma-removal --chroma-key <#RRGGBB> --edge-contract <0..3>
python <skill-dir>/scripts/sticker_pack.py import-art --run-dir <run-dir> --kind icon --source <icon-alpha.png> --generator local-chroma-removal --chroma-key <#RRGGBB> --edge-contract <0..3>
python <skill-dir>/scripts/sticker_pack.py prepare-assets --run-dir <run-dir>

8. 视觉质量检查与人工审核关口

创建内部联系方式:

python <skill-dir>/scripts/sticker_pack.py contact-sheet --run-dir <run-dir>

单独和在联系方式中检查20个最终表情。验证角色一致性、确切的可见文字、独特的动作/剪影、在240×240尺寸下的可读性、无水印/标志/乱码,以及无意外面板。

检查最终尺寸下的横幅、封面和图标。然后将每个适用的 manual_review 字段在 01-plan/pack.json 中设置为 true。不要确认你实际上没有审查过的字段。

9. 验证和打包

python <skill-dir>/scripts/sticker_pack.py validate --run-dir <run-dir> --strict
python <skill-dir>/scripts/sticker_pack.py package --run-dir <run-dir>

仅上传的归档包必须使用脚本固定的允许列表,并排除原始文件、原始画稿、母版、提示词、联系方式、状态文件、额外文件和本地绝对路径。完整归档包必须包含字节相同的原始文件、源文件、计划、冻结的提示词、经过清理的生成账本、提审文件、QA和来源证明,但排除仅本地状态和归档循环。警告:完整归档包可能保留原始EXIF/GPS信息,不应作为公共上传包共享。

如果权利或其他提审关口仍未解决,则仅创建一个明确标记的草稿归档包:

python <skill-dir>/scripts/sticker_pack.py package --run-dir <run-dir> --full-only

这会生成 <slug>-draft-full-archive.zip,并隔离任何过期的提交ZIP文件,使其不会被误认为是当前的就绪包。

完成关口

仅当验证和归档完整性通过时报告成功:

  • 20/20 stickers passed
  • publication assets passed
  • original references preserved
  • rights profile confirmed
  • AI declaration prepared
  • status: ready-to-submit

否则报告 draft/not-ready 并附上确切失败的位置或关口。始终提供两个归档包、提审目录、副本/含义文件以及质量报告的绝对路径。

参考文档路由

  • 每次新包制作前阅读 references/content-planning.md。
  • 图片生成前阅读 references/prompt-templates.md。
  • 平台素材规划或验证前阅读 references/wechat-publish-spec.md。
  • 当涉及真实人物、第三方图片、版权、肖像权或AI披露时,阅读 references/rights-and-ai.md。
  • 创建或修复 pack.json 时使用 references/pack-schema.json。

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

Brclio/Skills

>- Create a reusable content-illustration character and simple IP Standard Pack for a person, creator account, or brand. Use for personal IP, account mascots, brand characters, blind-box or designer-toy characters, “把我变成一个角色”, “做一个账号形象”, or when someone needs consistent character images, values, turnaround views, and reusable prompts.

Brclio/Skills

生成 Bornforthis 个人 IP 风格的中文正文配图。用于用户要求为中文文章、帖子、博客、Notion 文档、知识讲解、工作流、方法论、流程、结构、状态、隐喻或观点制作“Bornforthis”“个人 IP”“蜡笔手绘”“正文配图”“文章插图”“配图建议”“shot list”“去标题”或“改图”时;默认使用 Bornforthis 青年男性角色、纯白背景、蜡笔或马克笔斜线纹理、深蓝粗描边、少量蓝红中文批注和温暖而略荒诞的绘本风格。

Brclio/Skills

Generate and deliver long-form Chinese narration through ListenHub using the Xiaoman and Cola female voices. Use when the user asks to read a full text, split a long script into audio parts, provide both segmented and merged MP3 files, compare or preserve Xiaoman/晓曼 and Cola voices, or asks for the same audio in both voices. This skill is Cola/ListenHub-specific and requires the ListenHub TTS capability plus local file download and audio concatenation.

Brclio/Skills

Design a gender-adaptive personal-IP cartoon system from one portrait for users with no art background. Provides classic, random, guaranteed light-palette, industry full-body, and official brand or university VI theme modules plus action designs, front full-body characters, eight-angle turnarounds, 24-emotion packs, collages, and an offline HTML selection gallery. When the user gives no explicit feature-control instruction, every applicable feature defaults on. Use for personal IP, professional or industry avatars, campus-color characters, character sheets, expression packs, avatar blind boxes, interactive image shortlisting, or expansion of an approved set.

相关技能