扔掉复杂的动画软件,这款神仙级 AI 让你一句话秒出gif丝滑动效!
OmniLottie是一款专为动画和图形设计领域的用户量身打造。该模型以其卓越的性能和灵活的应用而闻名,能够高效地处理复杂的动画任务。OmniLottie的设计初衷是简化动画制作流程,使设计师能够更轻松地实现创意构思。其核心特点包括对多种动画格式的支持、快速渲染能力以及高度的可定制性,满足不同用户的需求。无论您是专业动画师还是业余爱好者,OmniLottie都能为您提供强大的技术支持和创作灵感。
OmniLottie: 通过文本生成矢量动画
什么是 Lottie JSON?
在介绍模型之前,我们先来了解一下 Lottie。Lottie 是一种基于 JSON 格式的矢量动画文件。它最初由 Airbnb 团队开发并开源,其核心原理是将 Adobe After Effects 中制作的复杂动画导出为轻量级的 JSON 数据代码。
Lottie 的主要优势包括:
-
• 极小体积:相比于 GIF 或 MP4 视频,Lottie JSON 文件的体积通常只有它们的几分之一,极大地节省了存储空间和加载时间。 -
• 无损缩放:因为是基于矢量的代码渲染(而非位图),无论在手机还是 4K 屏幕上放大多少倍,边缘都保持绝对清晰,不会出现像素化模糊。 -
• 跨平台且可交互:Lottie 可以轻松嵌入到 Web、iOS、Android 甚至 Windows 应用中,并且开发者可以通过代码实时控制动画(如改变颜色、播放速度或响应用户的点击事件)。
简而言之,Lottie 让高质量、丝滑的交互动画在 UI/UX 设计中变得前所未有的轻量和普及。
OmniLottie 模型介绍
[OmniLottie] 是一款突破性的开源多模态 Lottie 动画生成模型。该模型相关论文已被顶级计算机视觉会议 CVPR 2026 接收,其主要特色与功能如下:
🌟 核心亮点
-
• 首个端到端多模态 Lottie 生成器:OmniLottie 建立在预训练的视觉语言模型 (VLM) —— Qwen2.5-VL的基础之上,是业内首个能够直接生成复杂、细腻的矢量 Lottie 动画的模型体系。 -
• 多模态指令输入:它打破了单一文本输入的局限,支持极其丰富的输入组合。你可以通过纯文本、图片+文本、甚至直接输入视频来驱动模型生成匹配的 Lottie JSON 动画。 -
• 参数化 Lottie Token 技术:通过将 Lottie 的复杂属性转化为可供模型学习的参数化 Token,模型不仅理解“画面是什么”,更理解“动画该如何运动”。 -
• 庞大的生态支撑:与模型同时开源的还有 MMLottie-2M(包含200万个丰富标注的 Lottie 动画数据集)以及 MMLottieBench(专用于多模态矢量动画生成的标准化评测基准)。
📊 模型规格与性能
-
• 参数量与基础架构:模型参数量约为 4B (基于 3B 级别的 Qwen2.5-VL-Instruct 微调),模型权重大小为 8.46 GB。 -
• 硬件要求:在推理时,模型大约需要 15.2 GB 的显存 (GPU Memory Usage)。 -
• 生成速度:生成速度取决于动画的复杂程度(Token 长度),生成 256/512/1024 个 token 的 Lottie 代码分别约需 8.34 / 16.68 / 33.38 秒。
🚀 适用场景 (Use Cases)
-
1. 文本到 Lottie (Text-to-Lottie):输入提示词如“一个红色小球出现、上下弹跳然后淡出”,模型即可直接输出对应的矢量动画代码。 -
2. 图文结合生成 (Text-Image-to-Lottie):提供一张静态的 UI 元素图(如一个存钱罐),配合文本指令让它动起来。 -
3. 视频转 Lottie (Video-to-Lottie):输入一段现实世界的短视频(如鸟类飞行或人物动作),提取其运动轨迹并转化为极简风格的 Lottie 矢量动画。
OmniLottie是首个端到端多模态Lottie生成器家族,利用预训练的视觉-语言模型(VLMs),能够从多模态指令(包括文本、图像和视频)生成复杂且详细的Lottie动画。还引入了MMLottie-2M,一个包含两百万个丰富注释的Lottie动画的多模态数据集,以及一个用于多模态矢量动画生成任务的标准化评估协议。
模型下载
|
|
|
|
|
|---|---|---|---|
|
|
|
|
|
亲身测试
Demo链接 https://huggingface.co/spaces/OmniLottie/OmniLottie
中文提示词
一只蓝鸟出现,向下滑动时伴随脉冲般的跳动,短暂停留后,向上滑动并恢复原状以完成重置,整个过程具有清晰的阶段变化,并且无缝循环。
英文提示词
a blue bird appearing, pulsing while sliding downward, lingers briefly, then growing back while sliding upward to reset with clear phase changes, repeating seamlessly
生成结果

