Forgemoji 的工作原理
无论你使用简单的"选两个 emoji"模式还是照片转 emoji 模式,每个由 Forgemoji 生成的 emoji 都会经过相同的五阶段流水线。整个过程通常需要 10 到 20 秒,大部分时间花在等待单次图像生成调用上。
我们刻意保持透明度,因为模型不是魔法。一旦你知道流水线在做什么,大多数失败都是可预测的,而一旦知道了这一点,正确的提示选择就显而易见了。
流水线,一步一步
- 提示组装
两个 emoji 被传递给提示构建器。构建器查找每个 emoji 的官方 Unicode 简称,然后组成一条将两者结合的英文提示。如果你在选择器中切换了输入语言,提示会先使用一个小型内部查找表翻译(翻译不会调用 LLM)。
- 图像生成
提示被发送到文生图模型。输出为 1024×1024。我们运行主模型和辅助模型,根据提示路由;我们不会公开哪个模型为某个请求提供服务。
- 背景去除
单独的 rembg 模型去除背景。rembg 步骤是独立的 GPU worker,可以与下一个请求重叠执行。
- 缩放与格式
清晰的透明 1024×1024 使用 Lanczos 重采样缩放至 256×256。256×256 PNG 是大多数聊天平台对自定义 emoji 的预期尺寸。
- 可选动画
如果你打开了动画导出,256×256 PNG 会通过一个小型运动合成模型生成 12 fps 的 24 帧循环。我们支持 6 种动画风格:bob、sway、sparkle、glow、wiggle、pulse。动画在基础生成时间上额外增加 8-12 秒。
底层细节
一些容易略过但对理解流水线"是什么"和"不是什么"很重要的细节。如果你只关心高层流程,前一节已经够用。如果你想理解失败模式(这是挑选好提示的唯一方法),请阅读本节。更多背景见关于页面。
文生图模型不是搜索引擎。它不是通过检索图像来"知道" 🐱 + 🌈 是什么,而是根据提示采样像素。两个相同的请求会产生不同的输出,因为潜在噪声种子不同。
rembg 模型是在自然图像上训练的。它能处理可爱风格 emoji,是因为它们有清晰的轮廓,但并不完美:非常细的轮廓有时会被部分吞掉。如果你看到奇怪的半透明光晕,请重新生成。
流水线以独立 GPU worker 序列运行。用户路径中没有批处理队列,每个请求都会获得新的分配。在高峰时段,rembg worker 是瓶颈。
我们不存储生成的 emoji。图像以 base64 编码 PNG 形式作为 JSON 响应的一部分返回到浏览器。原始提示和模型输出会被记录 30 天用于滥用检测,然后删除。
免费流量和 Pro 流量共享同一个 GPU 池。Pro 在高峰时段实际上更快,只是因为当队列堆积时我们首先卸掉免费层负载。
选择器 UI 不属于生成流水线。它完全在浏览器中运行,将最近 50 次生成持久化到 localStorage,并将所选对提交到 API。
获得更好结果的提示
- 仔细选择第二个 emoji。 第一个 emoji 是"主体",它决定主体形状、主色调和面部。第二个 emoji 是"修饰符",它贡献小特征(帽子、道具、图案)。两个同等重要的组合往往会变得模糊。
- 避免抽象或相互矛盾的组合。 🌀 + 💎 或 📜 + 🚀,模型不知道应该强调哪个特征,所以结果看起来像模糊的平均。如果这个组合听起来像个冷笑话,模型就会把它变成糟糕的画面。
- 频繁重新生成。 同一组合的第 4 或第 5 次尝试通常是最好的。模型的随机性是特性,不是 bug。把前 2-3 次生成当作热身。
- 对脸部 emoji 使用照片模式。 🧑 + 📸 风格是选择器最擅长的。🦄 + 🌈 也很强,因为两者在训练数据中都有清晰的可参考可爱风格。
已知局限
最大的局限是文字渲染。模型不能拼写单词,所以包含 🔤 或 🅰️ 的 emoji 组合会产生看起来略像字母但不可读的形状。
肤色修饰符(Fitzpatrick 量表变体)无法处理。模型会挑选其潜在先验喜欢的肤色,你无法从选择器中影响它。
国旗(🏳️🌈 等)也无法处理。我们尝试过提示侧的变通方法,它们都产生比直接不生成更糟糕的结果。
给工程师的备注
engineerNoteP1
我们目前不发布 SDK。端点足够小,可以直接用 fetch 调用。API 稳定后我们会发布一个。
隐私与数据
流水线不会将你的 emoji 写入磁盘。你发送的提示和响应被分别记录 30 天,然后删除。完整的数据处理规则在隐私政策中。
Forgemoji 编辑团队·工程与管线
审核日期:2026年5月2日
写作说明:本页记录截至 2026 年 5 月的 v2 管线。早期版本(Qwen-Image-2510 + rembg-1.4)在细边缘上表现不同,已不再用于生产。我们会在管线变更时更新本页,而不是按固定时间表。
来源:内部管线文档与更新日志。