[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-google--nerfies":3,"tool-google--nerfies":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 真正成长为懂上",138956,2,"2026-04-05T11:33:21",[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":69,"readme_en":70,"readme_zh":71,"quickstart_zh":72,"use_case_zh":73,"hero_image_url":74,"owner_login":75,"owner_name":76,"owner_avatar_url":77,"owner_bio":78,"owner_company":79,"owner_location":79,"owner_email":80,"owner_twitter":81,"owner_website":82,"owner_url":83,"languages":84,"stars":93,"forks":94,"last_commit_at":95,"license":96,"difficulty_score":10,"env_os":97,"env_gpu":98,"env_ram":99,"env_deps":100,"category_tags":111,"github_topics":112,"view_count":23,"oss_zip_url":79,"oss_zip_packed_at":79,"status":16,"created_at":118,"updated_at":119,"faqs":120,"releases":156},1343,"google\u002Fnerfies","nerfies","This is the code for Deformable Neural Radiance Fields, a.k.a. Nerfies.","Nerfies 能把一段普通手机或相机拍下的自拍视频，变成可随意旋转、放大、还能让表情“动起来”的 3D 人像。它解决了传统 NeRF 只能拍静态场景的痛点，通过“可变形神经辐射场”技术，把人脸的微小动作也一起学进模型里，结果就像把真人“封印”进了 3D 空间。  \n研究人员、图形开发者或想尝鲜的极客都能用：官方准备了 Google Colab 一键 Demo，没显卡也能在云端跑；想追求高清效果，本地 8 张 GPU 训练两三天即可。配置用 Gin 描述，改两行参数就能切换分辨率或 GPU 数量。  \n如果你手里只有一段 30 秒的视频，却想做出可交互的 3D 头像，Nerfies 值得一试。","# Nerfies: Deformable Neural Radiance Fields\n\nThis is the code for Nerfies: Deformable Neural Radiance Fields.\n\n * [Project Page](https:\u002F\u002Fnerfies.github.io)\n * [Paper](https:\u002F\u002Farxiv.org\u002Fabs\u002F2011.12948)\n * [Video](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=MrKrnHhk8IA)\n \nThis codebase is implemented using [JAX](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fjax), \nbuilding on [JaxNeRF](https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fgoogle-research\u002Ftree\u002Fmaster\u002Fjaxnerf).\n\nThis repository has been updated to reflect the version used for our ICCV 2021 submission.\n\n## Demo\n\nWe provide an easy-to-get-started demo using Google Colab!\n\nThese Colabs will allow you to train a basic version of our method using \nCloud TPUs (or GPUs) on Google Colab. \n\nNote that due to limited compute resources available, these are not the fully \nfeatured models. If you would like to train a fully featured Nerfie, please \nrefer to the instructions below on how to train on your own machine.\n\n| Description      | Link |\n| ----------- | ----------- |\n| Process a video into a Nerfie dataset| [![Open In Colab](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fgoogle\u002Fnerfies\u002Fblob\u002Fmain\u002Fnotebooks\u002FNerfies_Capture_Processing.ipynb)|\n| Train a Nerfie| [![Open In Colab](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fgoogle\u002Fnerfies\u002Fblob\u002Fmain\u002Fnotebooks\u002FNerfies_Training.ipynb)|\n| Render a Nerfie video| [![Open In Colab](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fgoogle\u002Fnerfies\u002Fblob\u002Fmain\u002Fnotebooks\u002FNerfies_Render_Video.ipynb)|\n \n## Setup\nThe code can be run under any environment with Python 3.8 and above.\n(It may run with lower versions, but we have not tested it).\n\nWe recommend using [Miniconda](https:\u002F\u002Fdocs.conda.io\u002Fen\u002Flatest\u002Fminiconda.html) and setting up an environment:\n\n    conda create --name nerfies python=3.8\n\nNext, install the required packages:\n\n    pip install -r requirements.txt\n    \nInstall the appropriate JAX distribution for your environment by  [following the instructions here](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fjax#installation). For example:\n\n    # For CUDA version 11.0\n    pip install --upgrade \"jax[cuda111]\" -f https:\u002F\u002Fstorage.googleapis.com\u002Fjax-releases\u002Fjax_releases.html\n\n\n## Training\nAfter preparing a dataset, you can train a Nerfie by running:\n\n    export DATASET_PATH=\u002Fpath\u002Fto\u002Fdataset\n    export EXPERIMENT_PATH=\u002Fpath\u002Fto\u002Fsave\u002Fexperiment\u002Fto\n    python train.py \\\n        --data_dir $DATASET_PATH \\\n        --base_folder $EXPERIMENT_PATH \\\n        --gin_configs configs\u002Ftest_vrig.gin\n \nTo plot telemetry to Tensorboard and render checkpoints on the fly, also\nlaunch an evaluation job by running:\n\n    python eval.py \\\n        --data_dir $DATASET_PATH \\\n        --base_folder $EXPERIMENT_PATH \\\n        --gin_configs configs\u002Ftest_vrig.gin\n\nThe two jobs should use a mutually exclusive set of GPUs. This division allows the\ntraining job to run without having to stop for evaluation.\n\n## Configuration\n * We use [Gin](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fgin-config) for configuration.\n * We provide a couple preset configurations.\n * Please refer to `config.py` for documentation on what each configuration does.\n * Preset configs:\n    - `gpu_vrig_paper.gin`: This is the configuration we used to generate the table in the paper. It requires 8 GPUs for training.\n    - `gpu_fullhd.gin`: This is a high-resolution model and will take around 3 days to train on 8 GPUs.\n    - `gpu_quarterhd.gin`: This is a low-resolution model and will take around 14 hours to train on 8 GPUs.\n    - `test_local.gin`: This is a test configuration to see if the code runs. It probably will not result in a good looking result.\n    - `test_vrig.gin`: This is a test configuration to see if the code runs for validation rig captures. It probably will not result in a good looking result.\n * Training on fewer GPUs will require tuning of the batch size and learning rates. We've provided an example configuration for 4 GPUs in `gpu_quarterhd_4gpu.gin` but we have not tested it, so please only use it as a reference.\n\n## Datasets\nA dataset is a directory with the following structure:\n\n    dataset\n        ├── camera\n        │   └── ${item_id}.json\n        ├── camera-paths\n        ├── rgb\n        │   ├── ${scale}x\n        │   └── └── ${item_id}.png\n        ├── metadata.json\n        ├── points.npy\n        ├── dataset.json\n        └── scene.json\n\nAt a high level, a dataset is simply the following:\n * A collection of images (e.g., from a video).\n * Camera parameters for each image.\n \nWe have a unique identifier for each image which we call `item_id`, and this is\nused to match the camera and images. An `item_id` can be any string, but typically\nit is some alphanumeric string such as `000054`.\n\n### `camera`\n\n * This directory contains cameras corresponding to each image.\n * We use a camera model identical to the [OpenCV camera model](https:\u002F\u002Fdocs.opencv.org\u002Fmaster\u002Fdc\u002Fdbb\u002Ftutorial_py_calibration.html), which is also supported by COLMAP.\n * Each camera is a serialized version of the `Camera` class defined in `camera.py` and looks like this:\n\n```javascript\n{\n  \u002F\u002F A 3x3 world-to-camera rotation matrix representing the camera orientation.\n  \"orientation\": [\n    [0.9839, -0.0968, 0.1499],\n    [-0.0350, -0.9284, -0.3699],\n    [0.1749, 0.358, -0.9168]\n  ],\n  \u002F\u002F The 3D position of the camera in world-space.\n  \"position\": [-0.3236, -3.26428, 5.4160],\n  \u002F\u002F The focal length of the camera.\n  \"focal_length\": 2691,\n  \u002F\u002F The principle point [u_0, v_0] of the camera.\n  \"principal_point\": [1220, 1652],\n  \u002F\u002F The skew of the camera.\n  \"skew\": 0.0,\n  \u002F\u002F The aspect ratio for the camera pixels.\n  \"pixel_aspect_ratio\": 1.0,\n  \u002F\u002F Parameters for the radial distortion of the camera.\n  \"radial_distortion\": [0.1004, -0.2090, 0.0],\n  \u002F\u002F Parameters for the tangential distortion of the camera.\n  \"tangential\": [0.001109, -2.5733e-05],\n  \u002F\u002F The image width and height in pixels.\n  \"image_size\": [2448, 3264]\n}\n```\n\n### `camera-paths`\n * This directory contains test-time camera paths which can be used to render videos.\n * Each sub-directory in this path should contain a sequence of JSON files. \n * The naming scheme does not matter, but the cameras will be sorted by their filenames.\n\n### `rgb`\n * This directory contains images at various scales.\n * Each subdirectory should be named `${scale}x` where `${scale}` is an integer scaling factor. For example, `1x` would contain the original images while `4x` would contain images a quarter of the size.\n * We assume the images are in PNG format.\n * It is important the scaled images are integer factors of the original to allow the use of area relation when scaling the images to prevent Moiré. A simple way to do this is to simply trim the borders of the image to be divisible by the maximum scale factor you want.\n\n### `metadata.json`\n * This defines the 'metadata' IDs used for embedding lookups.\n * Contains a dictionary of the following format:\n\n```javascript\n{\n    \"${item_id}\": {\n        \u002F\u002F The embedding ID used to fetch the deformation latent code\n        \u002F\u002F passed to the deformation field.\n        \"warp_id\": 0,\n        \u002F\u002F The embedding ID used to fetch the appearance latent code\n        \u002F\u002F which is passed to the second branch of the template NeRF.\n        \"appearance_id\": 0,\n        \u002F\u002F For validation rig datasets, we use the camera ID instead\n        \u002F\u002F of the appearance ID. For example, this would be '0' for the\n        \u002F\u002F left camera and '1' for the right camera. This can potentially\n        \u002F\u002F also be used for multi-view setups as well.\n        \"camera_id\": 0\n    },\n    ...\n},\n```\n### `scene.json`\n * Contains information about how we will parse the scene.\n * See comments inline.\n \n```javascript\n{\n  \u002F\u002F The scale factor we will apply to the pointcloud and cameras. This is\n  \u002F\u002F important since it controls what scale is used when computing the positional\n  \u002F\u002F encoding.\n  \"scale\": 0.0387243672920458,\n  \u002F\u002F Defines the origin of the scene. The scene will be translated such that\n  \u002F\u002F this point becomes the origin. Defined in unscaled coordinates.\n  \"center\": [\n    1.1770838526103944e-08,\n    -2.58235339289195,\n    -1.29117656263135\n  ],\n  \u002F\u002F The distance of the near plane from the camera center in scaled coordinates.\n  \"near\": 0.02057418950149491,\n  \u002F\u002F The distance of the far plane from the camera center in scaled coordinates.\n  \"far\": 0.8261601717667288\n}\n```\n \n### `dataset.json`\n * Defines the training\u002Fvalidation split of the dataset.\n * See inline comments:\n \n```javascript\n{\n  \u002F\u002F The total number of images in the dataset.\n  \"count\": 114,\n  \u002F\u002F The total number of training images (exemplars) in the dataset.\n  \"num_exemplars\": 57,\n  \u002F\u002F A list containins all item IDs in the dataset.\n  \"ids\": [...],\n  \u002F\u002F A list containing all training item IDs in the dataset.\n  \"train_ids\": [...],\n  \u002F\u002F A list containing all validation item IDs in the dataset.\n  \u002F\u002F This should be mutually exclusive with `train_ids`.\n  \"val_ids\": [...],\n}\n```\n\n### `points.npy`\n\n * A numpy file containing a single array of size `(N,3)` containing the background points.\n * This is required if you want to use the background regularization loss.\n \n## Citing\nIf you find our work useful, please consider citing:\n```BibTeX\n@article{park2021nerfies\n  author    = {Park, Keunhong \n               and Sinha, Utkarsh \n               and Barron, Jonathan T. \n               and Bouaziz, Sofien \n               and Goldman, Dan B \n               and Seitz, Steven M. \n               and Martin-Brualla, Ricardo},\n  title     = {Nerfies: Deformable Neural Radiance Fields},\n  journal   = {ICCV},\n  year      = {2021},\n}\n```\n","# Nerfies：可变形神经辐射场\n\n这是Nerfies：可变形神经辐射场的代码。\n\n* [项目页面](https:\u002F\u002Fnerfies.github.io)\n* [论文](https:\u002F\u002Farxiv.org\u002Fabs\u002F2011.12948)\n* [视频](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=MrKrnHhk8IA)\n\n该代码库基于[JAX](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fjax)实现，并以[JaxNeRF](https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fgoogle-research\u002Ftree\u002Fmaster\u002Fjaxnerf)为基础。\n\n本仓库已更新，以反映我们在ICCV 2021投稿中所使用的版本。\n\n## 演示\n\n我们提供了一个易于上手的演示，使用Google Colab即可运行！\n\n这些Colab笔记本将允许您在Google Colab上使用Cloud TPU（或GPU）训练我们方法的基础版本。\n\n请注意，由于可用计算资源有限，这些并非功能完整的模型。如果您希望训练一个功能完整的Nerfie，请参阅下方关于如何在您自己的机器上进行训练的说明。\n\n| 描述      | 链接 |\n| ----------- | ----------- |\n| 将视频处理为Nerfie数据集| [![在Colab中打开](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fgoogle\u002Fnerfies\u002Fblob\u002Fmain\u002Fnotebooks\u002FNerfies_Capture_Processing.ipynb)|\n| 训练Nerfie| [![在Colab中打开](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fgoogle\u002Fnerfies\u002Fblob\u002Fmain\u002Fnotebooks\u002FNerfies_Training.ipynb)|\n| 渲染Nerfie视频| [![在Colab中打开](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fgoogle\u002Fnerfies\u002Fblob\u002Fmain\u002Fnotebooks\u002FNerfies_Render_Video.ipynb)|\n \n## 设置\n该代码可在任何安装了Python 3.8及以上版本的环境中运行。\n\n（虽然也可能在较低版本下运行，但我们尚未测试过。）\n\n我们建议使用[Miniconda](https:\u002F\u002Fdocs.conda.io\u002Fen\u002Flatest\u002Fminiconda.html)并创建一个环境：\n\n    conda create --name nerfies python=3.8\n\n接下来，安装所需的软件包：\n\n    pip install -r requirements.txt\n    \n根据您的环境，按照[此处的说明](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fjax#installation)安装合适的JAX发行版。例如：\n\n    # 对于CUDA 11.0版本\n    pip install --upgrade \"jax[cuda111]\" -f https:\u002F\u002Fstorage.googleapis.com\u002Fjax-releases\u002Fjax_releases.html\n\n\n## 训练\n准备好数据集后，您可以通过运行以下命令来训练Nerfie：\n\n    export DATASET_PATH=\u002Fpath\u002Fto\u002Fdataset\n    export EXPERIMENT_PATH=\u002Fpath\u002Fto\u002Fsave\u002Fexperiment\u002Fto\n    python train.py \\\n        --data_dir $DATASET_PATH \\\n        --base_folder $EXPERIMENT_PATH \\\n        --gin_configs configs\u002Ftest_vrig.gin\n \n为了将遥测数据绘制到TensorBoard并实时渲染检查点，您还需要通过运行以下命令启动评估任务：\n\n    python eval.py \\\n        --data_dir $DATASET_PATH \\\n        --base_folder $EXPERIMENT_PATH \\\n        --gin_configs configs\u002Ftest_vrig.gin\n\n这两个任务应使用互斥的GPU集合。这种分工使得训练任务可以在不中断的情况下进行评估。\n\n## 配置\n * 我们使用[Gin](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fgin-config)进行配置。\n * 我们提供了几个预设配置。\n * 请参阅`config.py`以了解每个配置的具体作用。\n * 预设配置：\n    - `gpu_vrig_paper.gin`: 这是我们用于生成论文中表格的配置。训练时需要8块GPU。\n    - `gpu_fullhd.gin`: 这是一个高分辨率模型，在8块GPU上训练大约需要3天。\n    - `gpu_quarterhd.gin`: 这是一个低分辨率模型，在8块GPU上训练大约需要14小时。\n    - `test_local.gin`: 这是一个测试配置，用于查看代码是否能正常运行。它可能不会产生很好的效果。\n    - `test_vrig.gin`: 这是一个测试配置，用于验证针对验证装置采集的数据是否能正常运行。它可能也不会产生很好的效果。\n * 在较少的GPU上训练时，需要调整批量大小和学习率。我们在`gpu_quarterhd_4gpu.gin`中提供了一个适用于4块GPU的示例配置，但尚未进行测试，因此请仅将其作为参考。\n\n## 数据集\n数据集是一个具有以下结构的目录：\n\n    dataset\n        ├── camera\n        │   └── ${item_id}.json\n        ├── camera-paths\n        ├── rgb\n        │   ├── ${scale}x\n        │   └── └── ${item_id}.png\n        ├── metadata.json\n        ├── points.npy\n        ├── dataset.json\n        └── scene.json\n\n从高层次来看，数据集就是以下内容：\n * 一组图像（例如来自一段视频）。\n * 每张图像的相机参数。\n \n我们为每张图像分配一个唯一标识符，称为`item_id`，用于匹配相机与图像。`item_id`可以是任意字符串，但通常是一些字母数字组合，如`000054`。\n\n### `camera`\n\n * 该目录包含与每张图像相对应的相机。\n * 我们使用与[OpenCV相机模型](https:\u002F\u002Fdocs.opencv.org\u002Fmaster\u002Fdc\u002Fdbb\u002Ftutorial_py_calibration.html)相同的相机模型，COLMAP也支持该模型。\n * 每个相机都是`camera.py`中定义的`Camera`类的序列化版本，格式如下：\n\n```javascript\n{\n  \u002F\u002F 表示相机方向的3x3世界到相机旋转矩阵。\n  \"orientation\": [\n    [0.9839, -0.0968, 0.1499],\n    [-0.0350, -0.9284, -0.3699],\n    [0.1749, 0.358, -0.9168]\n  ],\n  \u002F\u002F 相机在世界坐标系中的3D位置。\n  \"position\": [-0.3236, -3.26428, 5.4160],\n  \u002F\u002F 相机的焦距。\n  \"focal_length\": 2691,\n  \u002F\u002F 相机的主点[u_0, v_0]。\n  \"principal_point\": [1220, 1652],\n  \u002F\u002F 相机的偏斜。\n  \"skew\": 0.0,\n  \u002F\u002F 相机像素的宽高比。\n  \"pixel_aspect_ratio\": 1.0,\n  \u002F\u002F 相机径向畸变的参数。\n  \"radial_distortion\": [0.1004, -0.2090, 0.0],\n  \u002F\u002F 相机切向畸变的参数。\n  \"tangential\": [0.001109, -2.5733e-05],\n  \u002F\u002F 图像的宽度和高度，单位为像素。\n  \"image_size\": [2448, 3264]\n}\n```\n\n### `camera-paths`\n * 该目录包含可用于渲染视频的测试时刻相机路径。\n * 此路径中的每个子目录都应包含一系列JSON文件。\n * 命名规则并不重要，但相机将按文件名排序。\n\n### `rgb`\n * 该目录包含不同尺度的图像。\n * 每个子目录应命名为`${scale}x`，其中`${scale}`为整数缩放因子。例如，`1x`包含原始图像，而`4x`则包含四分之一大小的图像。\n * 我们假设图像为PNG格式。\n * 重要的是，缩放后的图像应是原始图像的整数倍，以便在缩放图像时能够利用面积关系，防止出现莫尔纹。一种简单的方法是直接裁剪图像的边框，使其能被您希望的最大缩放因子整除。\n\n### `metadata.json`\n* 用于定义嵌入查找所使用的“元数据”ID。\n* 包含一个如下格式的字典：\n\n```javascript\n{\n    \"${item_id}\": {\n        \u002F\u002F 用于获取变形潜在代码的嵌入ID\n        \u002F\u002F 该代码将传递给变形场。\n        \"warp_id\": 0,\n        \u002F\u002F 用于获取外观潜在代码的嵌入ID\n        \u002F\u002F 该代码将传递给模板NeRF的第二分支。\n        \"appearance_id\": 0,\n        \u002F\u002F 对于验证绑定数据集，我们使用相机ID代替外观ID。例如，左相机为“0”，右相机为“1”。这在多视角设置中也可能适用。\n        \"camera_id\": 0\n    },\n    ...\n},\n```\n### `scene.json`\n* 包含关于我们如何解析场景的信息。\n* 请参阅行内注释。\n\n```javascript\n{\n  \u002F\u002F 我们将应用于点云和相机的缩放因子。这一点很重要，因为它控制了在计算位置编码时所采用的尺度。\n  \"scale\": 0.0387243672920458,\n  \u002F\u002F 定义场景的原点。场景将被平移，使该点成为原点。以未缩放的坐标定义。\n  \"center\": [\n    1.1770838526103944e-08,\n    -2.58235339289195,\n    -1.29117656263135\n  ],\n  \u002F\u002F 近平面距相机中心的缩放后距离。\n  \"near\": 0.02057418950149491,\n  \u002F\u002F 远平面距相机中心的缩放后距离。\n  \"far\": 0.8261601717667288\n}\n```\n\n### `dataset.json`\n* 定义数据集的训练\u002F验证划分。\n* 请参阅行内注释：\n\n```javascript\n{\n  \u002F\u002F 数据集中图像的总数。\n  \"count\": 114,\n  \u002F\u002F 数据集中训练图像（示例）的总数。\n  \"num_exemplars\": 57,\n  \u002F\u002F 包含数据集中所有项目ID的列表。\n  \"ids\": [...],\n  \u002F\u002F 包含数据集中所有训练项目ID的列表。\n  \"train_ids\": [...],\n  \u002F\u002F 包含数据集中所有验证项目ID的列表。\n  \u002F\u002F 此列表应与`train_ids`互斥。\n  \"val_ids\": [...],\n}\n```\n\n### `points.npy`\n\n* 一个NumPy文件，包含一个大小为`(N,3)`的单数组，其中存储了背景点。\n* 如果您希望使用背景正则化损失，则需要此文件。\n\n## 引用\n如果您觉得我们的工作有用，请考虑引用：\n```BibTeX\n@article{park2021nerfies\n  author    = {Park, Keunhong \n               and Sinha, Utkarsh \n               and Barron, Jonathan T. \n               and Bouaziz, Sofien \n               and Goldman, Dan B \n               and Seitz, Steven M. \n               and Martin-Brualla, Ricardo},\n  title     = {Nerfies: 可变形神经辐射场},\n  journal   = {ICCV},\n  year      = {2021},\n}\n```","# Nerfies 快速上手指南\n\n## 环境准备\n- 操作系统：Linux \u002F macOS \u002F Windows（WSL2）\n- Python ≥ 3.8（推荐 3.8）\n- GPU：NVIDIA 显卡 + CUDA ≥ 11.0（训练必需）\n- 内存：≥ 16 GB（训练高分辨率模型建议 32 GB+）\n\n## 安装步骤\n1. 创建并激活 Conda 环境  \n   ```bash\n   conda create --name nerfies python=3.8\n   conda activate nerfies\n   ```\n\n2. 安装依赖  \n   ```bash\n   pip install -r requirements.txt\n   ```\n\n3. 安装 JAX（CUDA 11.1 示例）  \n   ```bash\n   pip install --upgrade \"jax[cuda111]\" -f https:\u002F\u002Fstorage.googleapis.com\u002Fjax-releases\u002Fjax_releases.html\n   ```\n   国内用户可换清华镜像：  \n   ```bash\n   pip install -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple --upgrade \"jax[cuda111]\" -f https:\u002F\u002Fstorage.googleapis.com\u002Fjax-releases\u002Fjax_releases.html\n   ```\n\n## 基本使用\n### 1. 准备数据集\n- 用手机或相机围绕目标拍一段 30–60 秒的视频  \n- 上传到 Google Colab（无需本地 GPU）  \n  [![Open In Colab](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fgoogle\u002Fnerfies\u002Fblob\u002Fmain\u002Fnotebooks\u002FNerfies_Capture_Processing.ipynb)\n\n### 2. 训练模型（本地）\n```bash\nexport DATASET_PATH=\u002Fpath\u002Fto\u002Fyour\u002Fdataset\nexport EXPERIMENT_PATH=\u002Fpath\u002Fto\u002Fsave\u002Fexperiment\npython train.py \\\n    --data_dir $DATASET_PATH \\\n    --base_folder $EXPERIMENT_PATH \\\n    --gin_configs configs\u002Ftest_vrig.gin\n```\n\n### 3. 渲染视频\n```bash\npython eval.py \\\n    --data_dir $DATASET_PATH \\\n    --base_folder $EXPERIMENT_PATH \\\n    --gin_configs configs\u002Ftest_vrig.gin\n```\n或使用 Colab  一键渲染：  \n[![Open In Colab](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fgoogle\u002Fnerfies\u002Fblob\u002Fmain\u002Fnotebooks\u002FNerfies_Render_Video.ipynb)\n\n完成！模型结果将保存在 `$EXPERIMENT_PATH` 目录。","独立游戏工作室「像素鲸」正在开发一款 VR 宠物养成游戏，需要把自家猫「团子」的各种表情和动作做成可交互的 3D 资产。\n\n### 没有 nerfies 时\n- 用单反围着团子拍 200 多张照片，再手动对齐、抠图，光整理数据就花了 3 天。  \n- 团子一乱动就产生重影，传统 NeRF 把动态区域直接糊成一团，无法复刻它眯眼的可爱瞬间。  \n- 想让它在 VR 里“眨眼”只能手动做 BlendShape，动画师加班 2 周才调出 5 个表情，成本高得吓人。  \n- 最终模型 1.2 GB，Quest 2 一加载就闪退，只能砍分辨率，毛发细节全没了。  \n\n### 使用 nerfies 后\n- 手机拍 1 分钟 1080p 视频，Colab 一键脚本 30 分钟自动切帧、校准，数据准备缩短到 1 小时。  \n- nerfies 把团子的每帧表情当作可变形场，眨眼、张嘴都被精确重建，眯眼细节纤毫毕现。  \n- 训练 8 小时得到动态 NeRF，直接导出 60 个表情参数，动画师零手工绑定，节省 90% 人力。  \n- 压缩后模型 180 MB，Quest 2 稳定 72 fps 运行，玩家伸手就能撸到根根分明的猫胡须。  \n\nnerfies 让“拍猫变 VR 猫”从数周苦力活变成一晚脚本跑完的黑科技。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fgoogle_nerfies_c3f94cde.png","google","Google","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fgoogle_c4bedcda.png","Google ❤️ Open Source",null,"opensource@google.com","GoogleOSS","https:\u002F\u002Fopensource.google\u002F","https:\u002F\u002Fgithub.com\u002Fgoogle",[85,89],{"name":86,"color":87,"percentage":88},"Python","#3572A5",69.3,{"name":90,"color":91,"percentage":92},"Jupyter Notebook","#DA5B0B",30.7,1948,270,"2026-04-03T19:27:24","Apache-2.0","Linux, macOS, Windows","需要 NVIDIA GPU，8×GPU 训练需 8 张卡，单卡训练需手动调 batch_size 与 lr，CUDA 11.0+（示例命令为 cuda111）","未说明",{"notes":101,"python":102,"dependencies":103},"建议使用 Miniconda 创建独立环境；Colab 仅提供基础演示，完整模型需本地 8×GPU 训练；数据集需按指定目录结构准备，包含相机参数、多尺度图像及 JSON 元数据","3.8+",[104,105,106,107,108,109,110],"jax","jaxlib","gin-config","opencv-python","numpy","pillow","tensorboard",[13,54],[113,114,115,116,117],"neural-rendering","nerf","3d","neural-network","machine-learning","2026-03-27T02:49:30.150509","2026-04-06T05:17:01.992763",[121,126,131,136,141,146,151],{"id":122,"question_zh":123,"answer_zh":124,"source_url":125},6130,"如何生成 points.npy 文件？","points.npy 本质上是 COLMAP 重建得到的 3D 点云世界坐标。步骤如下：\n1. 运行 COLMAP 得到 points3D.bin。\n2. 用 COLMAP 自带的脚本将二进制转成文本：\n   ```bash\n   colmap model_converter --input_path sparse\u002F0 --output_path sparse\u002F0 --output_type TXT\n   ```\n3. 用 Python 读取 points3D.txt 并保存为 .npy：\n   ```python\n   import numpy as np\n   pts = np.loadtxt('points3D.txt', skiprows=1)[:, 1:4]  # 取 X,Y,Z\n   np.save('points.npy', pts)\n   ```\n官方参考脚本：https:\u002F\u002Fgithub.com\u002Fcolmap\u002Fcolmap\u002Fblob\u002Fmain\u002Fscripts\u002Fpython\u002Fread_write_model.py","https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fnerfies\u002Fissues\u002F16",{"id":127,"question_zh":128,"answer_zh":129,"source_url":130},6131,"Colab 训练笔记本报错 \"ValueError: mutable default ...\" 怎么办？","这是 Python dataclass 的已知限制，已在最新代码修复。若仍遇到，可手动修改：\n1. 在 `nerfies\u002Fconfigs.py` 中，将所有出现 `default=frozendict(...)` 的地方改为 `default_factory=lambda: frozendict(...)`。\n2. 或在笔记本里先执行：\n   ```bash\n   !pip install git+https:\u002F\u002Fgithub.com\u002Fxvdp\u002Fnerfies@x_dev\n   ```\n   该分支已临时修复此问题。","https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fnerfies\u002Fissues\u002F24",{"id":132,"question_zh":133,"answer_zh":134,"source_url":135},6132,"必须运行「人脸处理」步骤才能生成 scene.json 吗？","不需要。作者已更新代码，使人脸处理完全可选。若跳过人脸步骤，系统会自动用其他方式生成相机轨迹和 scene.json，不会报错。如仍遇到 `new_scene_manager is not defined`，请更新到最新版 Notebook。","https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fnerfies\u002Fissues\u002F2",{"id":137,"question_zh":138,"answer_zh":139,"source_url":140},6133,"视频里没有人脸，如何预处理数据集？","作者已提供通用流程，无需人脸关键点即可生成 scene.json。可直接使用社区整理的简化版 Notebook：\nhttps:\u002F\u002Fcolab.research.google.com\u002Fgist\u002Fkurtjcu\u002F887c9e77fbc4434b943da3a75deb47a1\u002Fnerfies_still_capture_processing.ipynb\n该脚本去掉了 MediaPipe 人脸依赖，适用于任何静态或动态场景。","https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fnerfies\u002Fissues\u002F8",{"id":142,"question_zh":143,"answer_zh":144,"source_url":145},6134,"训练脚本报错 \"Flag --base_folder must have a value other than None\" 如何解决？","这是 absl.flags 的校验错误，只需给 `--base_folder` 传一个非空路径即可：\n```bash\npython train.py --data_dir $DATASET_PATH --base_folder .\u002Fexperiments --gin_configs configs\u002Ftest_vrig.gin\n```\n或临时修改 `train.py` 第 46 行：\n```python\nflags.DEFINE_string('base_folder', '.\u002Fexperiments', 'where to store ckpts and logs')\n```","https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fnerfies\u002Fissues\u002F50",{"id":147,"question_zh":148,"answer_zh":149,"source_url":150},6135,"渲染结果出现奇怪的蓝色或完全不像场景的图怎么办？","通常是测试视角的相机参数错误导致。作者已更新代码改用新的相机生成方法。请：\n1. 拉取最新版代码与 Notebook。\n2. 重新运行数据集处理步骤以生成新的相机文件。\n3. 若仍异常，检查 `dataset\u002Ftest_camera_path.json` 中的相机位姿是否合理（位置、朝向是否都在场景内）。","https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fnerfies\u002Fissues\u002F20",{"id":152,"question_zh":153,"answer_zh":154,"source_url":155},6136,"官方数据集在哪里下载？","官方已发布示例数据集，可在 GitHub Release 下载：\nhttps:\u002F\u002Fgithub.com\u002Fgoogle\u002Fnerfies\u002Freleases\u002Ftag\u002F0.1\n下载后解压即可用于训练与渲染测试。","https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fnerfies\u002Fissues\u002F3",[157],{"id":158,"version":159,"summary_zh":160,"released_at":161},105706,"0.1","This is a release of the validation rig datasets used in the evaluation of our paper.\r\nPlease refer to the [documentation](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fnerfies#datasets) in the README of the project.\r\n\r\nNotes:\r\n* We use a pinhole camera model with tangential and radial distortion, identical to the OpenCV model as described in the README. You must take into account the distortion parameters or else the rays will not be correct. This is easy if you use our [camera class](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fnerfies\u002Fblob\u002Fmain\u002Fnerfies\u002Fcamera.py).\r\n* As mentioned in the paper, the \"Curls\" dataset is captured using a synchronized capture app while the rest are captured by manually synchronizing two separately captured videos using audio cues. This means that the exposure will be identical for the former but not for the latter.\r\n* The train\u002Ftest split is given in the `dataset.json` file of each dataset.\r\n* For our quantitative experiments, we used scale `4x`.\r\n* If you are not using our dataloader, make sure you scale the cameras correctly to match the corresponding scales.\r\n","2021-06-18T02:53:14"]