animate-anything

GitHub
965 78 中等 2 次阅读 1周前MIT视频图像
AI 解读 由 AI 自动生成,仅供参考

animate-anything 是一款专注于细粒度开放域图像动画生成的 AI 工具。它能让静态图片“活”起来,用户只需提供一张原图、一个简单的运动掩码(Mask)以及一段文字描述,就能生成符合预期动作的动态视频。例如,让芭比娃娃微笑注视镜头、使斗篷在风中飘动,或是让鱼儿在水中游弋。

这项技术主要解决了传统图像动画化过程中控制精度不足的问题。以往的工具往往难以精准指定画面中特定区域的运动方式,而 animate-anything 通过引入“运动引导”机制,实现了对物体局部动态的精细化控制,同时保持了背景和其他元素的自然稳定,极大地提升了生成视频的真实感和可控性。

该工具非常适合研究人员探索视频生成前沿技术,也适合开发者进行二次开发或集成应用。对于设计师和创意工作者而言,它能快速将概念草图转化为动态演示,提升创作效率。虽然普通用户也能通过部署体验其功能,但目前更偏向于具备一定技术基础的使用者。

其技术亮点在于基于扩散模型架构,支持从单张 RGBA 透明图像生成透明动态视频,并兼容 LoRA 微调以降低训练成本。此外,项目持续迭代,已支持多显卡加速训练及基于 SVD 模型的优化版本,为高质量视频生成提供了灵活的技术路径。

使用场景

某电商设计团队需要为促销海报中的静态商品图(如飘动的丝巾或游动的装饰鱼)制作动态素材,以提升页面点击率。

没有 animate-anything 时

  • 局部动效难以实现:传统视频生成模型往往让整张图片一起运动,无法精准控制仅让“丝巾”或“鱼”动起来,导致背景扭曲变形。
  • 依赖昂贵手动逐帧绘制:设计师需使用 After Effects 等软件手动设置遮罩并逐帧调整,制作一个 3 秒的循环动画耗时数小时。
  • 动作与提示词对齐差:即使使用其他 AI 工具,也常出现“让鱼游泳”却生成“鱼在原地抖动”的情况,难以理解复杂的自然语言指令。
  • 迭代成本极高:一旦客户想修改动作幅度或方向,几乎需要推翻重来,严重拖慢营销活动的上线节奏。

使用 animate-anything 后

  • 细粒度运动控制:只需上传商品图并涂抹简单掩码(Mask),即可指定仅让特定区域(如丝巾下摆)产生符合物理规律的摆动,背景保持完美静止。
  • 自然语言驱动创作:直接输入“丝巾在风中轻轻飘动”或“红鱼向前游动”,animate-anything 能精准捕捉语义,生成流畅且符合描述的动作序列。
  • 分钟级快速产出:从上传图片到获得高清动态 GIF 仅需几分钟,设计师可将精力集中在创意构思而非繁琐的技术操作上。
  • 灵活微调与复用:基于 SVD 模型的微调能力支持快速调整风格,同一张商品图可瞬间生成多种不同动态方案供客户选择。

animate-anything 将原本需要专业视频后期技能的工作转化为简单的“绘图 + 对话”流程,极大降低了高质量动态营销素材的生产门槛。

运行环境要求

操作系统
  • Linux
  • Windows
GPU
  • 必需 NVIDIA GPU
  • 全量微调约需 30GB 显存
  • 基于 SVD 的微调约需 80GB 显存
  • 支持多卡训练(如 4x16G V100 或 4x24G A10),配合 DeepSpeed ZeRO Stage 2 和优化器卸载可降低显存需求
内存

未说明

依赖
notes建议使用 Conda 管理环境。推理前需手动下载预训练模型(约几百 MB 至数 GB)。支持使用 Labelme 制作运动掩码以控制动画区域。可选集成 Real-CUGAN 进行视频超分辨率处理。多卡训练需配置 Accelerate 和 DeepSpeed。
python3.10
torch
diffusers
accelerate
deepspeed
transformers
gradio
opencv-python
labelme
animate-anything hero image

快速开始

👉 AnimateAnything:基于运动引导的细粒度开放域图像动画

