OmniLottie 深度研究:用 AI 生成矢量动画——"说句话就能做出 Lottie 动效"
> arXiv: https://arxiv.org/abs/2603.02138
> 项目页: https://openvglab.github.io/OmniLottie/
> GitHub: https://github.com/OpenVGLab/OmniLottie
> 在线 Demo: https://huggingface.co/spaces/OmniLottie/OmniLottie
> 数据集: https://huggingface.co/datasets/OmniLottie/MMLottie-2M
> 会议: CVPR 2026(计算机视觉顶会)
> 研究时间: 2026-03-19
🎯 一句话版本
OmniLottie 是一个 AI 模型,你给它一段话、一张图或一段视频,它就能生成可编辑的矢量动画(Lottie 格式)。 就像 ChatGPT 生成文字一样,OmniLottie 生成动画——而且生成的动画是矢量的、轻量的、可以在任何 App/网页里直接用的。
🤔 为什么这很重要?
Lottie 是什么?
如果你用过任何现代 App,你一定看过 Lottie 动画——加载动画、空状态插图、引导页动效、按钮微动效。Lottie 是 Airbnb 开源的矢量动画格式,本质是一个 JSON 文件,描述了图形的形状和运动方式。
优势:
- 比 GIF 小 10x+
- 无限放大不模糊(矢量)
- 可以用代码控制(暂停、倒放、调速)
- 全平台通用(iOS/Android/Web/Flutter)
痛点:
- 制作需要 After Effects + Bodymovin 插件
- 一个简单动画可能需要设计师半天到一天
- JSON 文件复杂难懂(一个小图标动画可能几千行 JSON)
OmniLottie 解决了什么?
把"半天"变成"几秒"。 输入描述 → 输出可用的 Lottie JSON。
🏗️ 技术架构
核心创新:Lottie Tokenizer
原始 Lottie JSON 充满了冗余的结构元数据和格式 token。OmniLottie 的关键突破是设计了一个专用 Tokenizer:
原始 JSON(几千行)
↓ Lottie Tokenizer
命令 + 参数序列(结构化、紧凑)
↓ VLM 生成
新的 Lottie 动画
具体做法:
1. 将层级 JSON 结构扁平化为函数调用序列
2. 每个函数调用被参数化为专用词汇表
3. 基于 Qwen2.5-VL-3B-Instruct(阿里视觉语言模型)扩展新 tokenizer
三种生成模式
| 模式 | 输入 | 输出 |
|---|---|---|
| **Text → Lottie** | "一个红球出现,上下弹跳,然后淡出" | Lottie JSON 动画 |
| **Image → Lottie** | 一张静态图片 | 基于图片内容的矢量动画 |
| **Video → Lottie** | 一段短视频 | 矢量化的动画复现 |
模型参数
| 属性 | 规格 |
|---|---|
| **模型大小** | 4B 参数 |
| **权重文件** | 8.46 GB |
| **VRAM 需求** | 15.2 GB |
| **基座** | Qwen2.5-VL-3B-Instruct |
| **推理速度** | 256 tokens ~8s / 4096 tokens ~133s |
| **Best-of-N** | 支持生成 N 个候选,自动选最优 |
📊 MMLottie-2M 数据集
这可能是比模型本身更有价值的贡献——200 万个标注过的 Lottie 动画。
数据构建流水线
1. 收集:从 5 个在线平台收集专业 Lottie 动画
2. 转换:将 SVG 素材转为静态 Lottie,施加随机动画效果
3. 归一化:时空归一化 + 视频渲染 + 随机关键帧提取
4. 标注:三层标注——几何结构 + 颜色属性 + 运动特征
MMLottieBench 评测
900 个样本(450 真实 + 450 合成),用于标准化评估矢量动画生成质量。
👥 团队背景
| 机构 | 角色 |
|---|---|
| **复旦大学** | 第一作者 Yiying Yang |
| **StepFun(阶跃星辰)** | 项目主导(Wei Cheng)、通讯作者(Gang Yu) |
| **HKU MMLab** | 香港大学多媒体实验室 |
| **University of Queensland** | 昆士兰大学 |
注意:StepFun 就是做 Step 3.5 Flash 的阶跃星辰。OmniLottie 是他们在视觉生成方向的又一个重要输出。
🌍 生态现状
- ComfyUI 插件:发布 3 天内社区就贡献了 ComfyUI 集成
- Gradio Demo:HuggingFace 上在线可试
- 全栈开源:代码 + 权重 + 数据集 + Benchmark 全部公开
- HuggingFace Paper of the Day:发布当天登顶,142 upvotes
🔬 技术深度分析
为什么选 Lottie 而不是视频/GIF?
| 格式 | 文件大小 | 可编辑 | 分辨率无关 | 交互控制 |
|---|---|---|---|---|
| **Lottie JSON** | ✅ 极小 | ✅ 可编辑每个属性 | ✅ 矢量 | ✅ API 控制 |
| GIF | ❌ 大 | ❌ 栅格 | ❌ 固定分辨率 | ❌ 无 |
| MP4 | ❌ 大 | ❌ 栅格 | ❌ 固定分辨率 | 有限 |
| SVG 动画 | ✅ 小 | ✅ 可编辑 | ✅ 矢量 | ✅ CSS/JS |
Lottie 是唯一同时满足轻量 + 可编辑 + 矢量 + 可交互的格式。
Tokenizer 设计的聪明之处
传统方法把 Lottie JSON 当纯文本生成——几千行 JSON 里大部分是固定结构({, "key":, [, ]),真正描述动画的有效信息很少。
OmniLottie 的 Tokenizer 去掉了所有结构噪音,只保留语义信息(形状命令、动画函数、控制参数)。这大幅降低了序列长度,让 4B 小模型也能生成复杂动画。
局限性
1. 只能生成相对简单的动画:不是 After Effects 级别的复杂特效
2. 形状精度有限:精细的手绘风格或高细节插图可能不够精确
3. 推理速度偏慢:4096 tokens 需要 133 秒
4. 15.2GB VRAM:不算小,但 RTX 4090 可以跑
💡 与我们的关联
1. 网站/报告可以用
我们的 temp.jaylab.io 报告目前都是纯文字+图片。如果集成 Lottie 动画(OmniLottie 生成),可以让报告更生动。比如数据趋势的动态可视化、概念说明的动效图。
2. Agent 生成 UI 的组件
之前研究的 Claude Generative UI 是生成静态组件。OmniLottie 可以作为生成动态组件的补充——Agent 用 OmniLottie 生成加载动画、状态提示等。
3. StepFun 生态观察
阶跃星辰(StepFun)现在有:
- Step 3.5 Flash(推理模型)
- OmniLottie(矢量动画生成)
- 可能还有更多视觉方向的研究
他们在走"视觉+语言"的路线,值得持续关注。
4. ComfyUI 集成
如果我们未来搭 ComfyUI 工作流(图像/视频处理),OmniLottie 已经有插件可用。
5. 15.2GB 可以在 ub2 上跑
RTX 4090 (24GB) 完全够用。如果需要本地生成矢量动画,可以部署。
📊 评分
| 维度 | 评分(/10) |
|---|---|
| 技术创新 | 9.0 — 首个端到端多模态 Lottie 生成模型,Tokenizer 设计精巧 |
| 学术价值 | 9.0 — CVPR 2026 接收,HuggingFace Paper of the Day |
| 数据贡献 | 9.5 — MMLottie-2M 是目前最大的 Lottie 动画数据集 |
| 实用性 | 7.5 — 能生成简单动画,但复杂场景有限 |
| 开源完整度 | 9.5 — 代码+权重+数据+Benchmark+Demo 全开放 |
| 与我们的关联 | 7.0 — 间接有用(网站动效、Agent UI),但不是核心需求 |
| **综合** | **8.5** |
报告由深度研究助手自动生成 | 2026-03-19
来源: https://arxiv.org/abs/2603.02138