我们是怎么造出一个支持透明 PNG / GIF / WebP 导出的 AI emoji 生成器的
Forgemoji AI emoji 生成管线实战拆解:从模型路由、失败重试和背景去除,到透明 PNG、动画 GIF 与 WebP 导出,了解如何把模型结果变成可直接用于聊天平台的素材。
Lois Chen·Emoji 文化研究员 + 平台指南撰稿人·2026年6月22日

Forgemoji 起步时有一个很简单的产品问题:emoji 组合如果不必来自一张固定的查表表呢?如果结果可以按需生成、导出为透明素材、并且用在一个用户想要自定义视觉反应的任何地方呢?这在产品层听上去很直接,但真要落地,它就变成一连串细碎的工程决策。这篇文章是这个技术栈的诚实版本。
产品目标
目标不是造一个通用图像模型。我们想要的是一套聚焦的工作流,只做一件事:接收两个 emoji 概念,把它们变成一张新图像,去掉背景,然后返回一个能当 Discord emoji、Telegram 贴纸、Slack 反应、或可分享的社交图片用的文件。产品只有在输出够快、小尺寸下足够清晰、足够干净能直接复用时,才能立得住。
这个约束决定了一切。一张原始模型输出可能在画廊里看着惊艳,但如果背景糊、宽高比错、或细节太多,在聊天里就没用。所以我们把生成的图像视作源素材,而非成品。成品是导出管线:生成、清理、缩放、选格式。
生成栈
| 层 | 职责 | 存在的原因 |
|---|---|---|
| 提示词映射 | 把 emoji 符号转成文字描述 | 模型理解概念比理解原始 emoji 字形更靠谱 |
| 模型路由 | 挑出当前可用的最快供应商 | 把延迟和失败率压住 |
| 背景去除 | 干净地剥掉 alpha 通道 | 让结果能直接当自定义 emoji 或贴纸用 |
| 导出 | 生成 PNG、GIF 或 WebP | 让用户按平台挑静图还是动图 |
我们刻意把层分开。模型挂了,不该带崩导出逻辑。背景去除慢,不该阻塞整个站点。用户只要静态 PNG,就没理由让他付动画步骤的代价。把这些职责分开,就是产品能在底层任务并不快的情况下还显得快的原因。
为什么透明 PNG 是默认
透明 PNG 是自定义 emoji 风格素材里兼容性最广的格式。Discord 收。Slack 收。Telegram 贴纸工作流收。大多数设计工具收。实际中,透明度比几乎所有其他导出决策都重要,因为它决定最终图像是融进目标 UI、还是看起来像贴上去的一块矩形。
所以默认导出必须用最棒的方式显得无聊:方形、清脆、透明、小到能快速上传。一旦把这块搞定,动画就成了一种可选项、而不是硬性要求。这个决定让产品对最广泛的用户有用,也让首次体验快到显得即时。
背景去除这一步
背景去除不是个美容步骤。它是用户能直接复用 vs 必须手动修一道之间的分水岭。我们在生成之后加一次专门的背景去除,原因是模型输出的背景常常不一致:有时太接近主体、有时太噪、有时是单一颜色但在暗色模式下还是显得不对。
最干净的实操做法是:先生成图像,然后在另一个独立通道里去掉背景。这给我们一个可预测的失败边界。如果模型输出怪,用户看到的就是一张怪图。如果背景去除挂了,用户可以不重新生成、直接重试那一步。因为去除器是独立的,以后换实现不用重写整个产品。
为什么我们提供 GIF 和 WebP 导出
静图很好,但有些 emoji 概念动起来更好。一次弹跳、一次旋转、一次脉冲、或一次柔和的悬浮,能把一张简单的图变成用户真的想分享的东西。诀窍是挑一种匹配目标平台的动图格式。GIF 是兜底最广的;WebP 体积更小、通常更干净。我们把两者都暴露出来,因为不同的聊天工具和设备还是支持得不一样。
| 格式 | 适合场景 | 取舍 |
|---|---|---|
| PNG | Discord、Slack、贴纸、静态 emoji | 没有动效 |
| GIF | 最大兼容性 | 体积大,色彩效率低 |
| WebP | 体积更小的动画输出 | 不是每个 app 都一样对待 |
在动画层,我们独立渲染帧,然后用一套专门的视频工具链编码,而不是让浏览器把活全干了。这给我们可预测的输出、更好的压缩、以及在手机上下载时更少的意外。最终图像依然好分享,但不再依赖浏览器标签页保持活跃。
模型路由的问题
模型供应商的状态天天变。今天一个供应商很快,明天它被限流,后天它的延迟翻倍。实际管用的解法是无聊但有效:留一层路由,能在不改变用户可见体验的前提下,自动回落到第二或第三个供应商。用户只在意生成器返回了东西。他们不关心是哪个后端给的答案,只要快、结果好。
路由逻辑也是我们让产品扛造的途径。一个好的消费级 AI 应用,不只是应付得了顺风路。它还能把供应商的抽风、超时和部分失败收拾得干净。如果主模型挂了,用户应该照样拿到一张能用的图,或者拿到一条清晰的"重试"路径,而不是一个空转的转圈和一句含糊的错误。
浏览器该做和不该做的事
浏览器擅长的是显示进度、处理输入、以及渲染最终结果。它不太擅长的是在低端设备上依然保持高速的图像处理工作。所以我们尽量把浏览器角色收窄:收输入、显示加载态、显示结果、让用户导出或分享。昂贵的转换发生在它后面的管线里。
这也是为什么我们把界面视觉做得很清楚。当用户点 Generate,他应该能看明白系统是在等模型、等背景去除、还是等导出。含糊的加载状态即使后端在干活,也让人觉得坏了。清楚的状态标签减少的支持请求比任何花哨动画都多。
我们会再做的事
- •先把核心输出格式做得无聊且通用,再往上叠动画
- •把背景去除当作一个独立的阶段,自己处理失败
- •从第一天起就用供应商路由,而不是把产品绑在单一模型上
- •让浏览器只负责 UI,不负责整条图像管线
- •优先用平台特定的导出设置,而不是一刀切的默认值
为什么这些对产品很重要
上面的技术决策不只是实现细节。它们就是产品。很多 AI 工具从外面看着都差不多 , 都是同一个提示框、同一个生成按钮。差别在点了之后:用户多快拿到能用的结果、要重试多少次、以及输出在用户想用的地方是不是已经就绪。
Forgemoji 能用,是因为它对输出有自己的坚持。这个 app 不是想做所有事。它想用尽可能少的摩擦,给你一个干净的、可分享的 emoji 素材。这种聚焦本身就是这条管线值得写下来的原因。
想看这条管线的实际效果?试试生成器,把静态 PNG 和动画导出模式做个对比。
试试 AI 生成器 →常见问题
一有几个实操问题,每当有人想搞清楚生成器在底层是怎么工作的时,它们就会反复出现。这些是简版回答。
为什么不在所有地方都用 MP4?
因为 MP4 是视频容器,不是通用 emoji 导出格式。它在动效上很强,但很多聊天 app 和贴纸工作流要的是透明图像文件。我们把动画导出做成可选项、不是默认,因为默认应该能在最广范围的平台上工作。
为什么不把生成和背景去除合成一步?
分开让我们能做更干净的错误处理和调试。如果生成和清理是分开的,出问题时一眼就知道是哪一步挂。这也让我们能改进某一步时不动另一步。
最大的质量瓶颈是什么?
最大的瓶颈不是模型。是输出在小尺寸下的最终可用性。一张在 1024px 看着很棒、但缩到 128px 就糊成噪点的图,不是好的 emoji。小尺寸可读性才是真正的质量标尺。
你们怎么判断一次导出够不够好?
我们的标准是:用户不需要再打开设计工具就能直接用。如果素材透明、可读、平台安全,那就够了。如果还需要清理,管线还有事没做完。
最后备注
理解 Forgemoji 最简单的方式是:它把一个创意变成一个能用的文件。模型让想法可见。背景去除让它能复用。导出阶段让它可携带。这三件事一旦协同,产品就不再是一个 demo , 而是一个能让人真正信任的工具。
推荐阅读
- •我们是怎么规模化运行 AI emoji 生成的:路由、限额与失败 , 拆解生成器背后的系统
- •Emoji 无障碍指南:让自定义 emoji 读得清 , 包容性 emoji 设计的最佳实践
- •生成式 AI 与 emoji 的未来 , Unicode 模型之后的下一步
来源
Source: rembg , 背景去除库和 CLI — github.com
Source: FFmpeg 项目文档 — ffmpeg.org
Source: WebP 图像格式概览 — developers.google.com
Lois Chen·内容编辑
审核日期:2026年6月22日
写作说明:博客文章基于第一手的平台测试(Discord 服务器、Telegram 群组、TikTok),对 r/discordapp 和 Telegram 贴纸社区中重度用户的采访,以及每周的 Unicode 发布说明检查。每篇指南都至少经过一位编辑的技术准确性审阅,并在相关平台规则变化时更新。表情使用数据来自公开的 Google Trends、UDF(Unicode 表情使用频率)报告以及我们自己的 Forgemoji 生成日志。
来源:Forgemoji 内部编辑团队 — 详细作者信息见「关于我们」页面
