[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-EvelynFan--FaceFormer":3,"tool-EvelynFan--FaceFormer":64},[4,17,27,35,43,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",140436,2,"2026-04-05T23:32:43",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":23,"last_commit_at":41,"category_tags":42,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,26],{"id":44,"name":45,"github_repo":46,"description_zh":47,"stars":48,"difficulty_score":23,"last_commit_at":49,"category_tags":50,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,51,52,53,15,54,26,13,55],"数据工具","视频","插件","其他","音频",{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,54],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":70,"readme_en":71,"readme_zh":72,"quickstart_zh":73,"use_case_zh":74,"hero_image_url":75,"owner_login":76,"owner_name":77,"owner_avatar_url":78,"owner_bio":79,"owner_company":80,"owner_location":81,"owner_email":79,"owner_twitter":79,"owner_website":82,"owner_url":83,"languages":84,"stars":89,"forks":90,"last_commit_at":91,"license":92,"difficulty_score":93,"env_os":94,"env_gpu":95,"env_ram":96,"env_deps":97,"category_tags":105,"github_topics":106,"view_count":23,"oss_zip_url":79,"oss_zip_packed_at":79,"status":16,"created_at":117,"updated_at":118,"faqs":119,"releases":149},4096,"EvelynFan\u002FFaceFormer","FaceFormer","[CVPR 2022] FaceFormer: Speech-Driven 3D Facial Animation with Transformers","FaceFormer 是一款基于 Transformer 架构的开源工具，专为实现高质量的语音驱动 3D 面部动画而设计。它只需输入原始音频片段和一个中性的 3D 人脸网格模型，就能自动合成出序列流畅、口型精准且表情自然的 3D 面部运动数据。\n\n传统方法在生成长序列动画时往往难以保持时间上的连贯性，或无法精确捕捉语音与唇形的细微对应关系。FaceFormer 通过端到端的自回归生成机制，有效解决了这一难题，显著提升了动画的真实感和同步率。其核心技术亮点在于创新性地利用 Transformer 模型处理时序依赖，使其在理解语音韵律并转化为复杂面部肌肉运动方面表现卓越。\n\n这款工具非常适合计算机视觉领域的研究人员、图形学开发者以及数字内容创作者使用。研究人员可基于其 PyTorch 实现深入探索多模态生成算法；开发者能轻松将其集成到虚拟主播、游戏角色或元宇宙应用中；设计师则可以利用它快速将录音转化为生动的 3D 角色表演，大幅降低手动关键帧动画的制作成本。作为 CVPR 2022 的收录成果，FaceFormer 提供了完善的训练与演示代码，支持 VOCASET 和 BIWI 等主流数据","FaceFormer 是一款基于 Transformer 架构的开源工具，专为实现高质量的语音驱动 3D 面部动画而设计。它只需输入原始音频片段和一个中性的 3D 人脸网格模型，就能自动合成出序列流畅、口型精准且表情自然的 3D 面部运动数据。\n\n传统方法在生成长序列动画时往往难以保持时间上的连贯性，或无法精确捕捉语音与唇形的细微对应关系。FaceFormer 通过端到端的自回归生成机制，有效解决了这一难题，显著提升了动画的真实感和同步率。其核心技术亮点在于创新性地利用 Transformer 模型处理时序依赖，使其在理解语音韵律并转化为复杂面部肌肉运动方面表现卓越。\n\n这款工具非常适合计算机视觉领域的研究人员、图形学开发者以及数字内容创作者使用。研究人员可基于其 PyTorch 实现深入探索多模态生成算法；开发者能轻松将其集成到虚拟主播、游戏角色或元宇宙应用中；设计师则可以利用它快速将录音转化为生动的 3D 角色表演，大幅降低手动关键帧动画的制作成本。作为 CVPR 2022 的收录成果，FaceFormer 提供了完善的训练与演示代码，支持 VOCASET 和 BIWI 等主流数据集，是进入 3D 语音动画领域的优质起点。","## FaceFormer\n\nPyTorch implementation for the paper:\n\n> **FaceFormer: Speech-Driven 3D Facial Animation with Transformers**, ***CVPR 2022***.\n>\n> Yingruo Fan, Zhaojiang Lin, Jun Saito, Wenping Wang, Taku Komura\n>\n> [[Paper]](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2112.05329.pdf) [[Project Page]](https:\u002F\u002Fevelynfan.github.io\u002Faudio2face\u002F) \n\n\u003Cp align=\"center\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FEvelynFan_FaceFormer_readme_da9f2c5cd581.jpg\" width=\"70%\" \u002F>\n\u003C\u002Fp>\n\n> Given the raw audio input and a neutral 3D face mesh, our proposed end-to-end Transformer-based architecture, FaceFormer, can autoregressively synthesize a sequence of realistic 3D facial motions with accurate lip movements.\n\n## Environment\n\n- Ubuntu 18.04.1\n- Python 3.7\n- Pytorch 1.9.0\n\n## Dependencies\n\n- Check the required python packages in `requirements.txt`.\n- ffmpeg\n- [MPI-IS\u002Fmesh](https:\u002F\u002Fgithub.com\u002FMPI-IS\u002Fmesh)\n\n## Data\n\n### VOCASET\n\nRequest the VOCASET data from [https:\u002F\u002Fvoca.is.tue.mpg.de\u002F](https:\u002F\u002Fvoca.is.tue.mpg.de\u002F). Place the downloaded files `data_verts.npy`, `raw_audio_fixed.pkl`, `templates.pkl` and `subj_seq_to_idx.pkl` in the folder `VOCASET`. Download \"FLAME_sample.ply\" from [voca](https:\u002F\u002Fgithub.com\u002FTimoBolkart\u002Fvoca\u002Ftree\u002Fmaster\u002Ftemplate) and put it in `VOCASET\u002Ftemplates`.\n\n### BIWI\n\nRequest the BIWI dataset from [Biwi 3D Audiovisual Corpus of Affective Communication](https:\u002F\u002Fdata.vision.ee.ethz.ch\u002Fcvl\u002Fdatasets\u002Fb3dac2.en.html). The dataset contains the following subfolders:\n\n- 'faces' contains the binary (.vl) files for the tracked facial geometries. \n- 'rigid_scans' contains the templates stored as .obj files. \n- 'audio' contains audio signals stored as .wav files. \n\nPlace the folders 'faces' and 'rigid_scans' in `BIWI` and place the wav files in `BIWI\u002Fwav`.\n\n## Demo\n\nDownload the pretrained models from [biwi.pth](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1WR1P25EE7Aj1nDZ4MeRsqdyGnGzmkbPX\u002Fview?usp=sharing) and [vocaset.pth](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1GUQBk9FqUimoT6UNgU0gyQnjGv-2_Lyp\u002Fview?usp=sharing). Put the pretrained models under `BIWI` and `VOCASET` folders, respectively. Given the audio signal,\n\n- to animate a mesh in BIWI topology, run: \n\t```\n\tpython demo.py --model_name biwi --wav_path \"demo\u002Fwav\u002Ftest.wav\" --dataset BIWI --vertice_dim 70110  --feature_dim 128 --period 25 --fps 25 --train_subjects \"F2 F3 F4 M3 M4 M5\" --test_subjects \"F1 F5 F6 F7 F8 M1 M2 M6\" --condition M3 --subject M1\n\t```\n\n- to animate a mesh in FLAME topology, run: \n\t```\n\tpython demo.py --model_name vocaset --wav_path \"demo\u002Fwav\u002Ftest.wav\" --dataset vocaset --vertice_dim 15069 --feature_dim 64 --period 30  --fps 30  --train_subjects \"FaceTalk_170728_03272_TA FaceTalk_170904_00128_TA FaceTalk_170725_00137_TA FaceTalk_170915_00223_TA FaceTalk_170811_03274_TA FaceTalk_170913_03279_TA FaceTalk_170904_03276_TA FaceTalk_170912_03278_TA\" --test_subjects \"FaceTalk_170809_00138_TA FaceTalk_170731_00024_TA\" --condition FaceTalk_170913_03279_TA --subject FaceTalk_170809_00138_TA\n\t```\n\tThis script will automatically generate the rendered videos in the `demo\u002Foutput` folder. You can also put your own test audio file (.wav format) under the `demo\u002Fwav` folder and specify the argument `--wav_path \"demo\u002Fwav\u002Ftest.wav\"` accordingly.\n\n## Training and Testing on VOCASET\n\n###  Data Preparation\n\n- Read the vertices\u002Faudio data and convert them to .npy\u002F.wav files stored in `vocaset\u002Fvertices_npy` and `vocaset\u002Fwav`:\n\n\t```\n\tcd VOCASET\n\tpython process_voca_data.py\n\t```\n\n### Training and Testing\n\n- To train the model on VOCASET and obtain the results on the testing set, run:\n\n\t```\n\tpython main.py --dataset vocaset --vertice_dim 15069 --feature_dim 64 --period 30 --train_subjects \"FaceTalk_170728_03272_TA FaceTalk_170904_00128_TA FaceTalk_170725_00137_TA FaceTalk_170915_00223_TA FaceTalk_170811_03274_TA FaceTalk_170913_03279_TA FaceTalk_170904_03276_TA FaceTalk_170912_03278_TA\" --val_subjects \"FaceTalk_170811_03275_TA FaceTalk_170908_03277_TA\" --test_subjects \"FaceTalk_170809_00138_TA FaceTalk_170731_00024_TA\"\n\t```\n\tThe results and the trained models will be saved to `vocaset\u002Fresult` and `vocaset\u002Fsave`.\n\n\n### Visualization\n\n- To visualize the results, run:\n\n\t```\n\tpython render.py --dataset vocaset --vertice_dim 15069 --fps 30\n\t```\n\tYou can find the outputs in the `vocaset\u002Foutput` folder.\n\n## Training and Testing on BIWI\n\n###  Data Preparation\n\n- (to do) Read the geometry data and convert them to .npy files stored in `BIWI\u002Fvertices_npy`.\n\n### Training and Testing\n\n- To train the model on BIWI and obtain the results on testing set, run:\n\n\t```\n\tpython main.py --dataset BIWI --vertice_dim 70110 --feature_dim 128 --period 25 --train_subjects \"F2 F3 F4 M3 M4 M5\" --val_subjects \"F2 F3 F4 M3 M4 M5\" --test_subjects \"F1 F5 F6 F7 F8 M1 M2 M6\"\n\t```\n\tThe results will be available in the `BIWI\u002Fresult` folder. The trained models will be saved in the `BIWI\u002Fsave` folder.\n\n### Visualization\n\n- To visualize the results, run:\n\n\t```\n\tpython render.py --dataset BIWI --vertice_dim 70110 --fps 25\n\t```\n\tThe rendered videos will be available in the `BIWI\u002Foutput` folder.\n\n## Using Your Own Dataset\n\n###  Data Preparation\n\n- Create the dataset directory `\u003Cdataset_dir>` in `FaceFormer` directory. \n\n- Place your vertices data (.npy format) and audio data (.wav format)  in `\u003Cdataset_dir>\u002Fvertices_npy` and `\u003Cdataset_dir>\u002Fwav` folders, respectively. \n\n- Save the templates of all subjects to a `templates.pkl` file and put it in `\u003Cdataset_dir>`, as done for BIWI and vocaset. Export an arbitary template to .ply format and put it in `\u003Cdataset_dir>\u002Ftemplates\u002F`.\n\n### Training and Testing\n\n- Create the train, val and test splits by specifying the arguments `--train_subjects`, `--val_subjects` and `--test_subjects` in `main.py`. \n\n- Train a FaceFormer model on your own dataset by specifying the arguments `--dataset` and `--vertice_dim` (number of vertices in your mesh * 3) in `main.py`. You might need to adjust `--feature_dim` and `--period` to your dataset. Run `main.py`.\n\n- The results and models will be saved to `\u003Cdataset_dir>\u002Fresult` and `\u003Cdataset_dir>\u002Fsave`.\n\n### Visualization\n\n- Specify the arguments `--dataset`, `--vertice_dim` and `--fps` in `render.py`. Run `render.py` to visualize the results. The rendered videos will be saved to `\u003Cdataset_dir>\u002Foutput`.\n\n## Citation\n\nIf you find this code useful for your work, please consider citing:\n```\n@inproceedings{faceformer2022,\ntitle={FaceFormer: Speech-Driven 3D Facial Animation with Transformers},\nauthor={Fan, Yingruo and Lin, Zhaojiang and Saito, Jun and Wang, Wenping and Komura, Taku},\nbooktitle={Proceedings of the IEEE\u002FCVF Conference on Computer Vision and Pattern Recognition (CVPR)},\nyear={2022}\n}\n```\n\n## Acknowledgement\n\nWe gratefully acknowledge ETHZ-CVL for providing the [B3D(AC)2](https:\u002F\u002Fdata.vision.ee.ethz.ch\u002Fcvl\u002Fdatasets\u002Fb3dac2.en.html) database and MPI-IS for releasing the [VOCASET](https:\u002F\u002Fvoca.is.tue.mpg.de\u002F) dataset. The implementation of wav2vec2 is built upon [huggingface-transformers](https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Ftransformers\u002Fblob\u002Fmaster\u002Fsrc\u002Ftransformers\u002Fmodels\u002Fwav2vec2\u002Fmodeling_wav2vec2.py), and the temporal bias is modified from [ALiBi](https:\u002F\u002Fgithub.com\u002Fofirpress\u002Fattention_with_linear_biases). We use [MPI-IS\u002Fmesh](https:\u002F\u002Fgithub.com\u002FMPI-IS\u002Fmesh) for mesh processing and [VOCA\u002Frendering](https:\u002F\u002Fgithub.com\u002FTimoBolkart\u002Fvoca) for rendering. We thank the authors for their excellent works. Any third-party packages are owned by their respective authors and must be used under their respective licenses.\n\n\n","## FaceFormer\n\n用于该论文的 PyTorch 实现：\n\n> **FaceFormer：基于 Transformer 的语音驱动 3D 面部动画**，***CVPR 2022***。\n>\n> 范英若、林兆江、斋藤淳、王文平、小村拓\n>\n> [[论文]](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2112.05329.pdf) [[项目页面]](https:\u002F\u002Fevelynfan.github.io\u002Faudio2face\u002F) \n\n\u003Cp align=\"center\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FEvelynFan_FaceFormer_readme_da9f2c5cd581.jpg\" width=\"70%\" \u002F>\n\u003C\u002Fp>\n\n> 给定原始音频输入和中性 3D 面部网格，我们提出的端到端基于 Transformer 的架构 FaceFormer 可以自回归地合成一系列逼真的 3D 面部运动，并精确地模拟唇部动作。\n\n## 环境\n\n- Ubuntu 18.04.1\n- Python 3.7\n- Pytorch 1.9.0\n\n## 依赖项\n\n- 请查看 `requirements.txt` 文件中的所需 Python 包。\n- ffmpeg\n- [MPI-IS\u002Fmesh](https:\u002F\u002Fgithub.com\u002FMPI-IS\u002Fmesh)\n\n## 数据\n\n### VOCASET\n\n请从 [https:\u002F\u002Fvoca.is.tue.mpg.de\u002F](https:\u002F\u002Fvoca.is.tue.mpg.de\u002F) 获取 VOCASET 数据。将下载的文件 `data_verts.npy`、`raw_audio_fixed.pkl`、`templates.pkl` 和 `subj_seq_to_idx.pkl` 放入 `VOCASET` 文件夹中。从 [voca](https:\u002F\u002Fgithub.com\u002FTimoBolkart\u002Fvoca\u002Ftree\u002Fmaster\u002Ftemplate) 下载 “FLAME_sample.ply”，并将其放入 `VOCASET\u002Ftemplates` 中。\n\n### BIWI\n\n请从 [Biwi 3D Audiovisual Corpus of Affective Communication](https:\u002F\u002Fdata.vision.ee.ethz.ch\u002Fcvl\u002Fdatasets\u002Fb3dac2.en.html) 获取 BIWI 数据集。该数据集包含以下子文件夹：\n\n- ‘faces’ 包含用于跟踪面部几何形状的二进制 (.vl) 文件。\n- ‘rigid_scans’ 包含以 .obj 文件形式存储的模板。\n- ‘audio’ 包含以 .wav 文件形式存储的音频信号。\n\n将 ‘faces’ 和 ‘rigid_scans’ 文件夹放入 `BIWI`，并将 wav 文件放入 `BIWI\u002Fwav`。\n\n## 演示\n\n从 [biwi.pth](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1WR1P25EE7Aj1nDZ4MeRsqdyGnGzmkbPX\u002Fview?usp=sharing) 和 [vocaset.pth](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1GUQBk9FqUimoT6UNgU0gyQnjGv-2_Lyp\u002Fview?usp=sharing) 下载预训练模型。分别将预训练模型放入 `BIWI` 和 `VOCASET` 文件夹中。给定音频信号，\n\n- 若要为 BIWI 拓扑中的网格制作动画，请运行：\n\t```\n\tpython demo.py --model_name biwi --wav_path \"demo\u002Fwav\u002Ftest.wav\" --dataset BIWI --vertice_dim 70110  --feature_dim 128 --period 25 --fps 25 --train_subjects \"F2 F3 F4 M3 M4 M5\" --test_subjects \"F1 F5 F6 F7 F8 M1 M2 M6\" --condition M3 --subject M1\n\t```\n\n- 若要为 FLAME 拓扑中的网格制作动画，请运行：\n\t```\n\tpython demo.py --model_name vocaset --wav_path \"demo\u002Fwav\u002Ftest.wav\" --dataset vocaset --vertice_dim 15069 --feature_dim 64 --period 30  --fps 30  --train_subjects \"FaceTalk_170728_03272_TA FaceTalk_170904_00128_TA FaceTalk_170725_00137_TA FaceTalk_170915_00223_TA FaceTalk_170811_03274_TA FaceTalk_170913_03279_TA FaceTalk_170904_03276_TA FaceTalk_170912_03278_TA\" --test_subjects \"FaceTalk_170809_00138_TA FaceTalk_170731_00024_TA\" --condition FaceTalk_170913_03279_TA --subject FaceTalk_170809_00138_TA\n\t```\n该脚本会自动在 `demo\u002Foutput` 文件夹中生成渲染后的视频。您也可以将自己的测试音频文件（.wav 格式）放入 `demo\u002Fwav` 文件夹，并相应地指定 `--wav_path \"demo\u002Fwav\u002Ftest.wav\"` 参数。\n\n## 在 VOCASET 上的训练与测试\n\n### 数据准备\n\n- 读取顶点\u002F音频数据，并将其转换为存储在 `vocaset\u002Fvertices_npy` 和 `vocaset\u002Fwav` 中的 .npy\u002F.wav 文件：\n\n\t```\n\tcd VOCASET\n\tpython process_voca_data.py\n\t```\n\n### 训练与测试\n\n- 若要在 VOCASET 上训练模型并在测试集上获得结果，请运行：\n\n\t```\n\tpython main.py --dataset vocaset --vertice_dim 15069 --feature_dim 64 --period 30 --train_subjects \"FaceTalk_170728_03272_TA FaceTalk_170904_00128_TA FaceTalk_170725_00137_TA FaceTalk_170915_00223_TA FaceTalk_170811_03274_TA FaceTalk_170913_03279_TA FaceTalk_170904_03276_TA FaceTalk_170912_03278_TA\" --val_subjects \"FaceTalk_170811_03275_TA FaceTalk_170908_03277_TA\" --test_subjects \"FaceTalk_170809_00138_TA FaceTalk_170731_00024_TA\"\n\t```\n结果和训练好的模型将保存到 `vocaset\u002Fresult` 和 `vocaset\u002Fsave` 中。\n\n\n### 可视化\n\n- 若要可视化结果，请运行：\n\n\t```\n\tpython render.py --dataset vocaset --vertice_dim 15069 --fps 30\n\t```\n您可以在 `vocaset\u002Foutput` 文件夹中找到输出结果。\n\n## 在 BIWI 上的训练与测试\n\n### 数据准备\n\n- （待完成）读取几何数据，并将其转换为存储在 `BIWI\u002Fvertices_npy` 中的 .npy 文件。\n\n### 训练与测试\n\n- 若要在 BIWI 上训练模型并在测试集上获得结果，请运行：\n\n\t```\n\tpython main.py --dataset BIWI --vertice_dim 70110 --feature_dim 128 --period 25 --train_subjects \"F2 F3 F4 M3 M4 M5\" --val_subjects \"F2 F3 F4 M3 M4 M5\" --test_subjects \"F1 F5 F6 F7 F8 M1 M2 M6\"\n\t```\n结果将出现在 `BIWI\u002Fresult` 文件夹中。训练好的模型将保存到 `BIWI\u002Fsave` 文件夹中。\n\n### 可视化\n\n- 若要可视化结果，请运行：\n\n\t```\n\tpython render.py --dataset BIWI --vertice_dim 70110 --fps 25\n\t```\n渲染后的视频将出现在 `BIWI\u002Foutput` 文件夹中。\n\n## 使用您自己的数据集\n\n### 数据准备\n\n- 在 `FaceFormer` 目录中创建数据集目录 `\u003Cdataset_dir>`。\n\n- 将您的顶点数据（.npy 格式）和音频数据（.wav 格式）分别放入 `\u003Cdataset_dir>\u002Fvertices_npy` 和 `\u003Cdataset_dir>\u002Fwav` 文件夹中。\n\n- 将所有受试者的模板保存到一个 `templates.pkl` 文件中，并将其放入 `\u003Cdataset_dir>`，就像处理 BIWI 和 VOCASET 一样。将任意模板导出为 .ply 格式，并将其放入 `\u003Cdataset_dir>\u002Ftemplates\u002F`。\n\n### 训练与测试\n\n- 通过在 `main.py` 中指定 `--train_subjects`、`--val_subjects` 和 `--test_subjects` 参数来划分训练、验证和测试集。\n\n- 通过在 `main.py` 中指定 `--dataset` 和 `--vertice_dim`（您网格中的顶点数乘以 3）参数，在您自己的数据集上训练 FaceFormer 模型。您可能需要根据自己的数据集调整 `--feature_dim` 和 `--period`。然后运行 `main.py`。\n\n- 结果和模型将保存到 `\u003Cdataset_dir>\u002Fresult` 和 `\u003Cdataset_dir>\u002Fsave` 中。\n\n### 可视化\n\n- 在 `render.py` 中指定 `--dataset`、`--vertice_dim` 和 `--fps` 参数。运行 `render.py` 来可视化结果。渲染后的视频将保存到 `\u003Cdataset_dir>\u002Foutput`。\n\n## 引用\n\n如果您发现此代码对您的工作有所帮助，请考虑引用：\n```\n@inproceedings{faceformer2022,\ntitle={FaceFormer: Speech-Driven 3D Facial Animation with Transformers},\nauthor={Fan, Yingruo and Lin, Zhaojiang and Saito, Jun and Wang, Wenping and Komura, Taku},\nbooktitle={Proceedings of the IEEE\u002FCVF Conference on Computer Vision and Pattern Recognition (CVPR)},\nyear={2022}\n}\n```\n\n## 致谢\n\n我们衷心感谢 ETHZ-CVL 提供 [B3D(AC)2](https:\u002F\u002Fdata.vision.ee.ethz.ch\u002Fcvl\u002Fdatasets\u002Fb3dac2.en.html) 数据库，以及 MPI-IS 发布 [VOCASET](https:\u002F\u002Fvoca.is.tue.mpg.de\u002F) 数据集。wav2vec2 的实现基于 [huggingface-transformers](https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Ftransformers\u002Fblob\u002Fmaster\u002Fsrc\u002Ftransformers\u002Fmodels\u002Fwav2vec2\u002Fmodeling_wav2vec2.py)，时间偏置则参考了 [ALiBi](https:\u002F\u002Fgithub.com\u002Fofirpress\u002Fattention_with_linear_biases)。我们在网格处理方面使用了 [MPI-IS\u002Fmesh](https:\u002F\u002Fgithub.com\u002FMPI-IS\u002Fmesh)，在渲染方面则采用了 [VOCA\u002Frendering](https:\u002F\u002Fgithub.com\u002FTimoBolkart\u002Fvoca)。在此向各位作者致以诚挚的谢意，感谢他们所做出的杰出工作。所有第三方软件包均归其各自作者所有，使用时须遵守相应的许可协议。","# FaceFormer 快速上手指南\n\nFaceFormer 是一个基于 Transformer 的端到端架构，能够根据原始音频输入和中性的 3D 人脸网格，自回归地合成具有准确口型的逼真 3D 面部动画序列。\n\n## 1. 环境准备\n\n### 系统要求\n- **操作系统**: Ubuntu 18.04.1 (推荐)\n- **Python**: 3.7\n- **PyTorch**: 1.9.0\n\n### 前置依赖\n在开始之前，请确保系统已安装以下工具：\n- `ffmpeg`\n- Git\n\n## 2. 安装步骤\n\n### 2.1 克隆项目\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FEvelynFan\u002FFaceFormer.git\ncd FaceFormer\n```\n\n### 2.2 创建虚拟环境并安装依赖\n建议使用 Conda 或 venv 创建独立的 Python 3.7 环境。\n\n```bash\n# 创建并激活环境 (以 conda 为例)\nconda create -n faceformer python=3.7\nconda activate faceformer\n\n# 安装 PyTorch 1.9.0 (根据 CUDA 版本选择，此处为通用示例)\npip install torch==1.9.0 torchvision==0.10.0 torchaudio==0.9.0\n\n# 安装项目所需 Python 包\npip install -r requirements.txt\n\n# 安装 MPI-IS\u002Fmesh 依赖\npip install git+https:\u002F\u002Fgithub.com\u002FMPI-IS\u002Fmesh.git\n```\n\n> **提示**：国内用户可使用清华源加速安装：\n> `pip install -r requirements.txt -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple`\n\n## 3. 基本使用 (Demo)\n\n本部分演示如何使用预训练模型，通过一段音频驱动 3D 人脸网格生成动画视频。\n\n### 3.1 下载预训练模型与测试数据\n你需要从 Google Drive 下载预训练权重，并准备测试音频。\n\n1. 下载模型：\n   - **BIWI 拓扑**: [biwi.pth](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1WR1P25EE7Aj1nDZ4MeRsqdyGnGzmkbPX\u002Fview?usp=sharing) -> 放入 `BIWI\u002F` 文件夹\n   - **VOCASET (FLAME) 拓扑**: [vocaset.pth](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1GUQBk9FqUimoT6UNgU0gyQnjGv-2_Lyp\u002Fview?usp=sharing) -> 放入 `VOCASET\u002F` 文件夹\n\n2. 确保测试音频文件位于 `demo\u002Fwav\u002F` 目录下（例如 `test.wav`）。若无，可放入任意 `.wav` 格式的音频文件。\n\n### 3.2 运行演示脚本\n\n#### 方案 A：驱动 FLAME 拓扑网格 (推荐，通用性强)\n此命令将使用 VOCASET 预训练模型生成动画。\n\n```bash\npython demo.py --model_name vocaset --wav_path \"demo\u002Fwav\u002Ftest.wav\" --dataset vocaset --vertice_dim 15069 --feature_dim 64 --period 30  --fps 30  --train_subjects \"FaceTalk_170728_03272_TA FaceTalk_170904_00128_TA FaceTalk_170725_00137_TA FaceTalk_170915_00223_TA FaceTalk_170811_03274_TA FaceTalk_170913_03279_TA FaceTalk_170904_03276_TA FaceTalk_170912_03278_TA\" --test_subjects \"FaceTalk_170809_00138_TA FaceTalk_170731_00024_TA\" --condition FaceTalk_170913_03279_TA --subject FaceTalk_170809_00138_TA\n```\n\n#### 方案 B：驱动 BIWI 拓扑网格\n此命令将使用 BIWI 预训练模型生成动画。\n\n```bash\npython demo.py --model_name biwi --wav_path \"demo\u002Fwav\u002Ftest.wav\" --dataset BIWI --vertice_dim 70110  --feature_dim 128 --period 25 --fps 25 --train_subjects \"F2 F3 F4 M3 M4 M5\" --test_subjects \"F1 F5 F6 F7 F8 M1 M2 M6\" --condition M3 --subject M1\n```\n\n### 3.3 查看结果\n脚本运行完成后，生成的渲染视频将自动保存在以下目录：\n- **输出路径**: `demo\u002Foutput\u002F`\n\n---\n*注：若需使用自定义数据集进行训练或测试，请参考原文档 \"Using Your Own Dataset\" 章节配置数据格式与参数。*","某独立游戏开发团队正在为一款叙事驱动的角色扮演游戏制作过场动画，需要让数百个 NPC 角色根据配音台词实时生成自然的口型和面部表情。\n\n### 没有 FaceFormer 时\n- 动画师必须手动逐帧调整 3D 模型的面部顶点，或使用传统的混合形状（Blendshapes）技术，导致口型与语音节奏经常不同步，出现“对不上嘴”的尴尬画面。\n- 针对不同语言或情感色彩的台词，需要重复录制动作捕捉数据或手动关键帧，制作周期长达数周，严重拖慢版本迭代进度。\n- 难以处理复杂的连续语流，传统方法生成的表情往往僵硬机械，缺乏说话时眉眼联动的微表情，导致角色缺乏生命力。\n- 每次修改剧本或重新配音后，整个面部动画流程需要推倒重来，人力成本极高且无法实现动态实时渲染。\n\n### 使用 FaceFormer 后\n- 只需输入原始音频文件和中性 3D 人脸网格，FaceFormer 即可基于 Transformer 架构自回归地生成高精度 3D 面部运动序列，唇形与语音完美同步。\n- 支持端到端自动化处理，将原本数周的制作时间缩短至几分钟，开发人员可快速为大量 NPC 批量生成差异化动画，显著提升生产效率。\n- 生成的动画不仅包含准确的口型，还能自然还原说话时的眉毛挑动、脸颊肌肉变化等细微神态，大幅提升了角色的真实感和沉浸度。\n- 具备极强的灵活性，当剧本变更或更换配音时，仅需替换音频文件重新运行脚本，即可即时更新动画，完美适配敏捷开发流程。\n\nFaceFormer 通过将语音直接转化为逼真的 3D 面部动画，彻底解决了传统手工制作效率低、同步差、成本高的痛点，让高质量的角色表演变得触手可及。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FEvelynFan_FaceFormer_e65448fd.png","EvelynFan","Evelyn","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FEvelynFan_f08510fa.png",null,"The University of Hong Kong","Hong Kong","evelynfan.github.io","https:\u002F\u002Fgithub.com\u002FEvelynFan",[85],{"name":86,"color":87,"percentage":88},"Python","#3572A5",100,909,147,"2026-04-01T13:08:33","MIT",4,"Linux (Ubuntu 18.04.1)","未说明 (基于 PyTorch 实现，通常建议配备支持 CUDA 的 NVIDIA GPU 以加速训练和推理)","未说明",{"notes":98,"python":99,"dependencies":100},"该项目明确指定在 Ubuntu 18.04.1 环境下测试。需要手动下载 VOCASET 或 BIWI 数据集以及预训练模型文件。依赖中包含非纯 Python 库 'MPI-IS\u002Fmesh'，可能需要额外编译步骤。音频处理依赖系统安装的 ffmpeg 工具。","3.7",[101,102,103,104],"PyTorch 1.9.0","ffmpeg","MPI-IS\u002Fmesh","requirements.txt 中列出的其他 Python 包",[52,13,55,54,14],[107,108,109,110,111,112,113,114,115,116],"computer-vision","computer-graphics","deep-learning","facial-animation","speech","3d-face","3d-models","pytorch-implementation","lip-animation","facial-expressions","2026-03-27T02:49:30.150509","2026-04-06T09:24:04.791750",[120,125,130,134,139,144],{"id":121,"question_zh":122,"answer_zh":123,"source_url":124},18659,"如何处理超过 360 秒的长音频文件？","可以通过增加 max_seq_len 来处理，但这会导致显存占用过高。推荐的解决方案是使用滑动窗口（sliding window）技术。为了减少窗口拼接时的抖动（jitter），可以取最后一个窗口的一部分并进行平均处理。虽然将预测的网格顶点嵌入（vertice_emb）传递到下一个窗口在理论上可行，但使用滑动窗口加平均的方法通常效果更好。","https:\u002F\u002Fgithub.com\u002FEvelynFan\u002FFaceFormer\u002Fissues\u002F48",{"id":126,"question_zh":127,"answer_zh":128,"source_url":129},18660,"如何在 Windows 系统上成功运行该项目？","在 Windows 上运行需要特别注意以下步骤：\n1. 安装特定版本的 transformers：pip install transformers==4.6.1\n2. 安装 pyopengl：不要直接使用 pip install，需从 Gohlke 网站下载 .whl 文件安装，且必须在安装 pyrender 之前完成，否则会被覆盖。\n3. 安装 boost 和 mesh：按照官方指引编译安装 mesh。\n4. 修改 demo.py：注释掉 os.environ['PYOPENGL_PLATFORM'] = 'osmesa' 这一行，让 pyrender 使用 pyglet 进行离屏渲染，以避免找不到 osmesa 的错误。","https:\u002F\u002Fgithub.com\u002FEvelynFan\u002FFaceFormer\u002Fissues\u002F67",{"id":131,"question_zh":132,"answer_zh":133,"source_url":129},18661,"生成的视频没有声音怎么办？","这通常是因为音视频未正确合并。可以参考 demo.py 中的命令手动合并：使用 ffmpeg 将临时生成的视频文件（tmp_file）和输入音频文件（wav_path）合并为最终视频。命令示例：cmd='ffmpeg -i %s -i %s %s' %(tmp_file, wav_path, video_fname)。你可以在 Python 脚本中调用该命令，或在命令行手动执行。",{"id":135,"question_zh":136,"answer_zh":137,"source_url":138},18662,"遇到 'cannot import name OSMesaCreateContextAttribs' 渲染错误如何解决？","这是 PyOpenGL 版本或环境配置问题，可尝试以下方案：\n1. 升级 PyOpenGL：pip install --upgrade PyOpenGL PyOpenGL_accelerate（有用户反馈升级到 3.1.4 版本有效，即使警告说不兼容）。\n2. 设置环境变量：在代码中添加 os.environ['PYOPENGL_PLATFORM'] = 'egl'，或在终端设置 setenv PYOPENGL_PLATFORM egl（Linux\u002FMac）或 set PYOPENGL_PLATFORM=egl（Windows），将渲染后端从 osmesa 改为 egl。","https:\u002F\u002Fgithub.com\u002FEvelynFan\u002FFaceFormer\u002Fissues\u002F7",{"id":140,"question_zh":141,"answer_zh":142,"source_url":143},18663,"如何获取论文中的评估指标（如最大 L2 误差）？","训练时使用 MSE loss，但在评估阶段，应计算所有唇部顶点的最大 L2 误差（maximal L2 error）作为口型同步的量化指标。具体做法是在训练结束后，对模型预测结果逐帧计算唇部顶点的最大 L2 误差，然后求所有帧的平均值。不过作者指出，对于此任务，动画的视觉质量和自然度（定性评估）比单纯的数值指标更重要。","https:\u002F\u002Fgithub.com\u002FEvelynFan\u002FFaceFormer\u002Fissues\u002F14",{"id":145,"question_zh":146,"answer_zh":147,"source_url":148},18664,"训练时的 Loss 一开始就非常小（如 0.0000014），这正常吗？","这是正常现象。训练过程中使用的是 MSE loss，其数值本身较小。作者建议不要仅依赖 Loss 数值判断模型效果，而应关注定性评估（视觉质量）。如果需要量化指标，可以使用预测误差的范数（norm on prediction error）或在测试集上计算最大 L2 误差。模型的收敛性和效果主要通过生成动画的视觉逼真度来衡量。","https:\u002F\u002Fgithub.com\u002FEvelynFan\u002FFaceFormer\u002Fissues\u002F12",[]]