想做一个在 Slack 里清楚可辨、循环自然的小动图,难点往往不在“画得多复杂”,而在尺寸、帧数、文件大小和首尾衔接能否同时合适。Anthropic 的 Slack GIF Creator Skill 提供了相关知识与 Python 辅助工具,可以把制作过程拆成生成帧、组装、压缩和检查几个步骤。
本文以“圆环轻微脉冲”的原创图形为练习,讲清安装、任务描述、生成方案和验收方法。最终目标是一个可检查的循环 GIF,而不是自动向工作区发送消息。本教程依据固定版本官方源码编写,示例是操作方案与预期;本轮未执行第三方脚本,也未实际向 Slack 上传动图。
一、Skill 提供了什么
这份 Skill 位于 anthropics/skills 仓库的 skills/slack-gif-creator。它包括 SKILL.md、Python 依赖清单、许可证,以及 core/ 目录里的帧合成、GIF 组装、缓动和验证工具。
它不是独立的 AI 模型,也没有自带大量图片素材。支持 Skill 的宿主负责理解任务、编写或调整图形逻辑;Python 辅助工具处理帧和 GIF。安装 Skill、安装 Python 依赖、获得 Slack 上传权限,是三件独立的事。
本文选择简单几何图形,避免先陷入字体、复杂人物与素材授权问题。图片需要你有权使用,不把网上找到的品牌、人物或表情包默认当成可自由再分发素材。
二、下载和版本要先对应
文末资源表提供百度网盘安装包与官方项目入口。本包固定在 commit 2c5958ecac7cee2b583967a2c4981d0f4a75c579,页面简写为 commit 2c5958ecac7c,不宣称最新版本。目录内许可证是 Apache-2.0,分发包保留完整许可和来源说明。
主要结构如下:
slack-gif-creator/
SKILL.md
LICENSE.txt
requirements.txt
core/
gif_builder.py
frame_composer.py
easing.py
validators.py
README-来源与安装说明.txt下载后先核对文件名和目录,阅读说明,不执行来源不明的附加安装器。Windows 用户可用 Get-FileHash 检查 ZIP 的 SHA256;本包校验值为 a74c0e0a6638b471e1368a46b37ddc0a73b9a9cbe2787b260a76c6f2c40c4e64。校验值用于确认与本站包一致,不代表可以跳过源码与权限检查。
当前夸克同步已暂停,本文只展示实际核验过的百度渠道,不会编造第二个下载地址。后续渠道是否恢复,以站点实际状态为准。
三、在宿主里启用 Skill
已有 Claude Code 且环境支持插件时,可依据官方仓库说明,在 Claude Code 会话内运行下面的命令,不能把它们当成 PowerShell 命令:
/plugin marketplace add anthropics/skills
/plugin install example-skills@anthropic-agent-skills官方示例集合包含这份 Skill;集合安装不代表只装一个工具。完成后检查宿主插件列表与启用状态,再确认 slack-gif-creator 指引能被加载。市场取得的版本可能与本站固定包不同,应核对实际源码。
如果宿主支持官方 Skill 文件夹导入,按该宿主说明导入完整目录。没有导入功能的普通聊天框,也能帮助你理解图形方案,但不能称为已经安装 Skill。不要随意照搬其他宿主的隐藏目录路径。
宿主调用 Python 前,还需要本地运行环境。下面以 Python 3.11 或较新的兼容版本为练习环境;这版源码包含现代类型语法,不建议拿旧 Python 碰运气。
四、配置独立 Python 环境
进入解压后的 slack-gif-creator 根目录,确认同级能看到 core 和 requirements.txt,再在终端创建环境:
python -m venv .venvWindows 不必修改全局执行策略或激活脚本,可以直接使用虚拟环境里的解释器安装依赖:
.venv\Scripts\python.exe -m pip install -r requirements.txtmacOS/Linux 对应命令是:
.venv/bin/python -m pip install -r requirements.txt依赖清单包括 Pillow、imageio、imageio-ffmpeg 和 NumPy。最低版本不等于完整锁定环境;真正复现时记录实际安装版本和 Python 版本。这里给出的是读者执行步骤,本文没有声称安装过程已在你的电脑通过。
五、把动图需求写成可检查的参数
先给宿主一个范围明确的任务,而不是只说“做个好看的动图”:
请使用 slack-gif-creator,设计一个原创圆环脉冲GIF。
画布128×128,方形,主体保持居中。
计划20帧、10FPS,约2秒,循环时首尾自然衔接。
使用简单几何图形与少量颜色,不用文字或第三方品牌素材。
先解释每帧变化和导出方案,再生成脚本。
文件保存到当前练习目录,不上传Slack、不发送消息。
完成后报告实际尺寸、帧数、各帧时长与文件字节数。
不要把未执行的方案称为已经生成或已通过Slack验收。128×128、较少颜色和短时长来自 Skill 的建议及本例设计选择,不应全部当作 Slack 的硬性协议。Slack 当前官方帮助说,方形、透明背景、低于 128KB 的图片效果较好,支持 JPG、PNG 与 GIF,GIF 最多 50 帧。
本例只选 20 帧,是为了留出可检查的余量。最终应检查导出的实际文件,不能只看提示词里计划写了多少帧。 编码器可能合并相同帧或改变时长,压缩也可能影响视觉效果。
六、理解生成和组装流程
官方源码的 GIFBuilder 接受每帧图像,按指定宽高与帧率组装,并支持颜色压缩等选项。绘图部分需要你或宿主编写,不存在一个能直接生成任意好看动图的固定“万能模板”。
对于圆环脉冲,先固定中心点和线宽,再让半径随周期缓慢变化。首尾应落在同一周期上,避免循环回到第一帧时突然跳变。不要在第 20 帧刚放大到最大,下一帧又瞬间缩到最小。
让宿主把绘图逻辑与保存参数分开说明。绘图逻辑回答“每帧画什么”;保存参数回答“怎样编码成 GIF”。如果效果不对,先判断是运动设计还是导出设置,不要反复随机改全部参数。
固定版本中 GIFBuilder.save 支持 num_colors、optimize_for_emoji 和 remove_duplicates 等选项。减色可以减小文件,但不保证视觉质量不变;合并重复帧后也要重新检查实际节奏。首次使用可采用官方示例结构,修改前先阅读对应函数。
七、验证器通过不等于平台一定接收
这版 core/validators.py 会读取尺寸、文件大小、帧数和时长等信息,但其 passes 主要由尺寸检查决定。文件大小、帧数并没有全部作为硬性门槛参与最终布尔结果。
因此,看到 is_slack_ready 返回 True,不能直接写成“Slack 保证通过”。你还要单独核对当前 Slack 的帧数要求、文件大小、实际播放,以及工作区是否允许添加自定义表情。
另外,当前验证器的总时长计算使用单帧时长乘以帧数。对于每帧时长不一致的文件,这可能不等于实际总时长;应逐帧查看 duration 并求和。这是固定源码的检查边界,不代表所有后续版本都一样。
最重要的验收是文件本身和实际使用场景,而不是一个名字很有把握的函数。
八、上传前逐项验收
- 尺寸与布局:实际文件是否方形,主体是否居中,在小尺寸下能否看清。
- 帧数与时长:是否符合本次计划和平台要求,有无异常停顿、闪烁或突然跳帧。
- 文件大小:检查字节数,别把“16KB 的源码包”与“生成 GIF 的大小”混为一谈。
- 循环表现:连续看几轮,确认不是只看第一轮觉得顺畅;注意运动幅度和观看舒适度。
- 素材与权限:图形是否原创或授权充分,是否有权向目标工作区添加自定义表情。
Slack 的上传入口和权限由工作区设置决定。按官方自定义表情流程操作,确认文件和名称后再提交;本文没有替你进入工作区,不声称完成上传。若无权限,应联系管理员,不能靠换账号或脚本绕过限制。
九、常见错误与排查
报错找不到 core。 检查当前目录与脚本位置,保留解压目录结构;不要为了解决路径问题把全局 Python 路径改得不可追溯。
找不到 PIL 或 imageio。 确认安装依赖和运行脚本使用同一个虚拟环境解释器,不要只看某次 pip 输出成功。
体积过大。 在保留原文件后,一次只调整帧数、颜色数或图形复杂度中的一项。导出后重新检查实际大小和循环,不能只追求压缩率。
边缘出现锯齿或颜色断层。 先检查缩放和减色;复杂渐变未必适合很小的表情。简单但清楚的形状可能更实用。
验证器通过但 Slack 拒绝。 回到平台当前限制、工作区权限和实际文件信息,不反复改扩展名冒充另一格式。
保存最终 GIF、绘图脚本、参数记录和来源版本,下一次才能知道好效果来自哪项设计,而不是重新随机生成一遍。

还没有公开评论,欢迎分享你的想法。