ComfyUI-Marigold 插件完全教程
1. 插件简介
ComfyUI-Marigold 是一个基于人工智能的深度图生成插件,原项目地址:https://github.com/kijai/ComfyUI-Marigold
这个插件就像一个神奇的"透视眼镜",能够从普通的平面照片中看出物体的远近关系,并生成一张黑白的"深度图"。深度图就像地形图一样,白色代表离镜头近的地方,黑色代表离镜头远的地方。
主要用途:
- 把普通照片变成3D效果的深度图
- 为视频制作添加景深效果
- 为3D建模提供参考
- 制作艺术化的深度可视化效果
能带来的效果:
- 让平面照片具有立体感
- 制作专业的景深模糊效果
- 生成可用于3D软件的深度信息
- 创建炫酷的彩色深度可视化
2. 如何安装
方法一:使用ComfyUI管理器(推荐)
- 打开ComfyUI管理器
- 搜索"marigold"
- 点击安装即可
方法二:手动安装
- 将插件下载到
ComfyUI/custom_nodes文件夹 - 安装依赖包:
pip install -r requirements.txt - 重启ComfyUI
注意: 插件会自动下载所需的AI模型,首次使用时需要联网等待下载完成。
3. 节点详细解析
3.1 MarigoldModelLoader 节点 - 模型加载器
这个节点就像一个"工具箱管理员",负责准备和管理不同类型的AI模型。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| model | model | 多个选项 | prs-eth/marigold-depth-lcm-v1-0 | 选择不同功能的AI大脑 | 选择不同的预训练模型 | 选择lcm版本速度快,选择v1-1版本质量高 |
可选模型说明:
prs-eth/marigold-v1-0: 基础深度估计模型,质量好但速度慢prs-eth/marigold-depth-lcm-v1-0: 快速深度估计模型,速度快质量稍低prs-eth/marigold-depth-v1-1: 改进版深度估计模型prs-eth/marigold-normals-v0-1: 法线贴图生成模型prs-eth/marigold-normals-lcm-v0-1: 快速法线贴图模型prs-eth/marigold-normals-v1-1: 改进版法线贴图模型GonzaloMG/marigold-e2e-ft-depth: 端到端微调深度模型GonzaloMG/marigold-e2e-ft-normals: 端到端微调法线模型prs-eth/marigold-iid-lighting-v1-1: 光照分析模型prs-eth/marigold-iid-appearance-v1-1: 外观分析模型
3.2 MarigoldDepthEstimation_v2 节点 - 新版深度估计器
这个节点就像一个"立体视觉分析师",能从平面图片中分析出物体的远近关系。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| marigold_model | marigold_model | MARIGOLDMODEL | - | 接收模型加载器的输出 | 预加载的模型管道 | 连接MarigoldModelLoader的输出 |
| image | image | IMAGE | - | 要分析的图片 | 输入图像数据 | 连接图片加载节点 |
| seed | seed | 0-无限大 | 123 | 随机数种子,控制结果的随机性 | 控制随机数生成器的种子值 | 相同种子产生相同结果,用于复现 |
| denoise_steps | denoise_steps | 1-4096 | 4 | AI思考的步数,越多越精确但越慢 | 去噪扩散步数 | LCM模型用4步,普通模型用10-50步 |
| ensemble_size | ensemble_size | 1-4096 | 3 | 生成多少个版本然后合并,越多越准确 | 集成预测的数量 | 3-10个比较合适,太多会很慢 |
| processing_resolution | processing_resolution | 64-4096 | 768 | 处理图片的分辨率大小 | 内部处理分辨率 | 768适合大多数情况,显存不够可以降低 |
| scheduler | scheduler | DDIMScheduler/LCMScheduler | LCMScheduler | 选择AI的工作方式 | 扩散调度器类型 | LCM模型用LCMScheduler,其他用DDIMScheduler |
| use_taesd_vae | use_taesd_vae | True/False | False | 是否使用轻量级图像编码器 | 是否使用TAESD VAE | 显存不够时开启,会稍微降低质量 |
| keep_model_loaded | keep_model_loaded | True/False | False | 是否保持模型在内存中 | 是否保持模型加载状态 | 批量处理时开启可以加速 |
3.3 MarigoldDepthEstimation_v2_video 节点 - 新版视频深度估计器
这个节点就像一个"视频立体分析师",专门处理视频序列,让前后帧之间的深度变化更平滑。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| marigold_model | marigold_model | MARIGOLDMODEL | - | 接收模型加载器的输出 | 预加载的模型管道 | 连接MarigoldModelLoader的输出 |
| images | images | IMAGE | - | 要处理的视频帧序列 | 输入图像序列 | 连接视频帧加载节点 |
| seed | seed | 0-无限大 | 123 | 随机数种子,控制结果的随机性 | 控制随机数生成器的种子值 | 相同种子产生相同结果 |
| denoise_steps | denoise_steps | 1-4096 | 4 | AI思考的步数 | 去噪扩散步数 | 视频处理建议用较少步数以提高速度 |
| processing_resolution | processing_resolution | 64-4096 | 768 | 处理图片的分辨率大小 | 内部处理分辨率 | 768适合大多数情况 |
| scheduler | scheduler | DDIMScheduler/LCMScheduler | LCMScheduler | 选择AI的工作方式 | 扩散调度器类型 | LCM模型用LCMScheduler |
| blend_factor | blend_factor | 0.0-1.0 | 0.1 | 前一帧对当前帧的影响程度 | 帧间混合系数 | 0.1-0.3比较合适,太高会模糊 |
| use_taesd_vae | use_taesd_vae | True/False | True | 是否使用轻量级图像编码器 | 是否使用TAESD VAE | 视频处理建议开启以节省显存 |
| keep_model_loaded | keep_model_loaded | True/False | False | 是否保持模型在内存中 | 是否保持模型加载状态 | 视频处理建议开启 |
3.4 MarigoldDepthEstimation 节点 - 经典深度估计器
这个节点是插件的"老版本深度分析师",功能全面但使用相对复杂。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | IMAGE | - | 要分析的图片 | 输入图像数据 | 连接图片加载节点 |
| seed | seed | 0-无限大 | 123 | 随机数种子 | 控制随机数生成器的种子值 | 固定种子可重复结果 |
| denoise_steps | denoise_steps | 1-4096 | 10 | AI思考的步数 | 去噪扩散步数 | 10-50步比较合适 |
| n_repeat | n_repeat | 1-4096 | 10 | 重复生成多少次然后合并 | 集成预测次数 | 10次比较合适,越多越准确但越慢 |
| regularizer_strength | regularizer_strength | 0.001-4096 | 0.02 | 合并时的平滑强度 | 正则化强度 | 一般不需要调整,保持默认值 |
| reduction_method | reduction_method | median/mean | median | 多次结果的合并方式 | 集成方法 | median更稳定,mean更平滑 |
| max_iter | max_iter | 1-4096 | 5 | 合并算法的最大迭代次数 | 最大迭代次数 | 一般不需要调整 |
| tol | tol | 1e-6到1e-1 | 1e-3 | 合并算法的精度要求 | 收敛容差 | 一般不需要调整 |
| invert | invert | True/False | True | 是否反转深度图颜色 | 是否反转深度值 | True让近处变白,适合大多数用途 |
| keep_model_loaded | keep_model_loaded | True/False | True | 是否保持模型在内存中 | 是否保持模型加载状态 | 批量处理时建议开启 |
| n_repeat_batch_size | n_repeat_batch_size | 1-4096 | 2 | 每次处理多少个重复 | 批处理大小 | 显存够的话可以设置为n_repeat的值 |
| use_fp16 | use_fp16 | True/False | True | 是否使用半精度计算 | 是否使用FP16精度 | 开启可节省显存,但可能略微降低质量 |
| scheduler | scheduler | 多个选项 | DDIMScheduler | 选择AI的工作方式 | 扩散调度器类型 | DDIMScheduler最常用 |
| normalize | normalize | True/False | True | 是否标准化输入图像 | 是否对输入进行归一化 | 一般保持开启 |
| model | model | Marigold/marigold-lcm-v1-0 | Marigold | 选择使用的模型 | 模型类型选择 | LCM版本速度快,普通版本质量好 |
3.5 MarigoldDepthEstimationVideo 节点 - 经典视频深度估计器
这个节点是"老版本视频深度分析师",包含光流技术让视频更平滑。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | IMAGE | - | 要处理的视频帧序列 | 输入图像序列 | 连接视频帧加载节点 |
| seed | seed | 0-无限大 | 123 | 随机数种子 | 控制随机数生成器的种子值 | 固定种子可重复结果 |
| first_frame_denoise_steps | first_frame_denoise_steps | 1-4096 | 4 | 第一帧的AI思考步数 | 首帧去噪步数 | 第一帧质量很重要,可以多一些步数 |
| first_frame_n_repeat | first_frame_n_repeat | 1-4096 | 1 | 第一帧重复生成次数 | 首帧集成次数 | 1次就够了,太多会很慢 |
| n_repeat_batch_size | n_repeat_batch_size | 1-4096 | 1 | 每次处理的批量大小 | 批处理大小 | 视频处理建议用1 |
| invert | invert | True/False | True | 是否反转深度图颜色 | 是否反转深度值 | True让近处变白 |
| keep_model_loaded | keep_model_loaded | True/False | True | 是否保持模型在内存中 | 是否保持模型加载状态 | 视频处理建议开启 |
| scheduler | scheduler | 多个选项 | DEISMultistepScheduler | 选择AI的工作方式 | 扩散调度器类型 | DEIS适合视频处理 |
| normalize | normalize | True/False | True | 是否标准化输入图像 | 是否对输入进行归一化 | 一般保持开启 |
| denoise_steps | denoise_steps | 1-4096 | 4 | 后续帧的AI思考步数 | 后续帧去噪步数 | 4步比较合适,速度和质量平衡 |
| flow_warping | flow_warping | True/False | True | 是否使用光流技术 | 是否启用光流扭曲 | 开启可让视频更平滑 |
| flow_depth_mix | flow_depth_mix | 0.0-1.0 | 0.3 | 光流结果和AI结果的混合比例 | 光流深度混合系数 | 0.3比较合适,太高会过度平滑 |
| noise_ratio | noise_ratio | 0.0-1.0 | 0.5 | 添加噪声的比例 | 噪声比例 | 0.5比较合适,增加随机性 |
| dtype | dtype | fp16/bf16/fp32 | fp16 | 计算精度类型 | 数据类型精度 | fp16节省显存,fp32质量最好 |
| model | model | Marigold/marigold-lcm-v1-0 | Marigold | 选择使用的模型 | 模型类型选择 | 根据需要选择 |
3.6 ColorizeDepthmap 节点 - 深度图上色器
这个节点就像一个"彩虹画笔",能把黑白的深度图变成彩色的艺术作品。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | IMAGE | - | 要上色的深度图 | 输入深度图像 | 连接深度估计节点的输出 |
| colorize_method | colorize_method | 多个选项 | Spectral | 选择上色的风格 | 颜色映射方案 | Spectral彩虹色,viridis科学风格 |
上色风格说明:
Spectral: 彩虹光谱色,从红到蓝terrain: 地形色,像地图一样viridis: 科学可视化常用,从紫到黄plasma: 等离子色,从紫到粉inferno: 火焰色,从黑到黄magma: 岩浆色,从黑到白cividis: 色盲友好色twilight: 黄昏色rainbow: 经典彩虹色jet: 传统科学色turbo: 改进的彩虹色
3.7 SaveImageOpenEXR 节点 - EXR格式保存器
这个节点就像一个"专业档案管理员",能把深度图保存成专业的EXR格式文件。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| images | images | IMAGE | - | 要保存的图片 | 输入图像数据 | 连接深度图或其他图像 |
| filename_prefix | filename_prefix | 字符串 | ComfyUI_EXR | 保存文件的名称前缀 | 文件名前缀 | 输入"depth_map"会保存为depth_map_00001.exr |
3.8 RemapDepth 节点 - 深度重映射器
这个节点就像一个"对比度调节器",能调整深度图的明暗范围。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | IMAGE | - | 要调整的深度图 | 输入深度图像 | 连接深度估计节点的输出 |
| min | min | -10.0到1.0 | 0.0 | 最暗部分对应的数值 | 最小映射值 | 0.0表示最暗的地方变成纯黑 |
| max | max | 0.0到10.0 | 1.0 | 最亮部分对应的数值 | 最大映射值 | 1.0表示最亮的地方变成纯白 |
| clamp | clamp | True/False | True | 是否限制数值范围 | 是否截断超出范围的值 | True防止出现异常亮度 |
4. 使用技巧和建议
4.1 新手入门建议
- 从v2版本开始:新版本更简单易用,推荐使用MarigoldModelLoader + MarigoldDepthEstimation_v2
- 选择合适的模型:初学者建议使用
prs-eth/marigold-depth-lcm-v1-0,速度快效果好 - 合理设置分辨率:768像素是最佳选择,太高会很慢,太低质量差
4.2 性能优化技巧
- 显存不够时:
- 开启
use_taesd_vae - 降低
processing_resolution - 使用fp16精度
- 开启
- 提高速度:
- 使用LCM模型
- 减少
denoise_steps - 减少
ensemble_size
- 提高质量:
- 增加
denoise_steps - 增加
ensemble_size - 使用更高分辨率
- 增加
4.3 视频处理建议
- 保持一致性:使用视频专用节点,设置合适的
blend_factor - 平衡速度和质量:视频处理建议用较少的步数和集成次数
- 光流技术:在经典版本中开启
flow_warping可以让视频更平滑
4.4 后处理技巧
- 深度可视化:使用ColorizeDepthmap节点制作彩色深度图
- 专业输出:使用SaveImageOpenEXR保存高质量深度数据
- 范围调整:使用RemapDepth调整深度图的对比度
5. 常见问题解答
Q1: 为什么生成的深度图全黑或全白?
A: 可能是输入图片的问题或参数设置不当。尝试:
- 检查输入图片是否正常
- 调整
invert参数 - 使用RemapDepth节点调整范围
Q2: 显存不够怎么办?
A: 尝试以下方法:
- 开启
use_fp16或use_taesd_vae - 降低
processing_resolution - 减少
ensemble_size或n_repeat - 关闭
keep_model_loaded
Q3: 生成速度太慢怎么办?
A: 可以:
- 使用LCM模型(marigold-lcm-v1-0)
- 减少
denoise_steps(LCM模型用4步) - 减少重复次数
- 使用较低分辨率
Q4: 深度图质量不好怎么办?
A: 尝试:
- 增加
denoise_steps和ensemble_size - 使用更高的
processing_resolution - 确保输入图片清晰且对比度好
- 尝试不同的模型
Q5: 视频深度图闪烁怎么办?
A: 使用视频专用节点:
- MarigoldDepthEstimation_v2_video(推荐)
- 或MarigoldDepthEstimationVideo
- 调整
blend_factor或flow_depth_mix参数
Q6: 模型下载失败怎么办?
A: 确保:
- 网络连接正常
- 有足够的磁盘空间
- 可以访问Hugging Face
- 尝试手动下载模型到指定目录
6. 工作流程示例
6.1 基础深度图生成
图片加载 → MarigoldModelLoader → MarigoldDepthEstimation_v2 → 图片预览
6.2 彩色深度图制作
图片加载 → MarigoldModelLoader → MarigoldDepthEstimation_v2 → ColorizeDepthmap → 图片预览
6.3 专业深度图输出
图片加载 → MarigoldModelLoader → MarigoldDepthEstimation_v2 → RemapDepth → SaveImageOpenEXR
6.4 视频深度图处理
视频帧加载 → MarigoldModelLoader → MarigoldDepthEstimation_v2_video → 视频输出
7. 总结
ComfyUI-Marigold插件是一个功能强大的深度估计工具,提供了从基础到专业的完整解决方案。新手建议从v2版本开始学习,熟练后可以探索更多高级功能。记住,好的深度图需要清晰的输入图片和合适的参数设置,多尝试不同的组合找到最适合你需求的配置。
无论是制作艺术作品、视频后期还是3D建模,这个插件都能为你的创作提供强大的深度信息支持。随着AI技术的发展,相信这个插件会变得越来越好用!