> ## Documentation Index
> Fetch the complete documentation index at: https://comfytv.org/llms.txt
> Use this file to discover all available pages before exploring further.

# 材质 (Material)

> 节点内置的 PBR 材质球编辑器：转动一颗实时 WebGL 小球，调出基于物理的表面属性（金属、玻璃、塑料、陶瓷……），同时输出一份可复用的材质和一张快照预览图。

<Frame caption="材质 (Material)（ComfyTV）">
  <img src="https://mintcdn.com/comfytv/dMkMxJDZdIo4YzAU/images/nodes/material.png?fit=max&auto=format&n=dMkMxJDZdIo4YzAU&q=85&s=ba07a9a19a4ea84072a179641cf48c01" alt="材质 (Material)" width="1200" height="820" data-path="images/nodes/material.png" />
</Frame>

## 这个节点是做什么的

**Material** 是一个小型材质制作工作室。你在一颗旋转的预览球上编辑实时的基于物理 (PBR) 材质——选底色，拖拽 metalness、roughness、transmission 等滑块，或从 *Polished metal（抛光金属）*、*Clear glass（透明玻璃）* 等预设起步。小球随调随渲染，并会自动把它的快照捕获为图像输出。

一切都在浏览器端进行并实时更新；单纯做材质**不需要** ▶ 运行。唯一的例外是 **image** 输入：如果你接一张参考图，运行节点会把它送进一个 VLM（视觉）工作流，从照片里*估算* PBR 参数并合并进你的材质——这是匹配真实表面的快捷方式。

节点产出两个输出：一份可在别处绑到模型部件的 `COMFYTV_MATERIAL`，以及一张材质球的 `COMFYTV_IMAGE` 快照，用于预览和缩略图。

## 适用场景

* 制作可复用的 PBR 材质（镀铬、磨砂玻璃、哑光橡胶、上釉陶瓷）绑到导入模型的部件上。
* 通过 VLM 工作流从参考照片快速估算材质，再手动微调。
* 建立一套 look 预设小库，让项目里的表面保持一致。
* 生成一张干净的材质球缩略图用于文档或对比。

## 编辑器

节点是自上而下堆叠的面板：

**预览球。** 一颗实时 WebGL 材质球占据节点顶部。它随每次改动重渲染；你停止编辑片刻后，会自动捕获并上传一张快照作为 `image` 输出（无需按任何按钮）。

**预设行。** 一排一键加载整套 look 的小片（chip）。内置预设有：

* **Glossy plastic（亮面塑料）** —— 低粗糙度加清漆层。
* **Matte plastic（哑光塑料）** —— 高粗糙度，无涂层。
* **Polished metal（抛光金属）** —— 满金属度，近镜面粗糙度。
* **Brushed metal（拉丝金属）** —— 满金属度，中等粗糙度。
* **Clear glass（透明玻璃）** —— 极低粗糙度，满透射。
* **Frosted glass（磨砂玻璃）** —— 中等粗糙度，满透射。
* **Rubber（橡胶）** —— 极高粗糙度。
* **Ceramic（陶瓷）** —— 光滑基底上加一层上釉清漆。

点预设会覆盖数值滑块（metalness、roughness、transmission、opacity、clearcoat、IOR 等），但**保留你选的 color**。

**Color（颜色）。** 一个色板加一个十六进制文本框，设置材质的基础反照率（albedo）。

**滑块。** 六个实时滑块，每个都有数值读数：

* **metalness** —— 0–1。表面的金属感（0 = 电介质/塑料，1 = 金属）。
* **roughness** —— 0–1。微表面粗糙度；低则镜面锐利，高则漫反射。
* **transmission** —— 0–1。透射折射；玻璃和液体调高它。
* **opacity** —— 0–1。表面的整体不透明度。
* **clearcoat** —— 0–1。表面之上的一层亮面清漆（车漆、陶瓷釉）。
* **ior** —— 1–2.333。折射率，决定透射弯折光线的强度（玻璃约 1.5）。

材质模型还携带 `clearcoatRoughness`、`emissive`（自发光颜色）和 `emissiveIntensity`；它们是存储材质的一部分，由预设和 VLM 估算设置——不过面板的直接控件就是颜色加上面六个滑块。

## 工作流程（分步）

1. 放一个 **Project** 节点，再 **Add Node → ComfyTV → Input → Material**。
2. 点一个预设片（如 **Polished metal**）先到大致位置。
3. 把 **color** 色板设成你的底色。
4. 一边看小球一边用 **roughness**、**metalness**、**clearcoat** 等滑块细调。
5. 快照会自行上传——你停止拖拽片刻后，**image** 输出即更新。
6. 把 **material** 接到模型/部件绑定节点以应用 look；用 **image** 当缩略图。

**从照片估算：** 把参考图接到 **image** 输入，选一个 **workflow**（material-estimate VLM），然后运行。模型从照片读出 PBR 数值并合并进当前材质；从那里继续调即可。

## 输入与输出

| 输入           | 类型                  | 含义                                                                 |
| ------------ | ------------------- | ------------------------------------------------------------------ |
| **workflow** | Combo               | 接入 **image** 时用于估算 PBR 参数的 VLM 工作流（选项来自 `material-estimate` 工作流集）。 |
| **image**    | `COMFYTV_IMAGE`（可选） | 参考照片；运行时其估算出的 PBR 数值会合并进材质。                                        |

实时材质和捕获的快照存在内部，由编辑器驱动，而非暴露的控件。

| 输出           | 类型                 | 含义                                    |
| ------------ | ------------------ | ------------------------------------- |
| **material** | `COMFYTV_MATERIAL` | 制作好的 PBR 材质（颜色 + 全部 PBR 参数），用于绑到模型部件。 |
| **image**    | `COMFYTV_IMAGE`    | 预览球的自动捕获快照。                           |

`COMFYTV_*` 输出是项目引用，不是原生 ComfyUI 张量。要把快照用于原生节点，加一个 **Bridge**——见 [bridges 指南](https://github.com/jtydhr88/ComfyTV/blob/main/docs/bridges.md)。

## 小贴士

* 单纯做材质不必运行——滑块和快照都实时更新。只有 **image** 输入的 VLM 估算才需要运行。
* 预设会覆盖滑块但**保留你的颜色**，所以先选预设，再设颜色。
* 要做像样的玻璃，把高 **transmission** 配低 **roughness** 和接近 1.5 的 **ior**；磨砂玻璃相同但用中等粗糙度。
* **clearcoat** 位于基底之上——很适合车漆和陶瓷釉，且不改变底层的 metalness/roughness。
* 快照在你最后一次编辑后片刻才捕获，所以接 **image** 下游前让小球稳定下来。

## 相关节点

* **Model Loader / 部件绑材质** —— 把 `COMFYTV_MATERIAL` 应用到模型部件上。
* **3D Scene** —— 摆放并拍摄应用了该材质的模型。
* **Image Stage** —— 供 VLM 估算的参考照片来源。
* **Bridge → / ← ComfyTV Image** —— 把快照在原生 ComfyUI 张量间来回转换。
