champ
Champ 是一款基于 3D 参数化引导的可控人体图像动画生成工具,由南京大学、复旦大学与阿里巴巴集团联合研发,并入选 ECCV 2024。它能让静态的人物照片“动起来”,根据用户指定的动作序列生成连贯、自然且高度可控的人体视频。
传统方法在生成人物动画时,常面临动作不精准、画面闪烁或肢体变形等问题。Champ 通过引入 SMPL(3D 人体模型)作为中间引导信号,将复杂的运动控制转化为精确的 3D 姿态驱动,从而显著提升了生成视频的时间一致性与动作准确度。无论是舞蹈、体操还是日常动作,都能得到流畅逼真的演绎效果。
该工具特别适合研究人员探索可控视频生成技术,也适合开发者集成到多媒体应用中,同时为设计师和视频创作者提供了强大的内容创作辅助能力。普通用户若具备一定技术基础,也可借助社区提供的 ComfyUI 插件或在线 Demo 轻松体验。
技术上,Champ 的创新在于将 3D 人体参数与扩散模型深度融合,实现了从单张图像到动态视频的端到端生成,并支持细粒度动作编辑。项目已开源训练与推理代码,并提供完整的数据处理脚本和预训练模型,便于复现与二次开发。
使用场景
某独立游戏开发者需要为角色设计一段复杂的战斗舞蹈动画,但团队缺乏专业动作捕捉设备和资深动画师。
没有 champ 时
- 动作僵硬不自然:仅靠关键帧手动调整或基础算法生成的动画,人物关节转折生硬,缺乏真实肌肉运动的流畅感。
- 角色一致性差:在大幅度动作下,角色衣物纹理容易闪烁、变形,甚至出现肢体穿模,导致画面崩坏。
- 可控性极低:难以精确指定特定的舞蹈动作序列,每次修改都需要重新渲染整个视频,试错成本极高。
- 3D 引导缺失:无法利用现有的 3D 动作数据(如 SMPL 参数)来精准驱动 2D 图像,导致动作与预设编排严重偏离。
使用 champ 后
- 动作流畅逼真:利用 3D 参数化引导技术,champ 能生成符合人体工学的连贯动作,完美还原舞蹈的韵律感。
- 时空高度一致:在长序列动画中,champ 确保了角色外观、衣物细节的稳定,彻底消除了闪烁和伪影问题。
- 精准动作控制:开发者可直接导入 Blender 制作的 SMPL 动作序列作为引导,让静态角色图精准执行指定的复杂舞步。
- 高效迭代开发:只需更换 3D 动作指导数据,即可快速生成不同风格的动画版本,大幅缩短了从创意到成品的周期。
champ 通过引入 3D 参数化引导,将高门槛的专业人物动画制作转化为可控、一致且高效的生成流程,让单人开发者也能产出电影级动态效果。
运行环境要求
- Linux (Ubuntu 20.04)
- Windows 11
- 必需 NVIDIA GPU
- 测试显卡:A100, RTX3090
- 默认运行约需 20GB 显存(针对 250 帧序列),显存不足时可缩短序列长度
- CUDA 版本要求:12.1
未说明

快速开始
Champ:基于3D参数化引导的可控且一致的人体图像动画
框架

