# GNM-Studio **Repository Path**: shawdreng/GNM-Studio ## Basic Information - **Project Name**: GNM-Studio - **Description**: 人头项目2:人头编辑器 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-07-21 - **Last Updated**: 2026-08-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # GNM Studio
一个本地优先的桌面与网页 Google GNM 头像创建、摄像头动捕工作室。
https://github.com/user-attachments/assets/874bc735-c11d-4ae6-9cdc-2db1082d2a5b [English README](README.md) · [在线体验](https://drbaph.is-a.dev/GNM-Studio/) · [下载页面](https://github.com/Saganaki22/GNM-Studio/releases) · [Google GNM](https://github.com/google/GNM) 作者:[Saganaki22](https://github.com/Saganaki22) GNM Studio `1.3.0` 将 Google GNM Head v3、MIT FaceCap 52 头像、MediaPipe Face Landmarker、 Three.js、Rust 与 Tauri 整合到便携式 Windows 应用,并提供用于在线体验跟踪与 动画流程的 GitHub Pages 版本。它可通过摄像头驱动头像、录制面部动作和视频, 并把动画导出到 Blender。普通用户无需安装 Python、Node.js、Rust 或 CUDA; 两个版本都支持带种子身份生成:桌面版使用精确的原生 Rust 求值器;网页版在独立 Worker 中计算紧凑的量化基底,从而避免阻塞界面。 ## 下载与运行 1. 从 [GitHub Releases](https://github.com/Saganaki22/GNM-Studio/releases) 下载最新的 Windows x64 压缩包。 2. 解压到可写目录,例如 `C:\AI\GNM-Studio\`。 3. 运行 `GNM-Studio-v1.3.0.exe`。 4. 如需实时捕捉,请允许摄像头和/或麦克风权限;手动编辑可选择 **Continue without capture**。 5. 跟踪录制前保持放松的中性表情,并点击 **Calibrate neutral**。 可能会提供两种便携包: | 软件包 | 适用情况 | | --- | --- | | 标准便携 ZIP | 推荐,杀毒软件与代码签名兼容性最好。 | | UPX 便携 ZIP | 可执行文件更小;请在杀毒软件接受 UPX 打包时使用。 | 应用与全部模型资源都已嵌入,无需安装程序。 ## 网页版 使用当前版本的 Chromium 内核浏览器打开 [drbaph.is-a.dev/GNM-Studio](https://drbaph.is-a.dev/GNM-Studio/)。摄像头与 麦克风需要 HTTPS 权限,GitHub Pages 会提供 HTTPS。所有画面与音频处理都在浏览器 本地完成,不会上传到应用服务器。 网页版包含基础 GNM 头像与 FaceCap 52 头像、MediaPipe GPU/CPU 跟踪、校准、叠加、关键点、智能 平滑、表情和冻结、PBR 皮肤、背景、动作/视频录制、回放、JSON 导入导出、动画 GLB、浏览器 MP4/WebM 保存,以及在专用 Web Worker 中运行的 GNM 带种子身份生成。 MP4 能力取决于浏览器编码器。身份基底只会在首次应用 Create 时延迟下载,之后可由 浏览器正常缓存。精确的原生 Rust 身份求值与系统 FFmpeg 集成仍仅桌面版提供。 网页版已针对手机和平板调整:实时视口优先显示,模型、捕捉、图层、材质、录制与导出 控制仍可在其下方使用,并采用适合触控的按钮与可横向滚动的工具栏。 构建固定使用 `/GNM-Studio/` 基础路径,以便应用运行在现有自定义域名的子路径。 本项目不发布 `CNAME` 文件:`drbaph.is-a.dev` 属于父级 Pages 站点,本应用位于其 `GNM-Studio` 子路径。 ## 主要功能 - 原生 Google GNM Head v3 网格:17,821 个顶点、35,324 个三角形;左右眼使用独立 榛绿棕材质,保留黑色瞳孔并支持轻量视线移动;牙齿为白色,舌头为红色。 - 内置离线 MIT FaceCap 头像,直接驱动全部 52 个 MediaPipe/ARKit 风格形变目标, 包括下颌、视线、面颊、嘴唇与舌头;保留眼部贴图,并增加会随视线转动的程序化虹膜/瞳孔层; 上下牙齿为白色,口腔软组织为粉红色且不会受到皮肤材质影响。 - 现代卡片式 GNM / FaceCap 动捕模型选择器;FaceCap 提供分组的 52 通道滑块和独立冻结锁。 - 带种子的身份生成,以及外观表达和人群混合控制。 - MediaPipe 摄像头跟踪:478 个面部关键点、52 个表情通道和面部变换矩阵, 默认优先使用 GPU,失败时回退到 CPU。 - 右键点击 Devices 或后端状态可选择 Auto、仅 GPU 或仅 CPU;探测失败的后端会变灰。 - 类似身份验证的中性姿势校准:临时仅显示摄像头、橙色/绿色位置提示、按画面裁剪 精确匹配引导框大小、拒绝移动、稳定后 3-2-1 倒计时、自动恢复原图层,并真正 归零中性表情与头部方向。 - 分离的 0–100% 自适应面部与头部动作平滑,加入死区与单帧瞬态过滤;孤立的小幅 抽动会被丢弃,持续的主动动作会快速打开滤波器。 - 仅使用面部矩阵与面部关键点后备方案计算头部旋转,支持中性相对的偏航/俯仰/ 翻滚强度、死区与平滑;图像/Three.js 翻滚坐标与镜像只转换一次,不依赖肩膀或躯干跟踪。 - 20 个 GNM 语义表情滑块,每个通道都可独立冻结;另有增强的派生下颌形变目标, 使 MediaPipe 检测到大幅张嘴时下颌打开得更明确。 - 仅摄像头、仅头像、或透明头像叠加摄像头三种显示模式。 - 与摄像头裁剪精确对齐的关键点、统一的摄像头/动作镜像、线框与头像透明度。 - 类似 Blender 的旋转、平移、滚轮缩放;基准视图会保留当前缩放和平移,重置视图独立恢复默认构图。 - 真正的全屏画布输出,支持自动隐藏控制和 `H` 快捷键;另有仅画布 OBS 弹出窗口, 弹出时它是唯一渲染器,会同步已选摄像头/头像/关键点/背景图层且不再闪烁,关闭后主窗口自动恢复画布。 - 实验性重复 PBR 皮肤材质默认关闭并折叠:最左侧无着色白色 Neutral 选项、五种基础肤色、对齐的颜色/法线/位移/ 遮蔽/高光贴图、缩放与旋转、可调接缝羽化、无闪暗的实时调整,并针对 FaceCap 解码量化 UV、按模型比例调整位移深度。 - 鼠标跟随灯光;按 `L` 冻结或重新绑定,并可调整开关与强度。 - 工作室渐变、纯色、透明以及本地自定义图片背景;保持原始比例,支持替换、删除与 100–300% 缩放。 - 摄像头和麦克风设备选择、麦克风静音、监听及彩色输入电平表。 - 摄像头、跟踪和导出帧率可在 1–120 FPS 之间自定义。 - 面向高级用户的 1–50 Mbps 视频码率和 64–320 kbps 音频码率控制。 - MP4 后端可选 Auto、便携 WebCodecs 或系统 FFmpeg。可从 PATH 检测或手动选择 `ffmpeg.exe`,且 FFmpeg 并非必需。 - 动作录制会保存每帧精确的中性相对 XYZ 位移、缩放、平滑旋转与录制时的 3D 相机视图,并保留 麦克风音频;另有暂停/继续、可拖动定位的回放、Return to Live、经过验证的 JSON 重新导入、可复制的详细错误信息,以及同一基线上的桌面录制与导出控件。 - 深色/浅色主题、五种强调色、可持久保存的 80–125% 界面缩放。 - GitHub 与版本链接始终通过 Windows 默认浏览器打开,而不是应用 WebView。 ## 离线与隐私 Windows 版在运行时**不会下载模型**。发布版 EXE 已包含: - MediaPipe Face Landmarker task 模型。 - MediaPipe WASM 加载器和二进制文件。 - Google GNM Head v3 NPZ 数据。 - GNM 运行时 GLB 与语义身份/表情解码器。 - 固定 Three.js r184 版本的 FaceCap 52 GLB 头像。 - 用于离线解码 FaceCap 贴图的 Three.js Basis Universal/KTX2 转码器资源。 - 程序生成的 Neutral 无着色贴图、五种本地皮肤颜色贴图及共享的 PBR 细节贴图。 - 本地 WebCodecs MP4 封装和 AAC 后备编码器。 - 完整的 Tauri/Vite 前端。 摄像头画面与麦克风数据都保留在本机。网页版首次加载时会从 GitHub Pages 下载 相同的模型、WASM、贴图与代码静态资源,并在浏览器本地处理;浏览器可能缓存这些 资源。首次应用网页身份时还会延迟下载约 6.85 MB 的压缩量化 GNM 身份基底,并在 独立 Worker 中求值;面部画面、摄像头帧、身份设置与生成顶点都不会上传。桌面版只有 在用户主动打开外部链接时才会访问网络。极少数较旧的 Windows 系统可能需要单独安装 Microsoft WebView2。 ## 基本工作流程 1. 如需面部跟踪,打开 **Capture**、选择摄像头/麦克风并启用权限;手动编辑可跳过。 2. 检查 `Capture 2/2`(或部分连接状态)以及跟踪器状态。 3. 在视口工具栏选择 **Overlay**、**Camera** 或 **Avatar**。 4. 以放松表情面对摄像头并校准中性姿势。 5. 使用 **Create** 调整身份,使用 **Edit** 调整表情。 6. 选择 Motion、Avatar video 或 Camera + avatar 录制模式。 7. 点击 **Record** 开始表演,完成后点击 **Stop**。 8. 打开 **Export** 并保存需要的格式。 ### 视口控制 | 输入 | 操作 | | --- | --- | | 鼠标左键拖动 | 旋转头像视图 | | Shift + 左键拖动 | 平移 | | 鼠标滚轮 | 缩放 | | `L` | 冻结或重新绑定鼠标灯光 | | 全屏时 `H` | 隐藏或显示全部画布控制 | | 右键点击 Devices/后端状态 | 选择 Auto、GPU 或 CPU 跟踪 | | 方位控件 | 切换方向,同时保留当前缩放和平移目标 | | 重置按钮 | 恢复默认相机视图 | | 全屏按钮 | 打开干净画布全屏;移动鼠标显示控制,按 `Esc` 退出 | | 弹出按钮 | 把唯一渲染器移到仅画布的 OBS/输出窗口 | ## 录制与导出 **Capture mode** 决定 Record 按钮保存什么,不会改变实时视口。**Motion data** 会记录可编辑跟踪通道、精确的中性相对 XYZ 位移/缩放/平滑旋转、画面构图,以及录制时的 3D 相机视图; 之后可在本地渲染为头像 MP4,并包含该会话保留的麦克风音频(除非静音)。 **Avatar video** 只录制渲染头像和背景;**Camera + avatar** 把已启用图层合成为一个视频。 直接视频也会录入麦克风(除非静音),并在导出时复用已完成的视频,无需重新录制。 | 格式 | 内容 | 常见用途 | | --- | --- | --- | | JSON | 带时间戳的 MediaPipe 通道、中性相对 XYZ/缩放、精确头像构图/姿态、录制时 3D 视图、头像配置、控制、中性校准和头部矩阵 | 重新导入、自定义重定向或分析 | | GLB | 所选 GNM 或 FaceCap 网格、皮肤材质、形变目标、XYZ 位置、缩放、面部头部旋转和动画 | Blender、glTF 工具、后期编辑 | | MP4 | 从动作渲染的 H.264 视频,或带最高 320 kbps AAC 的直接录制视频 | 分享与剪辑 | | WebM 源文件 | WebView2 内部录制 WebM 时可选保存的未转换源文件 | 诊断或归档 | Blender 可编辑动画推荐使用 GLB。通过 **File → Import → glTF 2.0** 导入。 `1.3.0` 暂不包含 Alembic 导出。 默认导出文件名包含精确到秒的本地日期与时间,例如 `GNM-Studio_2026-07-16_18-42-07_animation.glb`。 若要重新打开动作,请点击导出按钮旁的 **Import JSON**,选择 `gnm-studio-motion` version 1 文件。应用会验证文件、恢复中性校准和 FPS, 并立即启用时间轴拖动定位。JSON 只包含动作数据,无法恢复摄像头画面、麦克风音频 或原始 MP4/WebM 源文件。