Seedream 5.5 图片怎么做成 GIF?本地导出步骤与验证示例

规划循环动作、整理 PNG 帧顺序并控制 GIF 播放时间,附已验证的本地导出工具包。示例仅测试图片转 GIF,不代表已实测 Seedream 生图。

西洋镜将一组按顺序排列的橙色标记变成循环动作

要把 Seedream 5.5 图片做成 GIF,先取得构图一致的独立 PNG 帧,再用动画导出工具设置顺序和每帧时长。透明图片、多帧拼图和 GIF 动画是三种不同的交付物。 不要以为向图片模型要求“生成 GIF”,就一定能下载到动画文件。

字节跳动的 Seedream 5.5 产品页 展示了分布在独立透明图层上的角色奔跑序列。它可以作为探索逐帧工作流的依据,但不能证明存在原生 GIF 接口、帧数参数或某个服务的导出控件。本文用自行编写数学轨迹生成的测试标记,验证的是本地 PNG 转 GIF 环节。示例帧不是 Seedream 5.5 生成的,下方提示词也只是未经模型实测的起始模板。

下载并运行示例

示例工具包 包含源 PNG 帧、来源说明、导出脚本、测试素材生成器、实际导出的 GIF 以及检查报告。所有脚本都不会调用模型或上传文件。

准备 Python 3 和 Pillow,并确保能通过 PATH 调用 FFmpeg。FFmpeg 可用你平时使用的包管理器安装。将 ZIP 解压到新的工作目录,在能看到 export_gif.py 和 fixture/ 的目录中打开终端。macOS 或 Linux 用户可运行:

python3 -m venv .venv
source .venv/bin/activate
python -m pip install Pillow
python export_gif.py fixture output --fps 10 --matte '#fff8ee'

Windows 用户应将 source 那一行替换为 .venv\Scripts\activate,也可以直接调用虚拟环境中的 Python 可执行文件。

本次测试使用 FFmpeg 9.0.2,工具包会把实际安装版本和输出属性写入 report.json。初次试用可直接安装当前版本的 Pillow;若要反复用于生产流程,应固定为经过自己验证的版本。

输出目录必须尚不存在,以免重新运行时意外覆盖已验收的动画。源帧不会被修改。若失败后留下含有 FAILED.txt 的目录,先检查失败原因,下次尝试换一个输出目录。

本地导出结果:橙色测试标记沿闭合路径移动

这是用代码绘制的测试帧导出的实际结果,不是 Seedream 生成结果。画面简单与否不能用来判断 Seedream 的视觉质量。

本次运行得到的 GIF 为 320 × 180 像素,编码后含 12 帧,总时长 1,200 ms,循环值为 0;在 GIF 元数据中,0 表示持续循环。文件大小为 6,366 字节。这些数值仅描述这组小型测试素材,不能据此预期复杂角色动画的体积或质量。

请求图片前,先明确动作

可执行的动画需求应包含动作、保持不动的参照以及首尾衔接方式。“可爱的吉祥物、漂亮的光线”只描述风格,没有说明动作。先确定哪些内容随帧变化,哪些必须固定:画布尺寸、机位、主体大小、基线、配色以及角色辨识特征。

第一次做循环时,选择轻轻挥手这样的单一动作。不要同时加入转身、跳跃、移动镜头、换道具和背景移动。变化越多,越难区分预期动作与生成过程中的偏移。六个不同姿势可以表达动作,但六帧并不保证流畅;每帧时长和姿势之间的变化幅度同样影响观感。

尝试提示词前,先确认实际使用的服务提供 Seedream 5.5,而且能够导出所需文件。我们在 2026 年 11 月 10 日检查 Ofox catalog 时,仍只找到 5.0 Pro 和 Flash,未找到 5.5。版本与访问指南 解释了这一边界。不能改用相近型号,却把结果标成 5.5。

确认访问条件后,可以从下面这份完整需求开始:

Create a six-pose sequence for a short looping wave by the character
in my reference. Keep the camera fixed and use the same full canvas,
character scale, foot baseline, clothing and colors in every pose.

Pose order:
0 — neutral, arm resting;
1 — arm lifting;
2 — hand raised and tilted left;
3 — hand raised and tilted right;
4 — arm lowering;
5 — almost neutral, positioned to transition back to pose 0.

The face, torso, feet and background framing should remain stable.
Only the waving arm and hand should move. Avoid new objects or text.
Return separate PNG images with transparent backgrounds if this
service supports that export. Do not draw a checkerboard background.
If only a contact sheet is available, use an exact 3-column × 2-row
grid with equal cells, no gutters, no labels and no outer border.

将提示词、模型标签、参考图和下载的原始文件一起保存。如果界面无法返回六张独立帧或规整的拼图,不要假定某个隐藏 API 参数能解决问题。应使用服务实际支持的导出方式,或选择已验证能够输出动画的其他路径。

拆分姿势时保持位置对齐

每一帧都保留完整且大小一致的画布。如果分别按每张图的不透明内容裁边,本应原地不动的角色也可能跳动,因为图像局部坐标的原点变了。所有帧应使用相同的裁切矩形和缩放比例。

如果拿到的是独立文件,按预期动作顺序重命名:

frames/
  frame-000.png
  frame-001.png
  frame-002.png
  frame-003.png
  frame-004.png
  frame-005.png