戴作卓, 张正浩, 李梦豪, 廖俊超, 朱思宇, 秦龙, 王伟志

views

友情链接 🔥

展示案例

https://github.com/alibaba/animate-anything/assets/1107525/e2659674-c813-402a-8a85-e620f0a6a454

带掩码的输入图像 提示词 结果
Input image 芭比娃娃面带微笑地看着镜头。 Result
Input image 斗篷在风中飘动。 Result
Input image 一条红鱼正在游动。 Result

框架

framework

新闻 🔥

2024.2.5: 支持使用Accelerator DeepSpeed进行多GPU训练。配置DeepSpeed zero_stage 2并启用offload_optimizer_device cpu后,现在可以使用4块16G V100显卡对animate-anything进行全量微调,而SVD则可使用4块24G A10显卡完成微调。

2023.12.27: 支持基于SVD(稳定视频扩散模型)的微调。更新了基于SVD的animate_anything_svd_v1.0版本。

2023.12.18: 将模型更新为animate_anything_512_v1.02。

计划中的功能

  • 💥 透明视频生成。(以RGBA图像作为输入,输出动画RGBA视频)
    • ✅ 根据LayerDiffuse复现透明VAE编码器和解码器。
    • ✅ 对3D-Unet进行微调,以支持基本的RGBA图像到RGBA视频的能力。
  • 💥 增强的提示词跟随:利用LLaVA生成长而详细的描述文字。
  • 💥 将U-Net替换为扩散Transformer(DiT)作为基础模型。
  • 💥 支持不同分辨率和宽高比。
  • 💥 支持Huggingface Demo / Google Colab。
    • ✅ 支持svd video2video Google Colab演示。详见colab.ipynb。
  • ✅ 支持LoRA微调。
  • 等等。

快速入门

本仓库基于Text-To-Video-Finetuning

创建Conda环境(可选)

建议安装Anaconda。

Windows安装: https://docs.anaconda.com/anaconda/install/windows/

Linux安装: https://docs.anaconda.com/anaconda/install/linux/

conda create -n animation python=3.10
conda activate animation

Python依赖

pip install -r requirements.txt

运行推理

请下载预训练模型至output/latent目录,然后运行以下命令。请将{download_model}替换为你下载的模型名称:

python train.py --config output/latent/{download_model}/config.yaml --eval validation_data.prompt_image=example/barbie2.jpg validation_data.prompt='一个卡通女孩正在说话。'

为了控制运动区域,我们可以使用labelme生成二值掩码。首先,我们用labelme为参考图像绘制多边形。

然后运行以下命令将labelme json文件转换为掩码。

labelme_json_to_dataset qingming2.json

接着运行以下命令进行推理:

python train.py --config output/latent/{download_model}/config.yaml --eval validation_data.prompt_image=example/qingming2.jpg validation_data.prompt='人们正在街上行走。' validation_data.mask=example/qingming2_label.jpg 

用户可以通过调整掩码运动强度来控制运动力度:

python train.py --config output/latent/{download_model}/
config.yaml --eval validation_data.prompt_image=example/qingming2.jpg validation_data.prompt='人们正在街上行走。' validation_data.mask=example/qingming2_label.jpg validation_data.strength=5

视频超分辨率

该模型输出的是低分辨率视频,你可以使用视频超分辨率模型将其提升至高分辨率。例如,我们可以使用Bilibili的Real-CUGAN来进行卡通风格的视频超分辨率:

git clone https://github.com/bilibili/ailab.git
cd ailab/Real-CUGAN
python inference_video.py

训练

使用字幕

在使用视频进行训练时,可以使用字幕文件。只需将视频放入一个文件夹,并创建如下格式的字幕json文件:

[
      {"caption": "可爱怪物角色平面设计动画视频", "video": "000001_000050/1066697179.mp4"}, 
      {"caption": "樱花风景", "video": "000001_000050/1066688836.mp4"}
]

然后在你的配置文件中,确保将dataset_types设置为video_json,并设置video_dir和video json路径如下:

  - dataset_types: 
      - video_json
    train_data:
      video_dir: '/webvid/webvid/data/videos'
      video_json: '/webvid/webvid/data/40K.json'