依赖和安装
克隆仓库
git clone https://github.com/OpenVGLab/OmniLottie
cd OmniLottie
创建Conda环境
创建并激活一个Python 3.10的新conda环境:
conda create -n omnilottie python=3.10
conda activate omnilottie
安装依赖
Python依赖
在CUDA 12.1环境下测试了环境。可以通过CUDA Toolkit安装指南安装CUDA 12.1。
安装支持CUDA 12.1的PyTorch:
pip install torch==2.3.0+cu121 torchvision==0.18.0+cu121 --index-url https://download.pytorch.org/whl/cu121
安装其余依赖:
pip install -r requirements.txt
本地推理
|
|
|
|
|---|---|---|
|
|
|
|
快速开始
下载模型权重
首先,安装Hugging Face CLI工具:
pip install huggingface-hub
从Hugging Face下载模型:
# 下载OmniLottie模型
huggingface-cli download OmniLottie/OmniLottie --local-dir /PATH/TO/OmniLottie
使用示例数据
在example/目录中提供了示例提示、图像和视频:
-
• example/demo.txt– 37个文本提示 -
• example/demo_images/– 26张图像(带有相应的文本描述) -
• example/demo_video/– 30个视频
# 使用示例文本提示进行测试
python inference.py \
--sketch_weight /PATH/TO/OmniLottie \
--batch_text_file example/demo.txt \
--output_dir ./output_demo_text
# 使用示例图像进行测试
python inference.py \
--sketch_weight /PATH/TO/OmniLottie \
--single_image example/demo_images/00de75e2c031cb3fc3f472e356aba5b6.png \
--output_dir ./output_demo_image
# 使用示例视频进行测试
python inference.py \
--sketch_weight /PATH/TO/OmniLottie \
--single_video example/demo_video/02b8ce2014690a9e30dc25da846e8afb.mp4 \
--output_dir ./output_demo_video
文本到Lottie生成
从文本描述生成Lottie动画:
单个提示:
python inference.py \
--sketch_weight /PATH/TO/OmniLottie \
--single_text "一个红色的球出现,上下弹跳,然后淡出,循环无缝" \
--output_dir ./output_text
从文件批量生成:
# 创建一个prompts.txt文件,每行一个提示
python inference.py \
--sketch_weight /PATH/TO/OmniLottie \
--batch_text_file example/demo.txt \
--output_dir ./output_text
自定义生成参数:
python inference.py \
--sketch_weight /PATH/TO/OmniLottie \
--single_text "一只蓝色的小鸟出现,脉动同时向下滑动,短暂停留,然后在向上滑动时重新生长,清晰的阶段变化,循环无缝" \
--use_sampling \
--temperature 0.8 \
--top_p 0.25 \
--top_k 5 \
--repetition_penalty 1.01 \
--output_dir ./output
使用Best-of-N选择生成:
python inference.py \
--sketch_weight /PATH/TO/OmniLottie \
--single_text "一个浅蓝色的储蓄罐,带有深蓝色的轮廓,上方出现一个带有深蓝色日元符号的浅蓝色硬币,然后开始下降到储蓄罐的开口" \
--num_candidates 8 \
--output_dir ./output
文本-图像到Lottie生成
从图像生成Lottie动画:
单个图像:
python inference.py \
--sketch_weight /PATH/TO/OmniLottie \
--single_image /path/to/image.png \
--output_dir ./output_image
视频到Lottie生成
将视频转换为Lottie动画:
单个视频:
python inference.py \
--sketch_weight /PATH/TO/OmniLottie \
--single_video /path/to/video.mp4 \
--output_dir ./output_video
高级选项
指定分词器路径:
python inference.py \
--sketch_weight /PATH/TO/OmniLottie \
--tokenizer_name /PATH/TO/Qwen2.5-VL-3B-Instruct \
--single_text "您的提示" \
--output_dir ./output
调整令牌长度:
python inference.py \
--sketch_weight /PATH/TO/OmniLottie \
--maxlen 6072 \
--text_len 512 \
--single_text "您的提示" \
--output_dir ./output
按任务类型过滤(使用MMLottieBench数据集时):
python inference.py \
--sketch_weight /PATH/TO/OmniLottie \
--mmlottie_bench_dir /PATH/TO/mmlottie_bench \
--split real \
--task_filter text \
--output_dir ./output
处理有限样本并进行随机化:
python inference.py \
--sketch_weight /PATH/TO/OmniLottie \
--mmlottie_bench_dir /PATH/TO/mmlottie_bench \
--split real \
--max_samples 10 \
--shuffle \
--output_dir ./output
交互式Demo
提供了一个使用Gradio的交互式生成界面:
-
• 本地部署 python app.py -
• 在线Demo 试试在 https://huggingface.co/spaces/OmniLottie/OmniLottie 上的在线演示
更多信息
-
• 论文阅读 https://arxiv.org/abs/2603.02138 -
• 发布推理代码和模型权重。[权重] https://huggingface.co/OmniLottie/OmniLottie -
• 发布MMLottieBench基准测试![MMLottieBench] https://huggingface.co/datasets/OmniLottie/MMLottieBench -
• 发布Huggingface Demo。[Demo] https://huggingface.co/spaces/OmniLottie/OmniLottie
如果你对OmniLottie模型感兴趣,欢迎在评论区分享你的看法和使用体验。这个模型在动画生成和图形处理领域展现了强大的潜力,特别是在创意设计和多媒体应用中。无论你是技术爱好者还是专业开发者,我们都期待与你交流关于其技术细节和应用场景的想法。请随时分享你的见解,并与我们一起探索更多可能性!如果你觉得这篇文章有帮助,也别忘了分享给更多的朋友哦!
模型链接: https://huggingface.co/OmniLottie/OmniLottie
夜雨聆风
