champ

GitHub
4.2k 484 中等 1 次阅读 昨天MIT图像视频
AI 解读 由 AI 自动生成,仅供参考

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
GPU
  • 必需 NVIDIA GPU
  • 测试显卡:A100, RTX3090
  • 默认运行约需 20GB 显存(针对 250 帧序列),显存不足时可缩短序列长度
  • CUDA 版本要求:12.1
内存

未说明

依赖
notesWindows 用户强烈建议使用 Poetry 进行依赖管理(而非 pip)。推理前需从 HuggingFace 下载预训练模型(包含 UNet、Motion Module 等)及引导动作数据。训练分为两个阶段,需准备经 SMPL 和 DWPose 处理后的视频数据。若显存不足,可在配置文件中通过设置帧范围 `[min_frame_index, max_frame_index]` 来截取较短的动作序列进行测试。
python3.10
torch
diffusers
accelerate
transformers
opencv-python
av
einops
omegaconf
safetensors
champ hero image

快速开始

Champ:基于3D参数化引导的可控且一致的人体图像动画

朱申浩*1陈俊明*2戴作卓3许英辉2曹勋1姚尧1朱浩+1朱思宇+2
1南京大学 2复旦大学 3阿里巴巴集团

https://github.com/fudan-generative-vision/champ/assets/82803297/b4571be6-dfb0-4926-8440-3db229ebd4aa

框架

framework

新闻

  • 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/30: 🚀🚀🚀社区提供的惊人ComfyUI封装。这里有一个视频教程。感谢@kijai🥳

  • 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。在测试您的案例之前,需要完成两项准备工作:

  1. 下载所有必需的预训练模型
  2. 准备您的引导动作
  3. 运行推理

下载预训练模型

您可以从我们的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_imagesvalidation.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),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|1周前
Agent开发框架图像

stable-diffusion-webui

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

162.1k|★★★☆☆|1周前
开发框架图像Agent

ComfyUI

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

109.2k|★★☆☆☆|今天
开发框架图像Agent

gemini-cli

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

100.8k|★★☆☆☆|1周前
插件Agent图像

LLMs-from-scratch

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

90.1k|★★★☆☆|1周前
语言模型图像Agent

Deep-Live-Cam

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

88.9k|★★★☆☆|1周前
开发框架图像Agent