Avatar Graph ComfyUI 插件完全教程
1. 插件简介
插件地址: https://github.com/avatechai/avatar-graph-comfyui
这个插件是专门用来制作实时互动虚拟角色的神器!简单来说,就是把一张静态的人物图片变成可以眨眼、张嘴、做表情的活动角色。
能给我们带来什么效果?
- 把静态图片变成会动的虚拟人物
- 制作会眨眼的角色(就像真人一样自然)
- 制作会说话时嘴巴动的角色(口型同步)
- 制作各种表情变化的角色
- 导出成可以在网页或其他软件中使用的3D模型
想象一下:你有一张喜欢的动漫角色图片,用这个插件就能让她活过来,会眨眼会说话!
2. 如何安装
方法一:通过 ComfyUI Manager 安装(推荐)
- 打开 ComfyUI
- 点击 Manager 按钮
- 搜索 "avatar-graph-comfyui"
- 点击安装
- 重启 ComfyUI
方法二:手动安装
- 进入 ComfyUI 的
custom_nodes文件夹 - 运行命令:
git clone https://github.com/avatechai/avatar-graph-comfyui.git - 进入插件文件夹:
cd avatar-graph-comfyui - 安装依赖:
python -m pip install -r requirements.txt - 重启 ComfyUI(启动时加上参数:
--enable-cors-header)
注意: 这个插件需要 Python 3.10 版本,因为要用到 Blender 的功能。
3. 节点详细解析
本插件总共包含约150+个节点,本教程将逐一详细解释每个节点的用途和参数。
3.1 Avatar Main Output 节点 - 最终输出节点
这是整个工作流程的"终点站",就像一个打包机,把所有制作好的角色部件打包成最终的文件。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| BPY_OBJS | BPY_OBJS | BPY_OBJS类型 | - | 接收所有制作好的角色部件 | 接收Blender对象数组 | 连接前面节点制作的眼睛、嘴巴等部件 |
| 在Blender中打开 | open_in_blender | True/False | False | 是否要在Blender软件中打开查看 | 是否启动Blender预览 | 想看3D效果时设为True |
| 自动保存 | auto_save | True/False | False | 是否自动保存文件 | 是否自动保存输出文件 | 不想手动保存时设为True |
| Blender路径覆盖 | blender_path_override | 文本 | 空 | 自定义Blender软件的安装位置 | 覆盖默认Blender路径 | 如果Blender装在特殊位置就填路径 |
| 文件名 | filename | 文本 | "out" | 输出文件的名字 | 输出文件名称 | 比如填"我的角色"就会生成"我的角色.glb" |
| 模型类型 | model_type | AVA/GLB/GLTF_EMBEDDED | AVA | 选择输出什么格式的文件 | 输出文件格式类型 | AVA是专用格式,GLB是通用3D格式 |
| 写入模式 | write_mode | Overwrite/Increment | Overwrite | 文件重名时是覆盖还是新建 | 文件写入策略 | Increment会自动加数字避免覆盖 |
| 上传到云端 | upload_to_cloud | True/False | False | 是否上传到Avatech云服务 | 是否上传到云端服务 | 想在线预览时设为True |
| SHAPE_FLOW | SHAPE_FLOW | SHAPE_FLOW类型 | - | 接收动画控制数据 | 接收形状流数据 | 连接Create Shape Flow节点的输出 |
3.2 Create Shape Flow 节点 - 动画控制器
这个节点就像一个"遥控器",用来控制角色的各种动作和表情。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 形状流 | shape_flow | JSON文本 | '{"nodes": []}' | 定义角色的动作规则 | 定义形状键动画流程 | 填入控制眨眼、张嘴的规则代码 |
3.3 Create Mesh Layer 节点 - 创建网格层
这个节点就像一个"裁剪工具",把图片的某个部分(比如眼睛)变成3D的网格。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 图像 | image | IMAGE类型 | - | 要处理的图片 | 输入图像数据 | 连接分割好的眼睛或嘴巴图片 |
| 凸包 | convex_hull | True/False | True | 是否把形状变得更圆滑 | 是否应用凸包算法 | True让边缘更自然,False保持原形状 |
| 形状阈值 | shape_threshold | 0-1的小数 | 0.7 | 控制形状简化程度 | 凸包形状阈值 | 越小越精细,越大越简化 |
| 网格层名称 | mesh_layer_name | 文本 | "mesh_layer" | 给这个部件起个名字 | 网格层标识名称 | 比如"左眼"、"嘴巴"等便于识别 |
| X轴缩放 | scale_x | 小数 | 1 | 水平方向拉伸或压缩 | X轴缩放系数 | 1.5表示水平拉宽1.5倍 |
| Y轴缩放 | scale_y | 小数 | 1 | 垂直方向拉伸或压缩 | Y轴缩放系数 | 0.8表示垂直压扁到0.8倍 |
| X轴挤出 | extrude_x | 小数 | 0 | 水平方向向外扩展 | X轴挤出距离 | 正数向右扩展,负数向左扩展 |
| Y轴挤出 | extrude_y | 小数 | 0 | 垂直方向向外扩展 | Y轴挤出距离 | 正数向上扩展,负数向下扩展 |
| 随机种子 | seed | 整数 | 0 | 控制随机效果的种子 | 随机数种子 | 相同种子产生相同结果 |
3.4 SAM MultiLayer 节点 - 智能分割工具
这是一个超级智能的"剪刀",能自动识别并分割出图片中的眼睛、嘴巴、脸部等不同区域。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 图像 | image | IMAGE类型 | - | 要分割的原始图片 | 输入图像数据 | 连接加载的角色图片 |
| 检查点 | ckpt | 模型文件列表 | sam_vit_h_4b8939.pth | 选择AI分割模型 | SAM模型检查点文件 | 用默认的就行,效果最好 |
| 嵌入ID | embedding_id | 文本 | "embedding" | 给这次分割起个标识 | 嵌入向量标识符 | 每个项目用不同名字避免混乱 |
| 图像提示JSON | image_prompts_json | JSON文本 | "[]" | 告诉AI要分割哪些部分 | 图像分割提示数据 | 可以手动指定分割区域 |
3.5 Join Meshes 节点 - 合并网格
这个节点就像"胶水",把多个分开的部件(眼睛、嘴巴等)粘合成一个完整的角色。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| BPY_OBJ | BPY_OBJ | BPY_OBJ类型 | - | 第一个要合并的部件 | 主要Blender对象 | 连接脸部网格 |
| BPY_OBJ2 | BPY_OBJ2 | BPY_OBJ类型 | - | 第二个要合并的部件 | 次要Blender对象 | 连接眼睛或嘴巴网格 |
3.6 Match Texture Aspect Ratio 节点 - 匹配纹理比例
这个节点就像"调整画框",确保3D模型的比例和原图片一致,不会变形。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| BPY_OBJ | BPY_OBJ | BPY_OBJ类型 | - | 要调整的3D模型 | 输入Blender对象 | 连接需要调整比例的网格 |
| 图像 | image | IMAGE类型 | - | 参考的原始图片 | 参考图像数据 | 连接原始角色图片 |
| 缩放 | scale | 小数 | 0.001 | 整体缩放倍数 | 缩放系数 | 通常用很小的值如0.001 |
3.7 Plane Texture Unwrap 节点 - 平面纹理展开
这个节点就像"贴壁纸",把图片正确地贴到3D平面上。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| BPY_OBJ | BPY_OBJ | BPY_OBJ类型 | - | 要贴纹理的3D模型 | 输入Blender对象 | 连接创建好的网格 |
| 图像 | image | IMAGE类型 | - | 要贴上去的图片 | 纹理图像数据 | 连接角色图片 |
| 缩放 | scale | 小数 | 1 | 纹理贴图的缩放 | UV缩放系数 | 1表示原始大小 |
| 纹理名称 | texture_name | 文本 | "Texture" | 给纹理起个名字 | 纹理材质名称 | 便于在Blender中识别 |
3.8 Modify Shape Key 节点 - 修改形状键
这是制作表情动画的核心节点,就像"表情调节器",控制眼睛闭合、嘴巴张开等动作。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| BPY_OBJ | BPY_OBJ | BPY_OBJ类型 | - | 要添加表情的3D模型 | 输入Blender对象 | 连接角色网格 |
| 形状键名称 | shape_key_name | 文本 | "EyeBlinkLeft" | 这个表情的名字 | 形状键标识名 | "EyeBlinkLeft"表示左眼眨眼 |
| 目标顶点组 | target_vertex_group | 文本 | "" | 只影响特定区域的顶点 | 目标顶点组名称 | 填"左眼"只影响左眼区域 |
| X轴缩放 | scale_x | -10到10 | 1.0 | 水平方向的变形程度 | X轴缩放系数 | 0.1让眼睛水平压扁(闭眼效果) |
| Y轴缩放 | scale_y | -10到10 | 1.0 | 垂直方向的变形程度 | Y轴缩放系数 | 0.8让嘴巴垂直压扁 |
| X轴偏移 | offset_x | -10到10 | 0.0 | 水平方向的移动距离 | X轴偏移量 | 正数向右移,负数向左移 |
| Y轴偏移 | offset_y | -10到10 | 0.0 | 垂直方向的移动距离 | Y轴偏移量 | 正数向上移,负数向下移 |
| 旋转 | rotate | -360到360 | 0 | 旋转角度 | 旋转角度(度) | 10表示顺时针转10度 |
| 原点X偏移 | origin_offset_x | -10到10 | 0 | 变形中心点水平偏移 | 变形原点X偏移 | 调整变形的中心位置 |
| 原点Y偏移 | origin_offset_y | -10到10 | 0 | 变形中心点垂直偏移 | 变形原点Y偏移 | 调整变形的中心位置 |
| 变形半径 | transform_radius | 0到1 | 1.0 | 变形影响的范围大小 | 变形影响半径 | 1影响整个区域,0.5只影响中心 |
| 衰减 | falloff | -10到10 | 0 | 变形边缘的渐变程度 | 衰减系数 | 数值越大边缘越平滑 |
3.9 Set Shape Key Value 节点 - 设置形状键数值
这个节点就像"表情强度调节器",控制表情动作的强弱程度。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| BPY_OBJ | BPY_OBJ | BPY_OBJ类型 | - | 要控制的3D模型 | 输入Blender对象 | 连接有形状键的网格 |
| 形状键名称 | shape_key_name | 文本 | "my_shape_key" | 要控制的表情名称 | 形状键名称 | 填写已存在的形状键名 |
| 数值 | value | 0到1 | 0.0 | 表情的强度 | 形状键激活值 | 0表示不激活,1表示完全激活 |
3.10 Add Shape Keys 节点 - 添加形状键
这个节点就像"表情库管理器",为角色添加各种表情的基础框架。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| BPY_OBJ | BPY_OBJ | BPY_OBJ类型 | - | 要添加表情的3D模型 | 输入Blender对象 | 连接角色网格 |
| 形状键 | shape_keys | 文本(多行) | "key1,key2" | 要添加的表情名称列表 | 形状键名称列表 | "眨眼,张嘴,微笑"用逗号分隔 |
| 从混合 | from_mix | True/False | False | 是否基于当前状态创建 | 是否从混合状态创建 | True基于当前变形,False基于原始状态 |
3.11 Assign Texture 节点 - 分配纹理
这个节点就像"化妆师",把图片材质正确地涂抹到3D模型上。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| BPY_OBJ | BPY_OBJ | BPY_OBJ类型 | - | 要上色的3D模型 | 输入Blender对象 | 连接需要贴图的网格 |
| 纹理 | texture | IMAGE类型 | - | 要贴上去的图片 | 纹理图像数据 | 连接角色图片 |
| 纹理名称 | texture_name | 文本 | "my_image" | 给这个材质起个名字 | 纹理材质标识名 | 便于管理多个材质 |
3.12 Create Vertex Group 节点 - 创建顶点组
这个节点就像"区域划分器",把3D模型的不同部分分组管理。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| BPY_OBJ | BPY_OBJ | BPY_OBJ类型 | - | 要分组的3D模型 | 输入Blender对象 | 连接需要分组的网格 |
| 名称 | name | 文本 | "Group" | 这个组的名字 | 顶点组名称 | "左眼区域"、"嘴巴区域"等 |
| 分配选中 | assign_selected | True/False | True | 是否把当前选中的部分加入组 | 是否分配选中顶点 | True会自动把选中区域加入组 |
3.13 Assign Vertex Group 节点 - 分配顶点组
这个节点就像"贴标签",把3D模型的某些部分标记为特定组。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| BPY_OBJ | BPY_OBJ | BPY_OBJ类型 | - | 要操作的3D模型 | 输入Blender对象 | 连接需要分组的网格 |
| 名称 | name | 文本 | "Group" | 要分配到的组名 | 目标顶点组名称 | 必须是已存在的组名 |
3.14 Get First Obj 节点 - 获取第一个对象
这个节点就像"挑选器",从一堆3D模型中挑出第一个来使用。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| BPY_OBJS | BPY_OBJS | BPY_OBJS类型 | - | 一组3D模型 | 输入Blender对象数组 | 连接多个模型的输出 |
3.15 Group 节点 - 分组
这个节点就像"收纳盒",把多个单独的3D模型装到一个盒子里方便管理。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| BPY_OBJ | BPY_OBJ | BPY_OBJ类型 | - | 第一个要打包的模型 | 主要Blender对象 | 连接一个网格模型 |
| BPY_OBJ2 | BPY_OBJ2 | BPY_OBJ类型 | - | 第二个要打包的模型 | 次要Blender对象 | 连接另一个网格模型 |
3.16 To Group 节点 - 转为组
这个节点就像"单品装盒",把一个3D模型包装成组的格式。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| BPY_OBJ | BPY_OBJ | BPY_OBJ类型 | - | 要转换的3D模型 | 输入Blender对象 | 连接单个网格模型 |
3.17 Mesh From Texture 节点 - 从纹理创建网格
这个节点就像"图片变立体",把平面图片转换成有厚度的3D网格。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 图像 | image | IMAGE类型 | - | 要转换的图片 | 输入图像数据 | 连接角色图片 |
| 随机种子 | seed | 整数 | 0 | 控制随机效果 | 随机数种子 | 相同种子产生相同结果 |
3.18 UV Modifier 节点 - UV修改器
这个节点就像"贴纸位置调整器",微调图片在3D模型上的贴合位置。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| BPY_OBJ | BPY_OBJ | BPY_OBJ类型 | - | 要调整的3D模型 | 输入Blender对象 | 连接需要调整UV的网格 |
| 缩放 | scale | 小数 | 1 | UV贴图的缩放比例 | UV缩放系数 | 1表示原始大小 |
| 纹理名称 | texture_name | 文本 | "Texture" | 纹理的名称 | 纹理标识名 | 便于识别不同纹理 |
3.19 Blender Render Image 节点 - Blender渲染图像
这个节点就像"拍照机",把3D场景渲染成2D图片。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| BPY_OBJ | BPY_OBJ | BPY_OBJ类型 | - | 要渲染的3D模型 | 输入Blender对象 | 连接制作好的角色模型 |
3.20 Get Image Width Height 节点 - 获取图像宽高
这个节点就像"尺子",测量图片的长宽尺寸。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 图像 | image | IMAGE类型 | - | 要测量的图片 | 输入图像数据 | 连接任意图片 |
| 缩放 | scale | 小数 | 1.0 | 测量结果的缩放倍数 | 尺寸缩放系数 | 2.0表示把结果乘以2 |
3.21 Load Image With Alpha 节点 - 加载带透明度图像
这个节点就像"透明图片加载器",专门加载带透明背景的图片。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 图像 | image | 文件列表 | - | 选择要加载的图片文件 | 图像文件路径 | 选择PNG等支持透明的格式 |
3.22 Image Alpha Mask Merge 节点 - 图像透明蒙版合并
这个节点就像"抠图合成器",把图片和蒙版合并成带透明效果的图片。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 图像 | image | IMAGE类型 | - | 原始图片 | 输入图像数据 | 连接要处理的图片 |
| 蒙版 | mask | MASK类型 | - | 透明度蒙版 | 输入蒙版数据 | 连接分割出的蒙版 |
3.23 Save Image With Workflow 节点 - 保存图像和工作流
这个节点就像"备份器",保存图片的同时记录制作过程。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 图像 | image | 文件列表 | - | 要保存的图片 | 图像文件选择 | 选择输入文件夹中的图片 |
| 文件名前缀 | filename_prefix | 文本 | "ComfyUI" | 保存文件的名称前缀 | 输出文件名前缀 | "我的作品"会生成"我的作品_00001.png" |
3.24 Export GLTF 节点 - 导出GLTF
这个节点就像"格式转换器",把制作好的3D角色导出成通用的3D格式。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| bpy对象 | bpy_objects | BPY_OBJS类型 | - | 要导出的3D模型组 | Blender对象数组 | 连接制作好的角色模型 |
| 文件名 | filename | 文本 | "out" | 导出文件的名称 | 输出文件名 | 填"角色"会生成"角色.glb" |
| 模型类型 | model_type | GLB/GLTF_EMBEDDED | GLB | 选择导出格式 | 3D文件格式类型 | GLB更通用,GLTF_EMBEDDED包含纹理 |
| 写入模式 | write_mode | Overwrite/Increment | Overwrite | 重名文件的处理方式 | 文件写入策略 | Increment会自动编号避免覆盖 |
| 混合形状 | blendshapes | blendshapes类型 | - | 表情动画数据 | 形状键数据 | 连接表情控制数据 |
3.25 Export Blendshapes 节点 - 导出混合形状
这个节点就像"表情数据导出器",专门导出角色的表情动画数据。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 混合形状 | blendshapes | 文本 | "{node: ''}" | 表情数据的描述 | 形状键数据描述 | 填入表情控制的JSON数据 |
3.26 Combine Points 节点 - 合并点
这个节点就像"坐标收集器",把多个点击位置合并成一个提示数据。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| (动态参数) | kwargs | 各种类型 | - | 接收各种点击坐标数据 | 动态参数集合 | 自动接收连接的所有坐标点 |
3.27 Extract Boundary Points 节点 - 提取边界点
这个节点就像"轮廓描边器",自动找出图片中物体的边缘轮廓点。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 图像 | image | IMAGE类型 | - | 要提取轮廓的图片 | 输入图像数据 | 连接分割后的图片 |
| 点数量 | n_points | 整数 | -1 | 要提取多少个轮廓点 | 轮廓点数量 | -1表示自动,10表示只要10个点 |
3.28 Image Bridge 节点 - 图像桥接
这个节点就像"中转站",用来传递图片数据,有时用于调试或数据流控制。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 图像 | image | IMAGE类型 | - | 要传递的图片 | 输入图像数据 | 连接任意图片进行传递 |
3.29 Load Image From Request 节点 - 从请求加载图像
这个节点就像"网络图片加载器",可以从外部请求或指定位置加载图片。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 名称 | name | 文本 | "face.png" | 要加载的图片文件名 | 图像文件名称 | 填入存在的图片文件名 |
| 图像 | image | IMAGE类型 | - | 备用图片数据 | 备用图像数据 | 加载失败时使用的备用图片 |
3.30 Load Value From Request 节点 - 从请求加载数值
这个节点就像"数值获取器",从外部获取数值参数。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 名称 | name | 文本 | "key_name" | 要获取的数值的标识名 | 数值键名 | 填入要获取的参数名 |
| 数值 | value | 小数 | 1.0 | 默认数值 | 默认数值 | 获取失败时使用的默认值 |
3.31 B_ENUM 节点 - Blender枚举
这个节点就像"选项选择器",用于在Blender中选择预设的选项值。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 数值 | value | 文本 | - | 要选择的选项值 | 枚举选项值 | 填入Blender中的选项名称 |
3.32 Vector 3D 节点 - 3D向量
这个节点就像"3D坐标器",用来设置3D空间中的位置或方向。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| X | x | 小数 | 0 | X轴坐标(左右) | X轴分量 | 正数向右,负数向左 |
| Y | y | 小数 | 0 | Y轴坐标(前后) | Y轴分量 | 正数向前,负数向后 |
| Z | z | 小数 | 0 | Z轴坐标(上下) | Z轴分量 | 正数向上,负数向下 |
3.33 Vector 4D 节点 - 4D向量
这个节点就像"4D坐标器",用来设置包含额外参数的4D数据。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| X | x | 小数 | 0 | X轴坐标 | X轴分量 | 3D空间的X坐标 |
| Y | y | 小数 | 0 | Y轴坐标 | Y轴分量 | 3D空间的Y坐标 |
| Z | z | 小数 | 0 | Z轴坐标 | Z轴分量 | 3D空间的Z坐标 |
| U | u | 小数 | 0 | 第四维参数 | 第四维分量 | 通常用于时间或权重 |
3.34 Apply Mesh Transform As Shape Key 节点 - 应用网格变换为形状键
这个节点就像"表情复制器",把当前的网格变形状态保存成一个新的表情动画。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| bpy对象组 | bpy_objs | BPY_OBJS类型 | - | 要处理的3D模型组 | 输入Blender对象数组 | 连接制作好的角色模型组 |
| 形状键名称 | shape_key_name | 文本 | "EyeBlinkLeft" | 新表情的名字 | 形状键标识名 | "眨眼"、"微笑"等表情名称 |
| 目标顶点组 | target_vertex_group | 文本 | "Group" | 只影响特定区域 | 目标顶点组名称 | "左眼"只影响左眼区域 |
| X轴缩放 | scale_x | -10到10 | 1.0 | 水平方向变形程度 | X轴缩放系数 | 0.1让眼睛水平压扁 |
| Y轴缩放 | scale_y | -10到10 | 1.0 | 垂直方向变形程度 | Y轴缩放系数 | 0.8让嘴巴垂直压扁 |
| X轴偏移 | offset_x | -10到10 | 0.0 | 水平方向移动距离 | X轴偏移量 | 正数向右移,负数向左移 |
| Y轴偏移 | offset_y | -10到10 | 0.0 | 垂直方向移动距离 | Y轴偏移量 | 正数向上移,负数向下移 |
| 旋转 | rotate | -360到360 | 0 | 旋转角度 | 旋转角度(度) | 10表示顺时针转10度 |
| 原点X偏移 | origin_offset_x | -10到10 | 0 | 变形中心点水平偏移 | 变形原点X偏移 | 调整变形的中心位置 |
| 原点Y偏移 | origin_offset_y | -10到10 | 0 | 变形中心点垂直偏移 | 变形原点Y偏移 | 调整变形的中心位置 |
| 变形半径 | transform_radius | 0到1 | 1.0 | 变形影响范围大小 | 变形影响半径 | 1影响整个区域,0.5只影响中心 |
| 衰减 | falloff | -10到10 | 0 | 变形边缘渐变程度 | 衰减系数 | 数值越大边缘越平滑 |
3.35 自动生成的Blender操作节点
除了上述手工制作的节点外,插件还自动生成了大量Blender操作节点,这些节点直接对应Blender软件中的各种操作。主要包括:
3.35.1 网格操作节点 (Mesh_*)
包含约80个网格编辑操作,如:
- Mesh_Extrude - 挤出操作,就像"拉伸橡皮泥"
- Mesh_Subdivide - 细分操作,就像"把大格子分成小格子"
- Mesh_Select_All - 全选操作,就像"框选所有内容"
- Mesh_Delete - 删除操作,就像"橡皮擦"
3.35.2 对象操作节点 (Object_*)
包含约60个对象操作,如:
- Object_Duplicate - 复制操作,就像"复印机"
- Object_Join - 合并操作,就像"胶水粘合"
- Object_Transform_Apply - 应用变换,就像"确认修改"
3.35.3 变换操作节点 (Transform_*)
包含约25个变换操作,如:
- Transform_Translate - 移动操作,就像"搬家"
- Transform_Rotate - 旋转操作,就像"转动魔方"
- Transform_Resize - 缩放操作,就像"放大镜"
3.35.4 UV操作节点 (UV_*)
包含约30个UV贴图操作,如:
- UV_Unwrap - UV展开,就像"剥橘子皮摊平"
- UV_Smart_Project - 智能投影,就像"自动贴壁纸"
3.35.5 基础形状节点 (Mesh_Primitive_*)
包含约10个基础形状创建,如:
- Mesh_Primitive_Cube_Add - 添加立方体,就像"搭积木"
- Mesh_Primitive_Plane_Add - 添加平面,就像"铺地板"
3.35.6 对象属性设置节点 (ObjectSet_*)
包含约40个属性设置操作,用于调整对象的各种属性。
3.35.7 对象方法调用节点 (ObjectCall_*)
包含约30个对象方法调用,用于执行对象的各种功能。
4. 自动生成节点详细解析
4.1 网格操作节点 (Mesh_*) - 共约80个
这些节点就像"3D雕刻工具箱",用来编辑和修改3D网格的形状。
4.1.1 基础选择操作
| 节点名 | 通俗解释 | 专业解释 | 使用场景 |
|---|---|---|---|
| Mesh_Select_All | 全选工具,像"框选所有" | 选择所有网格元素 | 需要对整个模型操作时 |
| Mesh_Select_Less | 缩小选择范围,像"收缩选区" | 减少当前选择的元素 | 精确控制选择范围 |
| Mesh_Select_More | 扩大选择范围,像"扩展选区" | 增加相邻的元素到选择 | 扩展操作区域 |
| Mesh_Select_Linked | 选择相连部分,像"魔棒工具" | 选择与当前选择相连的所有元素 | 选择整个连续区域 |
4.1.2 基础编辑操作
| 节点名 | 通俗解释 | 专业解释 | 使用场景 |
|---|---|---|---|
| Mesh_Delete | 删除工具,像"橡皮擦" | 删除选中的网格元素 | 移除不需要的部分 |
| Mesh_Duplicate | 复制工具,像"复印机" | 复制选中的网格元素 | 制作对称部件 |
| Mesh_Extrude_Region | 挤出工具,像"拉伸橡皮泥" | 将选中面向外挤出 | 增加模型厚度或突起 |
| Mesh_Inset | 内插工具,像"画框缩小" | 在面内部创建新的面 | 制作凹陷或细节 |
4.1.3 高级变形操作
| 节点名 | 通俗解释 | 专业解释 | 使用场景 |
|---|---|---|---|
| Mesh_Subdivide | 细分工具,像"切豆腐" | 将面分割成更小的面 | 增加模型精度 |
| Mesh_Bevel | 倒角工具,像"磨圆角" | 给边缘添加圆角效果 | 让模型更真实 |
| Mesh_Smooth | 平滑工具,像"磨砂纸" | 让表面更平滑 | 消除锯齿感 |
| Mesh_Solidify | 加厚工具,像"充气" | 给薄片模型添加厚度 | 让平面变成立体 |
4.2 对象操作节点 (Object_*) - 共约60个
这些节点就像"物体管理器",用来管理和操作整个3D对象。
4.2.1 基础对象操作
| 节点名 | 通俗解释 | 专业解释 | 使用场景 |
|---|---|---|---|
| Object_Duplicate | 对象复制,像"克隆机" | 复制整个对象 | 制作多个相同物体 |
| Object_Join | 对象合并,像"胶水" | 将多个对象合并为一个 | 整合分散的部件 |
| Object_Delete | 对象删除,像"垃圾桶" | 删除整个对象 | 清理不需要的物体 |
| Object_Hide_View_Set | 隐藏对象,像"隐身术" | 在视图中隐藏对象 | 简化工作界面 |
4.2.2 变换应用操作
| 节点名 | 通俗解释 | 专业解释 | 使用场景 |
|---|---|---|---|
| Object_Transform_Apply | 应用变换,像"确认修改" | 将变换数据应用到对象 | 重置变换数据 |
| Object_Origin_Set | 设置原点,像"定锚点" | 设置对象的中心点位置 | 调整旋转和缩放中心 |
| Object_Location_Clear | 清除位置,像"归零" | 将对象位置重置为原点 | 重置对象位置 |
| Object_Rotation_Clear | 清除旋转,像"摆正" | 将对象旋转重置为0 | 重置对象方向 |
4.2.3 材质和修改器操作
| 节点名 | 通俗解释 | 专业解释 | 使用场景 |
|---|---|---|---|
| Object_Material_Slot_Add | 添加材质槽,像"调色盘" | 为对象添加新的材质槽 | 准备多材质对象 |
| Object_Modifier_Add | 添加修改器,像"滤镜" | 为对象添加修改器 | 添加特殊效果 |
| Object_Modifier_Apply | 应用修改器,像"合并图层" | 将修改器效果应用到网格 | 固化修改器效果 |
4.3 变换操作节点 (Transform_*) - 共约25个
这些节点就像"移动工具箱",用来移动、旋转、缩放对象。
4.3.1 基础变换操作
| 节点名 | 通俗解释 | 专业解释 | 使用场景 |
|---|---|---|---|
| Transform_Translate | 移动工具,像"搬家" | 改变对象的位置 | 调整对象位置 |
| Transform_Rotate | 旋转工具,像"转盘" | 改变对象的方向 | 调整对象朝向 |
| Transform_Resize | 缩放工具,像"放大镜" | 改变对象的大小 | 调整对象尺寸 |
| Transform_Mirror | 镜像工具,像"照镜子" | 沿轴线镜像对象 | 制作对称物体 |
4.3.2 高级变换操作
| 节点名 | 通俗解释 | 专业解释 | 使用场景 |
|---|---|---|---|
| Transform_Bend | 弯曲工具,像"弯曲尺子" | 沿轴线弯曲对象 | 制作弯曲效果 |
| Transform_Shear | 剪切工具,像"推拉门" | 沿一个方向推拉对象 | 制作倾斜效果 |
| Transform_Tosphere | 球化工具,像"吹气球" | 让对象变得更圆 | 制作圆润效果 |
| Transform_Push_Pull | 推拉工具,像"手风琴" | 沿法线方向推拉表面 | 制作凹凸效果 |
4.4 UV操作节点 (UV_*) - 共约30个
这些节点就像"贴纸工具箱",用来控制纹理在3D模型上的贴合方式。
4.4.1 UV展开操作
| 节点名 | 通俗解释 | 专业解释 | 使用场景 |
|---|---|---|---|
| UV_Unwrap | UV展开,像"剥橘子皮" | 将3D表面展开成2D | 准备贴纹理 |
| UV_Smart_Project | 智能投影,像"自动贴膜" | 自动计算最佳UV布局 | 快速UV展开 |
| UV_Cube_Project | 立方体投影,像"包礼品盒" | 从6个方向投影UV | 处理盒状物体 |
| UV_Cylinder_Project | 圆柱投影,像"贴标签" | 沿圆柱形投影UV | 处理圆柱状物体 |
4.4.2 UV编辑操作
| 节点名 | 通俗解释 | 专业解释 | 使用场景 |
|---|---|---|---|
| UV_Pack_Islands | 打包岛屿,像"整理行李" | 优化UV岛屿的排列 | 提高纹理利用率 |
| UV_Average_Islands_Scale | 平均岛屿缩放,像"统一大小" | 让所有UV岛屿比例一致 | 保持纹理密度统一 |
| UV_Align | UV对齐,像"排队" | 对齐选中的UV元素 | 整理UV布局 |
| UV_Stitch | UV缝合,像"缝衣服" | 将分离的UV边缘连接 | 修复UV接缝 |
4.5 基础形状节点 (Mesh_Primitive_*) - 共约10个
这些节点就像"积木盒",用来创建各种基础的3D形状。
参数详解表格:
| 节点名 | 通俗解释 | 常用参数 | 参数说明 | 使用场景 |
|---|---|---|---|---|
| Mesh_Primitive_Cube_Add | 添加立方体,像"搭积木" | size, location | 大小和位置 | 制作盒子、建筑 |
| Mesh_Primitive_Plane_Add | 添加平面,像"铺地板" | size, location | 大小和位置 | 制作地面、墙面 |
| Mesh_Primitive_Cylinder_Add | 添加圆柱,像"水管" | radius, depth, vertices | 半径、高度、边数 | 制作柱子、管道 |
| Mesh_Primitive_Uv_Sphere_Add | 添加球体,像"皮球" | radius, subdivisions | 半径、细分数 | 制作球形物体 |
| Mesh_Primitive_Ico_Sphere_Add | 添加二十面球,像"足球" | radius, subdivisions | 半径、细分数 | 制作更圆的球体 |
| Mesh_Primitive_Cone_Add | 添加圆锥,像"冰淇淋筒" | radius, depth, vertices | 底半径、高度、边数 | 制作锥形物体 |
| Mesh_Primitive_Torus_Add | 添加圆环,像"甜甜圈" | major_radius, minor_radius | 大半径、小半径 | 制作环形物体 |
| Mesh_Primitive_Grid_Add | 添加网格,像"铁丝网" | x_subdivisions, y_subdivisions | X细分、Y细分 | 制作网格结构 |
| Mesh_Primitive_Monkey_Add | 添加猴头,像"吉祥物" | size, location | 大小和位置 | Blender测试模型 |
| Mesh_Primitive_Circle_Add | 添加圆形,像"硬币" | radius, vertices | 半径、边数 | 制作圆形底面 |
4.6 对象属性设置节点 (ObjectSet_*) - 共约40个
这些节点就像"属性调节器",用来设置3D对象的各种属性值。
4.6.1 显示属性设置
| 节点名 | 通俗解释 | 参数类型 | 默认值 | 使用场景 |
|---|---|---|---|---|
| ObjectSet_Hide_Viewport | 设置视口隐藏,像"隐身开关" | 布尔值 | False | 控制对象在视口中的显示 |
| ObjectSet_Hide_Render | 设置渲染隐藏,像"拍照隐身" | 布尔值 | False | 控制对象在渲染中的显示 |
| ObjectSet_Show_Wire | 设置线框显示,像"透视眼镜" | 布尔值 | False | 显示对象的线框结构 |
| ObjectSet_Display_Type | 设置显示类型,像"显示模式" | 枚举值 | 'TEXTURED' | 控制对象的显示方式 |
4.6.2 变换属性设置
| 节点名 | 通俗解释 | 参数类型 | 默认值 | 使用场景 |
|---|---|---|---|---|
| ObjectSet_Lock_Rotation_W | 锁定W轴旋转,像"旋转锁" | 布尔值 | False | 防止意外旋转 |
| ObjectSet_Lock_Rotations_4d | 锁定4D旋转,像"全方位锁" | 布尔值 | False | 锁定所有旋转轴 |
| ObjectSet_Rotation_Mode | 设置旋转模式,像"旋转方式" | 枚举值 | 'XYZ' | 控制旋转的计算方式 |
4.6.3 材质属性设置
| 节点名 | 通俗解释 | 参数类型 | 默认值 | 使用场景 |
|---|---|---|---|---|
| ObjectSet_Active_Material_Index | 设置活动材质索引,像"选颜色" | 整数 | 0 | 选择当前使用的材质 |
| ObjectSet_Pass_Index | 设置通道索引,像"图层编号" | 整数 | 0 | 用于渲染通道分离 |
4.7 对象方法调用节点 (ObjectCall_*) - 共约30个
这些节点就像"功能按钮",用来执行3D对象的各种方法和功能。
4.7.1 形状键操作方法
| 节点名 | 通俗解释 | 主要参数 | 使用场景 |
|---|---|---|---|
| ObjectCall_Shape_Key_Add | 调用添加形状键,像"新建表情" | name, from_mix | 为对象添加新的形状键 |
| ObjectCall_Shape_Key_Remove | 调用删除形状键,像"删除表情" | key | 删除指定的形状键 |
| ObjectCall_Shape_Key_Clear | 调用清除形状键,像"重置表情" | 无参数 | 删除所有形状键 |
4.7.2 网格转换方法
| 节点名 | 通俗解释 | 主要参数 | 使用场景 |
|---|---|---|---|
| ObjectCall_To_Mesh | 调用转为网格,像"固化形状" | preserve_all_data_layers | 将对象转换为网格数据 |
| ObjectCall_To_Curve | 调用转为曲线,像"变成线条" | depsgraph, apply_modifiers | 将对象转换为曲线 |
4.7.3 数据更新方法
| 节点名 | 通俗解释 | 主要参数 | 使用场景 |
|---|---|---|---|
| ObjectCall_Update_Tag | 调用更新标记,像"刷新数据" | 无参数 | 标记对象需要更新 |
| ObjectCall_Update_From_Editmode | 调用编辑模式更新,像"保存修改" | 无参数 | 从编辑模式更新数据 |
4.8 顶点组操作节点 (Object_Vertex_Group_*) - 共约25个
这些节点就像"区域管理器",用来管理3D模型的顶点分组。
4.8.1 顶点组基础操作
| 节点名 | 通俗解释 | 主要参数 | 使用场景 |
|---|---|---|---|
| Object_Vertex_Group_Add | 添加顶点组,像"新建分组" | 无参数 | 创建新的顶点组 |
| Object_Vertex_Group_Remove | 删除顶点组,像"删除分组" | 无参数 | 删除当前顶点组 |
| Object_Vertex_Group_Assign | 分配顶点组,像"加入分组" | 无参数 | 将选中顶点加入当前组 |
| Object_Vertex_Group_Remove_From | 从组中移除,像"退出分组" | 无参数 | 将选中顶点从当前组移除 |
4.8.2 顶点组高级操作
| 节点名 | 通俗解释 | 主要参数 | 使用场景 |
|---|---|---|---|
| Object_Vertex_Group_Select | 选择顶点组,像"框选分组" | 无参数 | 选择当前组的所有顶点 |
| Object_Vertex_Group_Deselect | 取消选择顶点组,像"取消框选" | 无参数 | 取消选择当前组的顶点 |
| Object_Vertex_Group_Invert | 反选顶点组,像"反向选择" | 无参数 | 反转当前组的权重 |
| Object_Vertex_Group_Smooth | 平滑顶点组,像"柔化边界" | 无参数 | 平滑组内顶点的权重 |
4.9 Context Transform 节点 - 上下文变换
这个节点用来设置变换操作的上下文环境。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 枢轴点 | pivot_point | 枚举值 | 'MEDIAN_POINT' | 设置变换的中心点 | 变换枢轴点类型 | 'CENTER'以几何中心为轴心 |
4.10 Apply Mesh Transform As Shape Key 节点增强版
这个节点的完整参数说明:
高级参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值范围 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 实际应用举例 |
|---|---|---|---|---|---|---|
| 变形半径 | transform_radius | 0.0-1.0 | 0.8 | 控制变形影响的范围大小 | 变形影响的归一化半径 | 0.5只影响中心一半区域,1.0影响整个区域 |
| 衰减强度 | falloff | -10.0-10.0 | 1.0 | 控制变形边缘的渐变强度 | 衰减函数的强度系数 | 2.0让边缘过渡更自然,0让变形突然停止 |
| 原点偏移组合 | origin_offset_x/y | -10.0-10.0 | 0.0 | 调整变形中心点的位置 | 变形原点的偏移量 | 设置(0.1, -0.1)让眼睛向右下角闭合 |
4. 使用技巧和建议
4.1 图片准备技巧
- 最佳图片要求:使用768x768以上分辨率的图片,角色要正面朝向
- 嘴巴状态:最好使用嘴巴微张的图片,这样制作口型动画效果更好
- 背景处理:建议使用纯色背景或透明背景的图片
- 光线均匀:避免阴影过重的图片,会影响分割效果
4.2 工作流程建议
- 先分割后制作:使用SAM MultiLayer节点先把图片分割成不同区域
- 分层制作:眼睛、嘴巴、脸部分别制作成独立的网格层
- 逐步调试:每完成一个部分就测试一下效果
- 保存节点:重要的节点设置要及时保存
4.3 表情制作技巧
- 眨眼效果:scale_y设为0.1-0.3,scale_x保持1.0
- 张嘴效果:scale_y设为1.2-1.5,可以配合轻微的offset_y
- 微笑效果:使用小幅度的rotate和offset组合
- 自然过渡:falloff参数设为0.5-1.0让变形更自然
4.4 性能优化建议
- 合理使用seed:相同的seed可以复现相同效果,便于调试
- 适当简化:不需要过于复杂的网格,简单的形状动画效果更好
- 批量处理:多个相似角色可以复用相同的工作流程
5. 常见问题解答
5.1 安装相关问题
Q: 安装时提示Python版本不对怎么办?
A: 这个插件需要Python 3.10版本,因为要用到bpy库。建议使用conda创建专门的环境:
conda create --name comfyui python=3.10
conda activate comfyui
Q: 提示找不到Blender怎么办?
A: 需要安装Blender软件,或者在Avatar Main Output节点中指定Blender的安装路径。
Q: SAM模型下载失败怎么办?
A: 插件会自动下载SAM模型,如果网络不好可以手动下载sam_vit_h_4b8939.pth文件放到models/sams文件夹中。
5.2 使用相关问题
Q: 分割效果不好怎么办?
A:
- 确保图片分辨率足够高(建议768x768以上)
- 角色要正面朝向,五官清晰
- 背景尽量简单,避免复杂背景干扰
Q: 表情动画不自然怎么办?
A:
- 调整falloff参数增加渐变效果
- 适当减小transform_radius避免影响范围过大
- 微调scale和offset参数,避免变形过度
Q: 导出的文件无法使用怎么办?
A:
- 检查是否选择了正确的导出格式(GLB最通用)
- 确保所有必要的节点都正确连接
- 查看ComfyUI的错误日志获取具体错误信息
Q: 角色比例不对怎么办?
A: 使用Match Texture Aspect Ratio节点调整,确保scale参数设置合理(通常是0.001左右的小数)。
5.3 高级使用问题
Q: 如何制作更复杂的表情?
A: 可以组合多个Modify Shape Key节点,每个控制不同的面部区域,然后通过Shape Flow控制它们的协调动作。
Q: 如何优化渲染速度?
A:
- 减少不必要的网格复杂度
- 合理设置convex_hull和shape_threshold参数
- 避免过多的形状键
Q: 能否批量处理多个角色?
A: 可以通过修改文件名和embedding_id参数来处理不同角色,但需要为每个角色单独运行工作流程。
6. 进阶应用
6.1 自定义表情动画
通过组合多个形状键,可以创建复杂的表情:
- 组合眨眼+微笑 = 开心表情
- 组合皱眉+嘴角下垂 = 难过表情
- 组合眼睛放大+嘴巴张开 = 惊讶表情
6.2 与其他插件配合
- 可以与ControlNet配合生成更好的角色图片
- 可以与动画插件配合制作更复杂的动作
- 可以与语音合成配合实现真正的口型同步
6.3 商业应用建议
- 虚拟主播:制作会动的虚拟角色
- 游戏开发:快速制作NPC表情动画
- 教育内容:制作生动的教学角色
- 社交媒体:制作个性化的动态头像