
Wechat Sticker Assets Designer
- 7 installs
- 28 repo stars
- Updated July 16, 2026
- guanyang/super-publisher
Generate WeChat sticker promotional assets (banner, tip guide image, thank-you image) matching an existing IP character to official platform specs.
About
Analyzes an existing sticker IP character and sequentially generates WeChat-spec promotional assets - banner, reward-guide, and thank-you images - keeping character consistency and no embedded emoji. A developer uses it when producing companion marketing assets for a published WeChat sticker pack.
- IP character consistency across all three assets
- Follows official WeChat sticker platform specs
Wechat Sticker Assets Designer by the numbers
- 7 all-time installs (skills.sh)
- Ranked #1,085 of 1,335 Generative Media skills by installs in the Skillselion catalog
- Data as of Jul 24, 2026 (Skillselion catalog sync)
npx skills add https://github.com/guanyang/super-publisher --skill wechat-sticker-assets-designerAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 7 |
|---|---|
| repo stars | ★ 28 |
| Last updated | July 16, 2026 |
| Repository | guanyang/super-publisher ↗ |
What it does
Generate WeChat sticker promotional assets (banner, tip guide image, thank-you image) matching an existing IP character to official platform specs.
Files
WeChat Sticker Assets Designer (微信表情包配套素材设计师)
本 Skill 旨在协助 Agent 扮演专业的设计师角色,分析用户已有的表情包 IP 形象,并严格按照微信表情开放平台的规格标准,依次生成横幅 (Banner)、赞赏引导图和赞赏致谢图。
---
🎨 核心约束 (Global Constraints)
1. IP 角色一致性 (Character Consistency):
- 在生成所有 3 张图片时,必须严格保留并继承用户参考图中的 IP 核心特征(例如:发型、配饰、五官比例、经典色调等)。必须确保是同一个角色在不同场景下的演绎。
2. 严禁包含 Emoji 表情:
- 所有生成的图像画面中,绝对不能出现任何 Emoji 符号(如 😂, ❤️, 👍 等)。
3. 图画格式规范:
- 在构建绘图 Prompt 时,明确描述干净、扁平、矢量插画等有利于呈现 PNG 质感的风格词,确保边缘整洁。
4. 单步依次输出 (Sequential Output):
- 必须按照工作流,一张接一张独立调用工具生成并展示,严禁将多张图合并拼接成一张长图。
---
📏 图像生成规格 (Detailed Specs)
第一张:微信横幅 (Banner)
- 尺寸比例:
750x400像素 (宽长比约 1.875:1,Prompt 中设置比例,如--ar 15:8或1.875:1 aspect ratio)。 - 画面内容:
- 设计一个以该 IP 角色为核心、具有故事性和丰富细节的完整场景(如:角色在太空探险、在森林露营或在桌前创作等)。
- 色调活泼明朗。
- 背景约束 (极重要):背景严禁使用白色,也严禁使用透明背景,必须有饱满的带色彩背景,以在微信浅色界面中形成清晰的视觉边界。
- 文字约束:画面中严禁出现任何文字或乱码。
第二张:赞赏引导图 (Solicitation Image)
- 尺寸比例:
750x560像素 (宽长比约 1.34:1,Prompt 中设置比例,如--ar 4:3或1.34:1 aspect ratio)。 - 画面内容:
- 角色需要展现出“期待支持”、“可爱卖萌”或“双手捧碗/求打赏”的神态与动作,增强赞赏吸引力。
- 背景约束:严禁使用白色或接近白色的浅色背景与边缘。背景必须为实色且深于微信页面底色。
- 文案要求:
- 必须在画面合适位置完美融合中文文字:“您的赞赏是我们最大的动力!”。
- 文字的字体、颜色和风格需与整体画面插画风格保持高度一致。
第三张:赞赏致谢图 (Acknowledgment Image)
- 尺寸比例:
750x750像素 (1:1 正方形比例,Prompt 中设置比例--ar 1:1)。 - 画面内容:
- 角色展现出“极其感激”、“庆祝”、“撒花欢呼”或“双手比心致谢”的开心状态。
- 画面色彩丰富饱满,营造出喜庆、欢快的互动氛围,激发分享欲。
- 背景约束:严禁使用白色或接近白色的浅色背景与边缘。
- 文案要求:
- 必须在画面合适位置完美融合中文文字:“感谢您的慷慨赞赏!”。
- 文字的排版和设计需与画面插画风格保持和谐。
---
🛠️ 使用指南 (Usage Guide)
1. 快速开始 (Quick Start)
无需手动安装依赖,直接运行脚本即可。工具会自动创建虚拟环境 (.venv) 并安装所需依赖。
# 横幅 Banner (目标 750x400,采用居中 center 裁剪)
./skills/wechat-sticker-assets-designer/scripts/run.sh "PATH_TO_BANNER" --width 750 --height 400 --anchor center
# 赞赏引导图 (目标 750x560,采用靠上 top 裁剪以防切掉顶部文字)
./skills/wechat-sticker-assets-designer/scripts/run.sh "PATH_TO_SOLICITATION" --width 750 --height 560 --anchor top
# 赞赏致谢图 (目标 750x750,采用居中 center 缩放)
./skills/wechat-sticker-assets-designer/scripts/run.sh "PATH_TO_ACKNOWLEDGMENT" --width 750 --height 750 --anchor center2. (可选) 手动安装
如果您希望手动管理环境:
python3 -m venv .venv
source .venv/bin/activate
pip install -r skills/wechat-sticker-assets-designer/requirements.txt
python3 skills/wechat-sticker-assets-designer/scripts/crop_and_resize.py ...---
🛠️ 执行工作流 (Execution Workflow)
Agent 激活本技能后,需严格按以下四个步骤执行:
1. 第一步:分析 IP 角色风格。
- 阅读并分析用户提供的【表情示例图】或角色描述,提取并总结出角色的线条笔触、色彩搭配及标志性特征(如“双丸子头、红飘带的哪吒角色”)。
2. 第二步:生成横幅 (Banner)。
- 构建绘图 Prompt 描述符合 Banner 规格的丰富故事场景,调用
generate_image生成。 - 检查生成的图片:确保无任何文字且无白色/透明背景。
3. 第三步:生成赞赏引导图。
- 构建 Prompt 描述角色期待卖萌的姿态,并加入包含文案“您的赞赏是我们最大的动力!”的排版指示,调用
generate_image生成。 - 检查背景是否非白。
4. 第四步:生成赞赏致谢图。
- 构建 Prompt 描述角色狂欢致谢、比心的开心姿态,并加入包含文案“感谢您的慷慨赞赏!”的排版指示,调用
generate_image生成。
5. 第五步:输出结果核对与裁剪 (CRITICAL CHECK & CROP)。
- 重要说明 (脚本条件化裁剪):由于绘图工具可能默认输出 1:1 图片,Agent 必须在生成完成后使用本技能内置的裁剪脚本来执行条件化尺寸核准(只有在尺寸不符时才会真正执行裁剪和缩放):
- 运行脚本命令样例(推荐使用
run.sh脚本):
# 横幅 Banner (目标 750x400,采用居中 center 裁剪)
./skills/wechat-sticker-assets-designer/scripts/run.sh "PATH_TO_BANNER" --width 750 --height 400 --anchor center
# 赞赏引导图 (目标 750x560,采用靠上 top 裁剪以防切掉顶部文字)
./skills/wechat-sticker-assets-designer/scripts/run.sh "PATH_TO_SOLICITATION" --width 750 --height 560 --anchor top
# 赞赏致谢图 (目标 750x750,采用居中 center 缩放)
./skills/wechat-sticker-assets-designer/scripts/run.sh "PATH_TO_ACKNOWLEDGMENT" --width 750 --height 750 --anchor center- 在交付前,Agent 必须显式确认三张素材的最终像素尺寸已完全符合要求。
- 强约束:如果因为任何绘图工具故障导致任何一张图缺失,必须立即重新调用生图工具补全生成,绝不能只交付部分素材。
- 最终将这 3 张独立图片复制/保存到用户指定的输出目录下(如果未指定,默认创建
output/sticker_assets_[theme]目录),并向用户呈报绝对路径、画幅规格与预览。
WeChat Sticker Assets Designer (微信表情包配套素材设计师)
本 Skill 用于自动分析表情包 IP 角色形象,并为用户生成发布微信表情包时所需的横幅 (Banner)、赞赏引导图和赞赏致谢图。
---
📂 目录结构
skills/wechat-sticker-assets-designer/
├── README.md # 本说明文档
├── SKILL.md # 核心设计规范与生图指令逻辑
├── requirements.txt # Python 依赖配置 (Pillow)
└── scripts/
├── run.sh # 自动环境初始化与运行包装脚本
└── crop_and_resize.py # 尺寸自动校准与条件裁剪脚本---
🚀 核心功能
- IP 风格分析:自动识别参考图中的线条笔触、角色特征和主色调,确保配套素材的角色一致性。
- 多尺寸适配:
- 横幅 (Banner):
750x400(高细节故事性场景,无文字,无白底)。 - 赞赏引导图:
750x560(求支持卖萌场景,融入指定文案“您的赞赏是我们最大的动力!”,无白底)。 - 赞赏致谢图:
750x750(庆祝/感谢场景,融入指定文案“感谢您的慷慨赞赏!”,无白底)。 - 合规规避:严格遵循微信规范,不输出白底/透明底,画面中不产生任何 Emoji 表情符号。
---
🗣️ 自然语言调用示例
在与 Agent 的交互中,您可以通过上传 IP 角色图并使用以下指令触发此技能:
User: "这是我的小狗表情包参考图,帮我生成一套它的微信表情包配套素材(横幅、引导图、致谢图)。"
>
Agent:
1. 分析小狗 IP 形象的特征(如:戴黄色领巾、耷拉耳朵、手绘简笔画风)。
2. 依次生成符合 750x400 的故事 Banner(如小狗在草地奔跑)。3. 生成符合 750x560 且带文案“您的赞赏是我们最大的动力!”的引导图。4. 生成符合 750x750 且带文案“感谢您的慷慨赞赏!”的致谢图。5. 输出生成的所有素材路径。
---
💡 最佳提示词实践 (Pro Tips)
- 提供清晰的参考图:确保上传的表情图清晰可见,能体现角色的正面、发型、特殊配饰等特征。
- 说明画风:如果角色风格较为独特(如“扁平插画”、“波普风”、“厚涂油画”),可以在命令中进行说明,以便 Agent 生成更贴合的背景。
Pillow>=9.0.0
import sys
import os
import argparse
from PIL import Image
def process_image(img_path, target_w, target_h, anchor='center'):
if not os.path.exists(img_path):
print(f"Error: File not found: {img_path}")
sys.exit(1)
try:
img = Image.open(img_path)
except Exception as e:
print(f"Error opening image: {e}")
sys.exit(1)
w, h = img.size
# Check if already in target dimensions
if w == target_w and h == target_h:
print(f"Image {img_path} is already {target_w}x{target_h}. Skipping crop and resize.")
return
# Check if aspect ratio matches but only needs resizing
target_ratio = target_w / target_h
current_ratio = w / h
# We allow a very small float discrepancy for aspect ratio check
if abs(current_ratio - target_ratio) < 0.001:
print(f"Aspect ratio matches. Resizing {img_path} from {w}x{h} to {target_w}x{target_h}...")
resized = img.resize((target_w, target_h), Image.Resampling.LANCZOS)
resized.save(img_path, "PNG")
return
# Crop and resize
print(f"Aspect ratio mismatch ({w}x{h} vs {target_w}x{target_h}). Cropping and resizing...")
if current_ratio > target_ratio:
# Current is wider than target -> crop width (left/right)
new_w = int(h * target_ratio)
new_h = h
if anchor == 'left':
left = 0
elif anchor == 'right':
left = w - new_w
else:
left = (w - new_w) // 2
top = 0
else:
# Current is taller than target -> crop height (top/bottom)
new_w = w
new_h = int(w / target_ratio)
left = 0
if anchor == 'top':
top = 0
elif anchor == 'bottom':
top = h - new_h
else:
top = (h - new_h) // 2
cropped = img.crop((left, top, left + new_w, top + new_h))
resized = cropped.resize((target_w, target_h), Image.Resampling.LANCZOS)
resized.save(img_path, "PNG")
print(f"Successfully processed {img_path} to {target_w}x{target_h}")
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Image Cropper and Resizer for WeChat Sticker Assets")
parser.add_argument("image", help="Path to the image to process")
parser.add_argument("--width", type=int, required=True, help="Target width")
parser.add_argument("--height", type=int, required=True, help="Target height")
parser.add_argument("--anchor", default="center", choices=["center", "top", "bottom", "left", "right"],
help="Anchor side to keep when cropping (default: center)")
args = parser.parse_args()
process_image(args.image, args.width, args.height, args.anchor)
#!/bin/bash
set -e
# Get the directory where this script is located
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
SKILL_ROOT="$(dirname "$SCRIPT_DIR")"
VENV_DIR="$SKILL_ROOT/.venv"
REQUIREMENTS_FILE="$SKILL_ROOT/requirements.txt"
PYTHON_SCRIPT="$SCRIPT_DIR/crop_and_resize.py"
# Colors for output
GREEN='\033[0;32m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
log_info() {
echo -e "${BLUE}[INFO]${NC} $1"
}
log_success() {
echo -e "${GREEN}[SUCCESS]${NC} $1"
}
# 1. Check/Create Virtual Environment
if [ ! -d "$VENV_DIR" ]; then
log_info "Creating virtual environment at $VENV_DIR..."
python3 -m venv "$VENV_DIR"
log_success "Virtual environment created."
fi
# 2. Install Dependencies
PYTHON_BIN="$VENV_DIR/bin/python"
PIP_BIN="$VENV_DIR/bin/pip"
log_info "Checking dependencies..."
"$PIP_BIN" install -q -r "$REQUIREMENTS_FILE"
# 3. Run the valid script
log_info "Running crop and resize tool..."
"$PYTHON_BIN" "$PYTHON_SCRIPT" "$@"