自动处理

你可以使用Video-BLIP2-预处理器脚本自动为视频添加字幕,并将dataset_types和json_path设置如下:

  - dataset_types: 
      - video_blip
    train_data:
      json_path: 'blip_generated.json'

配置

配置采用从Tune-A-Video仓库借用的YAML配置文件。

所有配置细节均放在example/train_mask_motion.yaml中。每个参数都对其作用进行了说明。

微调 anymate-anything

您可以在自己的数据集上,结合文本、运动掩码和运动强度引导来微调 anymate-anything。以下配置大约需要 30G 显存。您可以通过减小配置中的 train_batch_size、train_data.width、train_data.height 和 n_sample_frames 来降低显存需求:

python train.py --config example/train_mask_motion.yaml pretrained_model_path=<download_model>

我们还支持 LoRA 微调:

python train_lora.py --config example/train_mask_motion_lora.yaml pretrained_model_path=<download_model>

微调 Stable Video Diffusion:

Stable Video Diffusion (SVD) 的 img2vid 模型可以生成高分辨率视频。然而,它缺乏文本或运动掩码控制。您可以通过以下命令,并使用 预训练的 SVD 模型,结合运动掩码引导对 SVD 进行微调。该配置大约需要 80G 显存。

python train_svd.py --config example/train_svd_mask.yaml pretrained_model_path=<download_model>

如果您只想在自己的数据集上微调 SVD,而不需要运动掩码控制,请使用以下配置:

python train_svd.py --config example/train_svd.yaml pretrained_model_path=<svd_model>

多 GPU 训练

强烈建议使用 Accelerator 进行多 GPU 训练,这将大大降低显存需求。请先使用 DeepSpeed 配置 Accelerator。示例配置位于 example/deepspeed.yaml。

然后将上述的 'python train_xx.py ...' 命令替换为 'accelerate launch train_xx.py ...',例如:

accelerate launch --config_file example/deepspeed.yaml train_svd.py --config example/train_svd_mask.yaml pretrained_model_path=<download_model>

SVD 视频到视频

我们现在发布了微调后的 vid2vid SVD 模型,您可以通过 Gradio 界面进行体验。

请下载 vid2vid_SVD 模型,将其解压到 output/svd/{download_model} 目录下,然后运行以下命令:

python app_svd.py --config example/train_svd_v2v.yaml pretrained_model_path=output/svd/{download_model}

我们在 svd_video2video_examples 目录中提供了若干示例。

Bibtex

如果您发现本代码对您的研究有所帮助,请引用以下论文:

@misc{dai2023animateanything,
      title={AnimateAnything: Fine-Grained Open Domain Image Animation with Motion Guidance}, 
      author={Zuozhuo Dai and Zhenghao Zhang and Yao Yao and Bingxue Qiu and Siyu Zhu and Long Qin and Weizhi Wang},
      year={2023},
      eprint={2311.12886},
      archivePrefix={arXiv},
      primaryClass={cs.CV}
}

致谢

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|5天前
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|6天前
开发框架图像Agent

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

108.3k|★★☆☆☆|昨天
开发框架图像Agent

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|昨天
插件Agent图像

LLMs-from-scratch

LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备

90.1k|★★★☆☆|5天前
语言模型图像Agent

Deep-Live-Cam

Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具,用户仅需一张静态照片,即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点,让高质量的数字内容创作变得触手可及。 这款工具不仅适合开发者和技术研究人员探索算法边界,更因其极简的操作逻辑(仅需三步:选脸、选摄像头、启动),广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换,还是制作趣味短视频和直播互动,Deep-Live-Cam 都能提供流畅的支持。 其核心技术亮点在于强大的实时处理能力,支持口型遮罩(Mouth Mask)以保留使用者原始的嘴部动作,确保表情自然精准;同时具备“人脸映射”功能,可同时对画面中的多个主体应用不同面孔。此外,项目内置了严格的内容安全过滤机制,自动拦截涉及裸露、暴力等不当素材,并倡导用户在获得授权及明确标注的前提下合规使用,体现了技术发展与伦理责任的平衡。

88.9k|★★★☆☆|5天前
开发框架图像Agent