新闻
2024/05/05: 🎉🎉🎉HuggingFace上的样本训练数据发布。2024/05/02: 🌟🌟🌟训练源代码发布 #99。2024/04/28: 👏👏👏在Blender中平滑SMPL的方法发布 #96。2024/04/26: 🚁各种SMPL处理的优秀Blender插件CEB Studios!2024/04/12: ✨✨✨SMPL和渲染脚本发布!现在就可以用Champ制作你的舞蹈视频💃🤸♂️🕺。请参阅文档。2024/03/27: 在replicate上的酷炫演示🌟。感谢@camenduru👏2024/03/27: 访问我们的路线图🕒,预览Champ的未来。
安装
- 系统要求:Ubuntu20.04/Windows 11,Cuda 12.1
- 测试过的GPU:A100、RTX3090
创建conda环境:
conda create -n champ python=3.10
conda activate champ
使用pip安装包:
pip install -r requirements.txt
使用poetry安装包:
如果您想在Windows设备上运行该项目,我们强烈建议使用
poetry。
poetry install --no-root
推理
推理入口脚本是${PROJECT_ROOT}/inference.py。在测试您的案例之前,需要完成两项准备工作:
下载预训练模型
您可以从我们的HuggingFace仓库轻松获取推理所需的所有预训练模型。
通过以下命令将预训练模型克隆到${PROJECT_ROOT}/pretrained_models目录:
git lfs install
git clone https://huggingface.co/fudan-generative-ai/champ pretrained_models
或者您可以从各自的源仓库单独下载:
- Champ检查点:包括去噪UNet、引导编码器、参考UNet和运动模块。
- StableDiffusion V1.5:由Stable-Diffusion-v1-2初始化并微调。(感谢runwayml)
- sd-vae-ft-mse:权重旨在与diffusers库一起使用。(感谢stabilityai)
- image_encoder:由CompVis/stable-diffusion-v1-4-original微调而来,以接受CLIP图像嵌入而非文本嵌入。(感谢lambdalabs)
最终,这些预训练模型应按如下方式组织:
./pretrained_models/
|-- champ
| |-- denoising_unet.pth
| |-- guidance_encoder_depth.pth
| |-- guidance_encoder_dwpose.pth
| |-- guidance_encoder_normal.pth
| |-- guidance_encoder_semantic_map.pth
| |-- reference_unet.pth
| `-- motion_module.pth
|-- image_encoder
| |-- config.json
| `-- pytorch_model.bin
|-- sd-vae-ft-mse
| |-- config.json
| |-- diffusion_pytorch_model.bin
| `-- diffusion_pytorch_model.safetensors
`-- stable-diffusion-v1-5
|-- feature_extractor
| `-- preprocessor_config.json
|-- model_index.json
|-- unet
| |-- config.json
| `-- diffusion_pytorch_model.bin
`-- v1-inference.yaml
准备您的引导动作
通过SMPL和渲染生成的引导动作数据,在进行推理时是必不可少的。
您可以在我们的HuggingFace仓库下载我们预先渲染好的样本,并将其放置在${PROJECT_ROOT}/example_data目录下:
git lfs install
git clone https://huggingface.co/datasets/fudan-generative-ai/champ_motions_example example_data
或者您可以按照SMPL和渲染文档来制作您自己的动作数据。
最终,${PROJECT_ROOT}/example_data将如下所示:
./example_data/
|-- motions/ # 目录包含按子文件夹划分的动作
| |-- motion-01/ # 一个动作样本
| | |-- depth/ # 深度帧序列
| | |-- dwpose/ # Dwpose帧序列
| | |-- mask/ # 掩码帧序列
| | |-- normal/ # 法线图帧序列
| | `-- semantic_map/ # 语义地图帧序列
| |-- motion-02/
| | |-- ...
| | `-- ...
| `-- motion-N/
| |-- ...
| `-- ...
`-- ref_images/ # 参考图像样本(可选)
|-- ref-01.png
|-- ...
`-- ref-N.png
运行推理
现在,我们已经将所有准备好的模型和动作分别放置在 ${PROJECT_ROOT}/pretrained_models 和 ${PROJECT_ROOT}/example_data 目录下。
以下是运行推理的命令:
python inference.py --config configs/inference/inference.yaml
如果使用 poetry,命令如下:
poetry run python inference.py --config configs/inference/inference.yaml
动画结果将会保存在 ${PROJECT_ROOT}/results 文件夹中。你可以通过修改 inference.yaml 来更换参考图像或引导动作。
inference.yaml 中默认的 motion-02 约有 250 帧,需要约 20GB 的显存。
注意:如果你的显存不足,可以切换到较短的动作序列,或者从较长的序列中截取一段。我们在 inference.yaml 中提供了一个帧范围选择器,你可以将其替换为 [min_frame_index, max_frame_index] 列表,以便方便地从序列中截取所需部分。
训练模型
训练过程分为两个不同的阶段。更多信息请参阅 arXiv 上的论文 中的“训练部分”。
准备数据集
准备你自己的包含人体动作的训练视频(或者使用 HuggingFace 上的示例训练数据),并修改训练配置 YAML 文件中的 data.video_folder 值。
所有训练视频都需要被处理成 SMPL 和 DWPose 格式。请参考 数据处理文档。
目录结构应如下所示:
/training_data/
|-- video01/ # 一个视频数据帧
| |-- depth/ # 深度帧序列
| |-- dwpose/ # Dwpose 帧序列
| |-- mask/ # 掩码帧序列
| |-- normal/ # 法线图帧序列
| `-- semantic_map/ # 语义图帧序列
|-- video02/
| |-- ...
| `-- ...
`-- videoN/
|-- ...
`-- ...
再选择一小批数据作为验证集,并修改训练配置 YAML 文件中的 validation.ref_images 和 validation.guidance_folders 路径。
运行训练脚本
要训练 Champ 模型,请使用以下命令:
# 运行第一阶段的训练脚本
accelerate launch train_s1.py --config configs/train/stage1.yaml
# 修改 YAML 文件中的 `stage1_ckpt_dir` 值,然后运行第二阶段的训练脚本
accelerate launch train_s2.py --config configs/train/stage2.yaml
数据集
| 类型 | HuggingFace | 预计时间 |
|---|---|---|
| 推理 | SMPL 动作样本 | 2024年4月18日 |
| 训练 | 训练用示例数据集 | 2024年5月5日 |
路线图
| 状态 | 里程碑 | 预计时间 |
|---|---|---|
| ✅ | 推理源代码首次在 GitHub 上公开 | 2024年3月24日 |
| ✅ | 模型和测试数据上线 HuggingFace | 2024年3月26日 |
| ✅ | 优化依赖项并在 Windows 上顺利运行 | 2024年3月31日 |
| ✅ | 数据预处理代码发布 | 2024年4月12日 |
| ✅ | 训练代码发布 | 2024年5月2日 |
| ✅ | 训练数据示例上线 HuggingFace | 2024年5月5日 |
| ✅ | 平滑 SMPL 动作 | 2024年4月28日 |
| 🚀🚀🚀 | Gradio 演示上线 HuggingFace | 待定 |
引用
如果你的研究中使用了我们的工作,请考虑引用以下论文:
@inproceedings{zhu2024champ,
title={Champ: Controllable and Consistent Human Image Animation with 3D Parametric Guidance},
author={Shenhao Zhu and Junming Leo Chen and Zuozhuo Dai and Yinghui Xu and Xun Cao and Yao Yao and Hao Zhu and Siyu Zhu},
booktitle={欧洲计算机视觉大会 (ECCV)},
year={2024}
}
招聘信息
复旦大学生成视觉实验室 正在招聘多个研究岗位!包括:
- 研究助理
- 博士后研究员
- 博士研究生
- 硕士研究生
有意者请通过 siyuzhu@fudan.edu.cn 联系我们以获取更多信息。
常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
gemini-cli
gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。
LLMs-from-scratch
LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备
Deep-Live-Cam
Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具,用户仅需一张静态照片,即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点,让高质量的数字内容创作变得触手可及。 这款工具不仅适合开发者和技术研究人员探索算法边界,更因其极简的操作逻辑(仅需三步:选脸、选摄像头、启动),广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换,还是制作趣味短视频和直播互动,Deep-Live-Cam 都能提供流畅的支持。 其核心技术亮点在于强大的实时处理能力,支持口型遮罩(Mouth Mask)以保留使用者原始的嘴部动作,确保表情自然精准;同时具备“人脸映射”功能,可同时对画面中的多个主体应用不同面孔。此外,项目内置了严格的内容安全过滤机制,自动拦截涉及裸露、暴力等不当素材,并倡导用户在获得授权及明确标注的前提下合规使用,体现了技术发展与伦理责任的平衡。