重命名前先查看图像。下载顺序未必是姿势顺序;不要按文件大小排序,也不要默认服务分配的文件名代表时间先后。

如果拿到的是拼图,裁切前确认它确实符合所需网格。标称 3 × 2,但单元大小不一或带有外围标题的图片,不是可直接拆分的规整精灵图。在图片编辑器或精灵图转换工具中设置实际单元边界,并检查所有拆出的图片。等分裁切无法修复跨越单元边界的绘图。Image 2.6 GIF 教程 提供另一项单独验证的拼图转换示例及来源说明,不能把它当成 Seedream 生成了该拼图的证据。

对齐无误前,保留源分辨率。如果尚未发现裁切错误就先把所有帧缩小,缺陷可能在预览中不明显,之后修复也会更困难。

根据使用场景选择背景

PNG 可以包含半透明像素。GIF 使用基于调色板的透明机制,无法保留同样的连续 alpha 值。因此,微弱光晕、玻璃边缘或经过抗锯齿处理的发丝,转成透明 GIF 后可能改变观感。单纯改扩展名不能保留这些属性。

工具包选择了容易预测的处理方式:先把每一帧合成到明确指定的底色上,再量化颜色并编码 GIF。默认奶油色背景是一项设计选择,并非透明输出。放在白底上使用时可设为 --matte '#ffffff',也可以采用目标页面的实际背景色。如果同一个 GIF 要出现在多种背景上,这种方案可能并不合适。

如果必须保留真正的半透明效果,应保存原始 PNG 序列,并在最终使用的应用中验证支持 alpha 的动画格式。APNG 和动态 WebP 都可作为候选,但能否使用取决于编辑器、内容系统及播放位置。未测试目标环境前,不能保证聊天应用或广告位接受它们。透明 PNG 指南 介绍了如何确认原文件具有可用的 alpha,而不是画上去的背景。

Pillow 的 GIF 文档 解释了帧时长、循环与帧处置方式。这是文件格式参考,不是 Seedream 生成接口的规范。

控制时长,检查首尾衔接

10 fps 时,每帧持续 100 ms,12 帧共 1.2 秒。导出脚本只允许 5、10、20、25 或 50 fps,以便每帧时长都能用 GIF 的百分之一秒单位准确表示。这是脚本的设计限制,不是 Seedream 的限制。

最后一帧回到第一帧的过渡,与中间帧的过渡同样重要。末帧姿势与首帧差距过大,循环时就会明显跳变;首尾完全相同且各自停留一个完整帧时长,又可能造成多余停顿。有时停顿正是设计需要,应播放检查实际结果,不能一概而论。

示例的 12 个标记位置沿闭合路径分布,末尾没有重复首帧位置。这是为了测试顺序与时长,不是模拟自然角色动作。处理自己的序列时,先用多帧总览图检查角色一致性,再按最终展示尺寸播放动画;静态总览无法暴露节奏生硬的问题。

导出脚本能检查什么,不能判断什么

脚本要求 PNG 文件连续编号、尺寸一致、至少有两帧,且帧之间有变化。它会拒绝已存在的输出目录,并在转换前拒绝超大图片。编码后会重新打开 GIF,检查是否包含多帧、总时长是否符合预期,以及是否设置持续循环,同时记录源文件哈希值供后续比对。

编码使用 FFmpeg 的调色板生成与应用滤镜,帮助整组帧采用一致的调色板。它们无法恢复丢失的绘图细节,也无法让不连贯的姿势自动变得一致。GIF 编码器还可能合并相同帧并累加时长,因此编码后的帧数不一定等于源文件数。

本地 PNG 转 GIF 示例的检查记录

本地测试记录截图,记录的是文件验证与导出结果,不是模型界面或 Seedream 生成结果。

症状先检查什么下一步
只显示一张图解码实际下载的文件并统计帧数找到独立源帧,或真正的动画导出文件
角色位置跳动画布尺寸、共同原点与裁切区域编码前在同一画布上重新对齐
出现白色矩形PNG 是否有 alpha,以及所选底色检查 alpha,再选择合适的背景或格式
边缘粗糙调色板、alpha 转换与预览尺寸保留 PNG 原件,在实际背景上检查
循环处动作跳变末帧与首帧的姿势差距调整姿势或时长,改文件名没有用
模型请求失败精确模型、服务及支持的请求格式参考图像 API 排错指南,不要套用其他模型的 GIF 参数

生产验收不止是得到一个名为 .gif 的文件:它必须能在目标位置播放,动作正确、主体一致、边缘可接受,且满足该位置的文件大小限制。最终导出文件与可编辑的源帧应一起保留。如果你更需要原生生成的 GIF,而非自行组装帧,可以参考 Seedream 5.5 与 Image 2.6 选择指南,选择已验证实际输出方式的路径。

你可以打开 Ofox Chat整理动作需求,使用当前可用的图片工具。该链接只是通用 Chat 入口,不代表已经确认其中可用 Seedream 5.5;消耗额度前应检查模型与导出选项。

下载工具有明确上限:单帧最多 1,600 万像素,整组输入合计最多 6,400 万像素。素材超限时应先缩小或拆分。它适合小规模本地工作流,不是生产用批量编码系统。