StableAvatar
StableAvatar 是一款革命性的开源 AI 工具,专注于生成由音频驱动的虚拟人视频。只需提供一张参考人物图片和一段音频,它就能端到端地合成高质量、无限时长的说话视频,且无需任何后期处理步骤。
长期以来,现有的数字人生成模型在制作长视频时,往往面临画面闪烁、人物身份特征丢失(如长相变化)等问题,通常不得不依赖额外的人脸修复或换脸工具进行繁琐的后处理。StableAvatar 完美解决了这一痛点,作为首个基于视频扩散 Transformer 架构的模型,它能够直接生成连贯流畅的长视频,同时严格保持人物身份的一致性,彻底摆脱了对 FaceFusion、GFP-GAN 等第三方后处理工具的依赖。
这项技术的核心亮点在于其“无限时长”生成能力和卓越的保真度,确保了虚拟人在长时间说话过程中表情自然、口型精准且形象稳定。无论是从事多模态算法研究的研究人员、希望集成数字人功能的开发者,还是需要快速制作虚拟主播内容的设计师与普通创作者,StableAvatar 都提供了高效且高质量的解决方案。目前,该项目已开放代码、模型权重及在线演示,欢迎各界人士体验与探索。
使用场景
某在线教育团队需要为历史课程快速制作由“爱因斯坦”形象讲解的系列短视频,以增强学生的沉浸感。
没有 StableAvatar 时
- 视频长度受限:现有模型难以生成连贯的长视频,通常只能输出几秒片段,导致讲解内容支离破碎,需频繁拼接。
- 人物身份丢失:随着视频时长增加,生成的“爱因斯坦”面部特征逐渐扭曲或变形,无法保持角色一致性,影响教学严肃性。
- 后期流程繁琐:必须依赖 FaceFusion 等换脸工具或 GFP-GAN 等修复模型进行逐帧后处理,大幅增加了渲染时间和算力成本。
- 音画同步生硬:口型与语音匹配度不高,尤其在长句讲解时容易出现明显的延迟或错位,降低观看体验。
使用 StableAvatar 后
- 无限时长生成:StableAvatar 作为端到端视频扩散 Transformer,可直接合成任意长度的连续视频,轻松容纳整段课程讲解。
- 身份高度保真:仅需一张参考图,即可在整个视频中完美锁定“爱因斯坦”的面部特征,确保角色形象始终如一。
- 无需后处理:生成结果直接可用,彻底省去了换脸和人脸修复等额外的后处理步骤,将制作周期从数小时缩短至分钟级。
- 自然音画同步:基于音频驱动的高精度生成能力,使得口型、表情与语音节奏天然契合,呈现逼真的授课状态。
StableAvatar 通过端到端的无限长视频生成能力,让高质量数字人教学视频的制作变得像输入文本一样简单高效。
运行环境要求
- Linux
- 必需 NVIDIA GPU
- 支持 CUDA 12.4 (PyTorch 2.6.0) 或 CUDA 12.8 (Blackwell 系列/PyTorch 2.7.0)
- 显存需求未明确说明,但建议根据分辨率和帧数调整,若遇显存不足可降低输出分辨率或动画帧数
未说明
快速开始
StableAvatar
StableAvatar:无限时长音频驱动的虚拟形象视频生成
涂书源1、潘月明3、黄寅明1、韩欣彤4、邢震1、戴琪2、罗冲2、吴祖轩1、蒋宇刚1
[1复旦大学;2微软亚洲研究院;3西安交通大学;4腾讯公司]
由StableAvatar生成的音频驱动虚拟形象视频,展示了其合成无限时长且保持身份一致视频的强大能力。所有视频均由StableAvatar直接合成,未使用任何与人脸相关的后处理工具,例如换脸工具FaceFusion或人脸修复模型GFP-GAN和CodeFormer。
StableAvatar与当前最先进(SOTA)的音频驱动虚拟形象视频生成模型的对比结果凸显了StableAvatar在提供无限时长、高保真、身份一致的虚拟形象动画方面的卓越性能。
概述
StableAvatar框架的概览。
目前用于音频驱动虚拟形象视频生成的扩散模型难以合成具有自然音频同步和身份一致性的长视频。本文提出了StableAvatar,这是首个无需后处理即可合成无限时长高质量视频的端到端视频扩散Transformer。StableAvatar以参考图像和音频为条件,集成了定制化的训练和推理模块,从而实现无限时长视频的生成。 我们观察到,现有模型无法生成长视频的主要原因在于其音频建模方式。这些模型通常依赖第三方现成的提取器来获取音频嵌入,然后通过交叉注意力直接将其注入扩散模型中。由于当前的扩散主干网络缺乏任何与音频相关的先验知识,这种方法会导致视频片段之间潜变量分布误差的严重累积,从而使后续片段的潜变量分布逐渐偏离最优分布。 为此,StableAvatar引入了一种新颖的时步感知音频适配器,通过时步感知调制来防止误差累积。在推理过程中,我们提出了一种新的音频原生引导机制,利用扩散模型自身不断演进的联合音频-潜变量预测作为动态引导信号,进一步提升音频同步效果。为了增强无限时长视频的流畅性,我们还引入了一种动态加权滑动窗口策略,用于随时间融合潜变量。基准测试实验表明,StableAvatar在定性和定量两方面均表现出色。
新闻
[2025-10-12]: 🔥 我们修复了 多GPU 和 单GPU 推理之间的不一致问题。补丁已合并——请更新到最新版本并试用!🙌[2025-9-8]:🔥 我们很高兴发布一个有趣的 🔥🔥 全新演示 🔥🔥!生成的视频可以在 YouTube 和 Bilibili 上观看。[2025-8-29]:🔥 StableAvatar 公开演示现已在 Hugging Face Spaces 上线。(注意:由于视频生成时间较长,目前该演示仅对 Hugging Face Pro 用户开放。)[2025-8-18]:🔥 StableAvatar 只需 10 步即可在 ComfyUI 上运行,速度提升至原来的 3 倍。感谢 @smthemex 的贡献。[2025-8-16]:🔥 我们发布了微调代码以及 LoRA 训练/微调代码!其他代码将尽快公开,请持续关注![2025-8-15]:🔥 StableAvatar 可以在 Gradio 界面上运行。感谢 @gluttony-10 的贡献![2025-8-15]:🔥 StableAvatar 可以在 ComfyUI 上运行。感谢 @smthemex 的贡献。[2025-8-13]:🔥 添加了支持在全新 Blackwell 系列 Nvidia 芯片上运行 StableAvatar 的更改,包括 RTX 6000 Pro。[2025-8-11]:🔥 项目页面、代码、技术报告以及 基础模型检查点 已发布。进一步的 LoRA 训练代码、评估数据集和 StableAvatar-pro 将很快发布。敬请期待!
🛠️ 待办事项
- StableAvatar-1.3B-basic
- 推理代码
- 数据预处理代码(音频提取)
- 数据预处理代码(人声分离)
- 训练代码
- 完整微调代码
- LoRA 训练代码
- LoRA 微调代码
- 带有音频原生引导的推理代码
- StableAvatar-pro
🔑 快速入门
对于基础版本的模型检查点(Wan2.1-1.3B 基础),它支持生成 无限长度的视频,分辨率为 480×832 或 832×480 或 512×512。如果遇到内存不足的问题,可以适当减少动画帧数或降低输出分辨率。
🧱 环境搭建
pip install torch==2.6.0 torchvision==0.21.0 torchaudio==2.1.1 --index-url https://download.pytorch.org/whl/cu124
pip install -r requirements.txt
# 可选安装 flash_attn 以加速注意力计算
pip install flash_attn
🧱 Blackwell 系列芯片的环境搭建
pip install torch==2.7.0 torchvision==0.22.0 torchaudio==2.7.0 --index-url https://download.pytorch.org/whl/cu128
pip install -r requirements.txt
# 可选安装 flash_attn 以加速注意力计算
pip install flash_attn
🧱 下载权重
如果遇到与 Hugging Face 连接问题,可以通过设置环境变量来使用镜像端点:export HF_ENDPOINT=https://hf-mirror.com。
请按以下步骤手动下载权重:
pip install "huggingface_hub[cli]"
cd StableAvatar
mkdir checkpoints
huggingface-cli download FrancisRing/StableAvatar --local-dir ./checkpoints
所有权重应按如下方式组织在 models 文件夹中: 该项目的整体文件结构应如下所示:
StableAvatar/
├── accelerate_config
├── deepspeed_config
├── examples
├── wan
├── checkpoints
│ ├── Kim_Vocal_2.onnx
│ ├── wav2vec2-base-960h
│ ├── Wan2.1-Fun-V1.1-1.3B-InP
│ └── StableAvatar-1.3B
├── inference.py
├── inference.sh
├── train_1B_square.py
├── train_1B_square.sh
├── train_1B_vec_rec.py
├── train_1B_vec_rec.sh
├── audio_extractor.py
├── vocal_seperator.py
├── requirement.txt
🧱 音频提取
给定目标视频文件 (.mp4),可以使用以下命令获取对应的音频文件 (.wav):
python audio_extractor.py --video_path="path/test/video.mp4" --saved_audio_path="path/test/audio.wav"
🧱 人声分离
由于嘈杂的背景音乐可能会在一定程度上影响 StableAvatar 的表现,可以进一步从音频文件中分离出人声,以获得更好的唇形同步效果。 给定音频文件 (.wav) 的路径,可以运行以下命令提取相应的人声信号:
pip install audio-separator[gpu]
python vocal_seperator.py --audio_separator_model_file="path/StableAvatar/checkpoints/Kim_Vocal_2.onnx" --audio_file_path="path/test/audio.wav" --saved_vocal_path="path/test/vocal.wav"
🧱 基础模型推理
我们提供了一个用于测试的示例配置文件 inference.sh。您也可以根据自己的需求轻松修改其中的各项配置。
bash inference.sh
基于 Wan2.1-1.3B 的 StableAvatar 支持三种不同分辨率设置下的音频驱动虚拟人视频生成:512×512、480×832 和 832×480。您可以在 inference.sh 中修改 --width 和 --height 来设置动画的分辨率。--output_dir 指的是生成动画的保存路径。--validation_reference_path、--validation_driven_audio_path 和 --validation_prompts 分别指代提供的参考图像路径、音频文件路径以及文本提示。
提示词同样非常重要。建议按照以下格式填写:“[第一帧描述]-[人物行为描述]-[背景描述(可选)]”。
--pretrained_model_name_or_path、--pretrained_wav2vec_path 和 --transformer_path 分别是预训练的 Wan2.1-1.3B 权重、Wav2Vec2.0 预训练权重以及 StableAvatar 预训练权重的路径。
--sample_steps、--overlap_window_length 和 --clip_sample_n_frames 分别表示总的推理步数、两个上下文窗口之间的重叠长度,以及每个批次/上下文窗口中合成的帧数。
值得注意的是,推荐的 --sample_steps 范围为 [30-50],步数越多,生成质量越高。而 --overlap_window_length 的推荐范围则是 [5-15],较长的重叠长度会带来更高的质量,但也会降低推理速度。
--sample_text_guide_scale 和 --sample_audio_guide_scale 分别是文本提示和音频的无分类指导尺度。对于提示和音频的 CFG 值,推荐范围为 [3-6]。您可以适当提高音频的 CFG 值,以更好地实现唇形同步。
此外,您还可以运行以下命令来启动 Gradio 界面:
python app.py
我们在 path/StableAvatar/examples 中提供了 6 个不同分辨率设置下的案例供您验证。❤️❤️欢迎尝试体验,并尽情享受无限长度虚拟人视频生成带来的无穷乐趣❤️❤️!
💡 小贴士
基于 Wan2.1-1.3B 的 StableAvatar 权重有两个版本:
transformer3d-square.pt和transformer3d-rec-vec.pt,它们分别在两种不同分辨率设置的视频数据集上进行训练。这两个版本都支持在三种不同分辨率下生成音频驱动的虚拟人视频:512×512、480×832 和 832×480。您可以通过修改inference.sh中的--transformer_path来切换这两个版本。如果您的 GPU 资源有限,可以通过修改
inference.sh中的--GPU_memory_mode来调整 StableAvatar 的加载模式。--GPU_memory_mode的选项包括model_full_load、sequential_cpu_offload、model_cpu_offload_and_qfloat8以及model_cpu_offload。特别地,当您将--GPU_memory_mode设置为sequential_cpu_offload时,总的 GPU 内存消耗约为 3GB,但推理速度会较慢。 将--GPU_memory_mode设置为model_cpu_offload可以显著减少 GPU 内存占用,相比model_full_load模式大约能节省一半的内存。如果您有多块 GPU,可以通过修改
inference.sh中的--ulysses_degree和--ring_degree来进行多 GPU 推理以加速处理。例如,如果您有 8 张 GPU 卡,可以设置--ulysses_degree=4和--ring_degree=2。需要注意的是,ulysses_degree * ring_degree必须等于 GPU 总数或世界尺寸。此外,您还可以在inference.sh中添加--fsdp_dit来激活 DiT 中的 FSDP,进一步降低 GPU 内存占用。 您可以运行以下命令:
bash multiple_gpu_inference.sh
在我的设置中,使用了 4 张 GPU 进行推理。
StableAvatar 合成的视频不包含音频。如果您希望获得带有音频的高质量 MP4 文件,我们建议您在 <b>output_path</b> 上使用 ffmpeg 进行处理,具体命令如下:
ffmpeg -i video_without_audio.mp4 -i /path/audio.wav -c:v copy -c:a aac -shortest /path/output_with_audio.mp4
🧱 模型训练
🔥🔥需要注意的是,如果你打算训练一个条件化的视频扩散Transformer(DiT)模型,比如Wan2.1,那么本训练教程同样会对你有所帮助。🔥🔥 训练数据集需要按照以下结构进行组织:
talking_face_data/
├── rec
│ │ ├──speech
│ │ │ ├──00001
│ │ │ │ ├──sub_clip.mp4
│ │ │ │ ├──audio.wav
│ │ │ │ ├──images
│ │ │ │ │ ├──frame_0.png
│ │ │ │ │ ├──frame_1.png
│ │ │ │ │ ├──frame_2.png
│ │ │ │ │ ├──...
│ │ │ │ ├──face_masks
│ │ │ │ │ ├──frame_0.png
│ │ │ │ │ ├──frame_1.png
│ │ │ │ │ ├──frame_2.png
│ │ │ │ │ ├──...
│ │ │ │ ├──lip_masks
│ │ │ │ │ ├──frame_0.png
│ │ │ │ │ ├──frame_1.png
│ │ │ │ │ ├──frame_2.png
│ │ │ │ │ ├──...
│ │ │ ├──00002
│ │ │ │ ├──sub_clip.mp4
│ │ │ │ ├──audio.wav
│ │ │ │ ├──images
│ │ │ │ ├──face_masks
│ │ │ │ ├──lip_masks
│ │ │ └──...
│ │ ├──singing
│ │ │ ├──00001
│ │ │ │ ├──sub_clip.mp4
│ │ │ │ ├──audio.wav
│ │ │ │ ├──images
│ │ │ │ ├──face_masks
│ │ │ │ ├──lip_masks
│ │ │ └──...
│ │ ├──dancing
│ │ │ ├──00001
│ │ │ │ ├──sub_clip.mp4
│ │ │ │ ├──audio.wav
│ │ │ │ ├──images
│ │ │ │ ├──face_masks
│ │ │ │ ├──lip_masks
│ │ │ └──...
├── vec
│ │ ├──speech
│ │ │ ├──00001
│ │ │ │ ├──sub_clip.mp4
│ │ │ │ ├──audio.wav
│ │ │ │ ├──images
│ │ │ │ ├──face_masks
│ │ │ │ ├──lip_masks
│ │ │ └──...
│ │ ├──singing
│ │ │ ├──00001
│ │ │ │ ├──sub_clip.mp4
│ │ │ │ ├──audio.wav
│ │ │ │ ├──images
│ │ │ │ ├──face_masks
│ │ │ │ ├──lip_masks
│ │ │ └──...
│ │ ├──dancing
│ │ │ ├──00001
│ │ │ │ ├──sub_clip.mp4
│ │ │ │ ├──audio.wav
│ │ │ │ ├──images
│ │ │ │ ├──face_masks
│ │ │ │ ├──lip_masks
│ │ │ └──...
├── square
│ │ ├──speech
│ │ │ ├──00001
│ │ │ │ ├──sub_clip.mp4
│ │ │ │ ├──audio.wav
│ │ │ │ ├──images
│ │ │ │ ├──face_masks
│ │ │ │ ├──lip_masks
│ │ │ └──...
│ │ ├──singing
│ │ │ ├──00001
│ │ │ │ ├──sub_clip.mp4
│ │ │ │ ├──audio.wav
│ │ │ │ ├──images
│ │ │ │ ├──face_masks
│ │ │ │ ├──lip_masks
│ │ │ └──...
│ │ ├──dancing
│ │ │ ├──00001
│ │ │ │ ├──sub_clip.mp4
│ │ │ │ ├──audio.wav
│ │ │ │ ├──images
│ │ │ │ ├──face_masks
│ │ │ │ ├──lip_masks
│ │ │ └──...
├── video_rec_path.txt
├── video_square_path.txt
└── video_vec_path.txt
StableAvatar是在混合分辨率的视频上进行训练的,其中512x512分辨率的视频存储在talking_face_data/square中,480x832分辨率的视频存储在talking_face_data/vec中,而832x480分辨率的视频则存储在talking_face_data/rec中。在talking_face_data/square、talking_face_data/rec和talking_face_data/vec中的每个文件夹都包含三个子文件夹,分别存放不同类型的视频(演讲、歌唱和舞蹈)。
所有.png格式的图像文件均以frame_i.png的形式命名,例如frame_0.png、frame_1.png等。
00001、00002、00003等编号用于标识不同的视频信息。
在三个子文件夹中,images用于存放RGB帧,face_masks用于存放相应的人脸掩码,而lip_masks则用于存放相应的嘴唇掩码。
sub_clip.mp4和audio.wav分别对应于images中的RGB视频以及对应的音频文件。
video_square_path.txt、video_rec_path.txt和video_vec_path.txt分别记录了talking_face_data/square、talking_face_data/rec和talking_face_data/vec的文件夹路径。
例如,video_rec_path.txt的内容如下:
path/StableAvatar/talking_face_data/rec/speech/00001
path/StableAvatar/talking_face_data/rec/speech/00002
...
path/StableAvatar/talking_face_data/rec/singing/00003
path/StableAvatar/talking_face_data/rec/singing/00004
...
path/StableAvatar/talking_face_data/rec/dancing/00005
path/StableAvatar/talking_face_data/rec/dancing/00006
...
如果你只有原始视频,可以使用ffmpeg从原始视频(如演讲视频)中提取帧,并将其存储在images子文件夹中。
ffmpeg -i raw_video_1.mp4 -q:v 1 -start_number 0 path/StableAvatar/talking_face_data/rec/speech/00001/images/frame_%d.png
提取出的帧将被保存到path/StableAvatar/talking_face_data/rec/speech/00001/images目录下。
关于人脸掩码的提取,请参考StableAnimator仓库。该教程中的“人脸掩码提取”部分提供了现成的代码。
对于嘴唇掩码的提取,可以运行以下命令:
pip install mediapipe
python lip_mask_extractor.py --folder_root="path/StableAvatar/talking_face_data/rec/singing" --start=1 --end=500
--folder_root指定了训练数据集的根路径。
--start和--end则分别指定了所选训练数据集的起始和结束索引。例如,--start=1 --end=500表示嘴唇提取将从path/StableAvatar/talking_face_data/rec/singing/00001开始,到path/StableAvatar/talking_face_data/rec/singing/00500结束。
有关音频提取的详细信息,请参阅“音频提取”部分。
当你的数据集完全按照上述结构组织好后,你就可以通过运行以下命令轻松地训练基于Wan2.1-1.3B的StableAvatar模型:
# 在单台机器上以单一分辨率(512x512)训练StableAvatar
bash train_1B_square.sh
# 在多台机器上以单一分辨率(512x512)训练StableAvatar
bash train_1B_square_64.sh
# 在单台机器上以混合分辨率(480x832和832x480)训练StableAvatar
bash train_1B_rec_vec.sh
# 在多台机器上以混合分辨率设置(480×832 和 832×480)训练 StableAvatar
bash train_1B_rec_vec_64.sh
关于 train_1B_square.sh 和 train_1B_rec_vec.sh 的参数说明:CUDA_VISIBLE_DEVICES 指定使用的 GPU 设备。在我的配置中,我使用 4 张 NVIDIA A100 80G 显卡来训练 StableAvatar(CUDA_VISIBLE_DEVICES=3,2,1,0)。
--pretrained_model_name_or_path、--pretrained_wav2vec_path 和 --output_dir 分别指预训练的 Wan2.1-1.3B 路径、预训练的 Wav2Vec2.0 路径以及训练好的 StableAvatar 检查点保存路径。
--train_data_square_dir、--train_data_rec_dir 和 --train_data_vec_dir 分别是 video_square_path.txt、video_rec_path.txt 和 video_vec_path.txt 的文件路径。
--validation_reference_path 和 --validation_driven_audio_path 分别是验证用参考图像和驱动音频的文件路径。
--video_sample_n_frames 是 StableAvatar 在单个批次中处理的帧数。
--num_train_epochs 是训练轮数。值得注意的是,训练轮数的默认值被设置为无限,当您观察到 StableAvatar 达到最佳性能时,可以手动终止训练过程。
对于 train_1B_square_64.sh 和 train_1B_rec_vec_64.sh 的参数说明,我们在 path/StableAvatar/accelerate_config/accelerate_config_machine_1B_multiple.yaml 中设置了 GPU 配置。在我的配置中,训练环境由 8 个节点组成,每个节点配备 8 张 NVIDIA A100 80GB 显卡,用于训练 StableAvatar。
StableAvatar 训练时的整体文件结构如下:
StableAvatar/
├── accelerate_config
├── deepspeed_config
├── talking_face_data
├── examples
├── wan
├── checkpoints
│ ├── Kim_Vocal_2.onnx
│ ├── wav2vec2-base-960h
│ ├── Wan2.1-Fun-V1.1-1.3B-InP
│ └── StableAvatar-1.3B
├── inference.py
├── inference.sh
├── train_1B_square.py
├── train_1B_square.sh
├── train_1B_vec_rec.py
├── train_1B_vec_rec.sh
├── audio_extractor.py
├── vocal_seperator.py
├── requirement.txt
值得注意的是,由于采用混合分辨率(480×832 和 832×480)的训练流程,训练 StableAvatar 大约需要 50GB 的显存。 然而,如果您仅使用 512×512 的视频进行训练,显存需求将降低至约 40GB。 此外,所选训练视频的背景应保持静止,这有助于扩散模型准确计算重建损失。 音频应清晰,避免过多背景噪声。
关于基于 Wan2.1-14B 的 StableAvatar 训练,您可以运行以下命令:
# 在多台机器上以混合分辨率设置(480×832、832×480 和 512×512)训练 StableAvatar
huggingface-cli download Wan-AI/Wan2.1-I2V-14B-480P --local-dir ./checkpoints/Wan2.1-I2V-14B-480P
huggingface-cli download Wan-AI/Wan2.1-I2V-14B-720P --local-dir ./checkpoints/Wan2.1-I2V-14B-720P # 可选
bash train_14B.sh
我们使用 DeepSpeed Stage-2 来训练基于 Wan2.1-14B 的 StableAvatar。GPU 配置可以在 path/StableAvatar/accelerate_config/accelerate_config_machine_14B_multiple.yaml 中修改。
DeepSpeed 优化配置和调度器配置位于 path/StableAvatar/deepspeed_config/zero_stage2_config.json。
值得注意的是,我们观察到基于 Wan2.1-1.3B 的 StableAvatar 已经能够合成无限长度的高质量头像视频。而基于 Wan2.1-14B 的骨干网络在训练过程中会显著增加推理延迟和 GPU 内存消耗,表明其性能与资源消耗之间的效率有限。
您还可以运行以下命令进行 LoRA 微调:
# 在单台机器上以混合分辨率设置(480×832 和 832×480)训练 StableAvatar-1.3B
bash train_1B_rec_vec_lora.sh
# 在多台机器上以混合分辨率设置(480×832 和 832×480)训练 StableAvatar-1.3B
bash train_1B_rec_vec_lora_64.sh
# 在多台机器上以混合分辨率设置(480×832、832×480 和 512×512)训练基于 Wan2.1-14B 的 StableAvatar
bash train_14B_lora.sh
您可以通过调整 --rank 和 --network_alpha 来控制 LoRA 微调的质量。
如果您希望训练基于 Wan2.1-1.3B 或 Wan2.1-14B 的 720P 版本 StableAvatar,可以直接在 train_1B_square.py、train_1B_vec_rec.py 或 train_14B.py 中修改数据加载器的高度和宽度(480p→720p)。
🧱 模型微调
对于完整微调 StableAvatar,您可以在 train_1B_rec_vec.sh 或 train_1B_rec_vec_64.sh 中添加 --transformer_path="path/StableAvatar/checkpoints/StableAvatar-1.3B/transformer3d-square.pt":
# 在单台机器上以混合分辨率设置(480×832 和 832×480)微调 StableAvatar
bash train_1B_rec_vec.sh
# 在多台机器上以混合分辨率设置(480×832 和 832×480)微调 StableAvatar
bash train_1B_rec_vec_64.sh
对于 LoRA 微调 StableAvatar,您可以在 train_1B_rec_vec_lora.sh 中添加 --transformer_path="path/StableAvatar/checkpoints/StableAvatar-1.3B/transformer3d-square.pt":
# 在单台机器上以混合分辨率设置(480×832 和 832×480)LoRA 微调 StableAvatar-1.3B
bash train_1B_rec_vec_lora.sh
您可以通过调整 --rank 和 --network_alpha 来控制 LoRA 训练/微调的质量。
🧱 显存需求与运行时间
对于一段 5 秒的视频(480×832,帧率 25fps),基础模型(--GPU_memory_mode="model_full_load") 大约需要 18GB 显存,并在 4090 显卡上 3 分钟内完成渲染。
🔥🔥理论上,StableAvatar 能够合成数小时的视频而不会出现明显的质量下降;然而,3D VAE 解码器对 GPU 显存的需求非常大,尤其是在解码 1 万帧以上时。您也可以选择在 CPU 上运行 VAE。🔥🔥
联系方式
如果您有任何建议或认为我们的工作有所帮助,请随时与我联系。
如果您觉得我们的工作有用,请考虑给这个 GitHub 仓库点个赞 ⭐ 并引用它 ❤️:
@article{tu2025stableavatar,
title={Stableavatar: Infinite-length audio-driven avatar video generation},
author={Tu, Shuyuan and Pan, Yueming and Huang, Yinming and Han, Xintong and Xing, Zhen and Dai, Qi and Luo, Chong and Wu, Zuxuan and Jiang, Yu-Gang},
journal={arXiv preprint arXiv:2508.08248},
year={2025}
}
常见问题
相似工具推荐
Deep-Live-Cam
Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具,用户仅需一张静态照片,即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点,让高质量的数字内容创作变得触手可及。 这款工具不仅适合开发者和技术研究人员探索算法边界,更因其极简的操作逻辑(仅需三步:选脸、选摄像头、启动),广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换,还是制作趣味短视频和直播互动,Deep-Live-Cam 都能提供流畅的支持。 其核心技术亮点在于强大的实时处理能力,支持口型遮罩(Mouth Mask)以保留使用者原始的嘴部动作,确保表情自然精准;同时具备“人脸映射”功能,可同时对画面中的多个主体应用不同面孔。此外,项目内置了严格的内容安全过滤机制,自动拦截涉及裸露、暴力等不当素材,并倡导用户在获得授权及明确标注的前提下合规使用,体现了技术发展与伦理责任的平衡。
ML-For-Beginners
ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。
MoneyPrinterTurbo
MoneyPrinterTurbo 是一款利用 AI 大模型技术,帮助用户一键生成高清短视频的开源工具。只需输入一个视频主题或关键词,它就能全自动完成从文案创作、素材匹配、字幕合成到背景音乐搭配的全过程,最终输出完整的竖屏或横屏短视频。 这款工具主要解决了传统视频制作流程繁琐、门槛高以及素材版权复杂等痛点。无论是需要快速产出内容的自媒体创作者,还是希望尝试视频生成的普通用户,无需具备专业的剪辑技能或昂贵的硬件配置(普通电脑即可运行),都能轻松上手。同时,其清晰的 MVC 架构和对多种主流大模型(如 DeepSeek、Moonshot、通义千问等)的广泛支持,也使其成为开发者进行二次开发或技术研究的理想底座。 MoneyPrinterTurbo 的独特亮点在于其高度的灵活性与本地化友好性。它不仅支持中英文双语及多种语音合成,允许用户精细调整字幕样式和画面比例,还特别优化了国内网络环境下的模型接入方案,让用户无需依赖 VPN 即可使用高性能国产大模型。此外,工具提供批量生成模式,可一次性产出多个版本供用户择优,极大地提升了内容创作的效率与质量。
oh-my-openagent
oh-my-openagent(简称 omo)是一款强大的开源智能体编排框架,前身名为 oh-my-opencode。它致力于打破单一模型供应商的生态壁垒,解决开发者在构建 AI 应用时面临的“厂商锁定”难题。不同于仅依赖特定模型的封闭方案,omo 倡导开放市场理念,支持灵活调度多种主流大模型:利用 Claude、Kimi 或 GLM 进行任务编排,调用 GPT 处理复杂推理,借助 Minimax 提升响应速度,或发挥 Gemini 的创意优势。 这款工具特别适合希望摆脱平台限制、追求极致性能与成本平衡的开发者及研究人员使用。通过统一接口,用户可以轻松组合不同模型的长处,构建更高效、更具适应性的智能体系统。其独特的技术亮点在于“全模型兼容”架构,让用户不再受制于某一家公司的策略变动或定价调整,真正实现对前沿模型资源的自由驾驭。无论是构建自动化编码助手,还是开发多步骤任务处理流程,oh-my-openagent 都能提供灵活且稳健的基础设施支持,助力用户在快速演进的 AI 生态中保持技术主动权。
tabby
Tabby 是一款可私有化部署的开源 AI 编程助手,旨在为开发团队提供 GitHub Copilot 的安全替代方案。它核心解决了代码辅助过程中的数据隐私顾虑与云端依赖问题,让企业能够在完全掌控数据的前提下享受智能代码补全、聊天问答及上下文理解带来的效率提升。 这款工具特别适合注重代码安全的企业开发团队、希望本地化运行大模型的科研机构,以及拥有消费级显卡的个人开发者。Tabby 的最大亮点在于其“开箱即用”的自包含架构,无需配置复杂的数据库或依赖云服务即可快速启动。同时,它对硬件十分友好,支持在普通的消费级 GPU 上流畅运行,大幅降低了部署门槛。此外,Tabby 提供了标准的 OpenAPI 接口,能轻松集成到现有的云 IDE 或内部开发流程中,并支持通过 REST API 接入自定义文档以增强知识上下文。从代码自动补全到基于 Git 仓库的智能问答,Tabby 致力于成为开发者身边懂业务、守安全的智能伙伴。
generative-models
Generative Models 是 Stability AI 推出的开源项目,核心亮点在于最新发布的 Stable Video 4D 2.0(SV4D 2.0)。这是一个先进的视频转 4D 扩散模型,旨在解决从单一视角视频中生成高保真、多视角动态 3D 资产的技术难题。传统方法往往难以处理物体自遮挡或背景杂乱的情况,且生成的动态细节容易模糊,而 SV4D 2.0 通过改进的架构,显著提升了运动中的画面锐度与时空一致性,无需依赖额外的多视角参考图即可稳健地合成新颖视角的视频。 该项目特别适合计算机视觉研究人员、AI 开发者以及从事 3D 内容创作的设计师使用。对于研究者,它提供了探索 4D 生成前沿的完整代码与训练权重;对于开发者,其支持自动回归生成长视频及低显存优化选项,便于集成与调试;对于设计师,它能将简单的物体运动视频快速转化为可用于游戏或影视的多视角 4D 素材。技术层面,SV4D 2.0 支持一次性生成 12 帧视频对应 4 个相机视角(或 5 帧对应 8 视角),分辨率达 576x576,并能更好地泛化至真实世界场景。用户只需准备一段白底或经简单抠图处理的物体运动视频,