ComfyUI-Depth-Pro 插件保姆级教程
1. 插件简介
插件原地址: https://github.com/spacepxl/ComfyUI-Depth-Pro
这个插件是什么呢?简单来说,它就像是给你的 ComfyUI 装了一双"超级眼睛",能够看出照片里每个物体离相机有多远。
想象一下,你看一张照片的时候,能够一眼就知道照片里的人站在前面,后面的山在很远的地方,中间的树在不远不近的位置。这个插件就是让 AI 也有这样的"空间感知能力"!
它能给我们带来什么效果?
- 👁️ 深度感知:能够分析照片中每个像素点的距离信息,就像有了立体视觉
- 📏 精确测量:不仅能知道远近,还能告诉你具体的距离(比如3米、10米)
- 🎯 焦距计算:能够推算出拍摄这张照片时相机的焦距参数
- 🔄 格式转换:可以把精确距离转换成适合其他工具使用的相对深度
- 📐 参数换算:提供各种相机参数之间的转换工具
通俗比喻: 如果说普通的图片是"平面画",那这个插件就是"立体雕塑师"。它能把平面画变成立体模型,告诉你每个部分的前后关系和具体位置。
2. 如何安装
前置要求
在安装这个插件之前,你需要确保:
- timm 库版本:需要更新到 0.9.16 或 1.0.9 版本
- 网络连接:首次使用时需要下载模型文件
方法一:使用 ComfyUI Manager(推荐)
-
安装 ComfyUI Manager
- 如果你还没有安装 ComfyUI Manager,先安装它
- 这是管理插件最方便的工具
-
通过管理器安装
- 打开 ComfyUI Manager
- 搜索 "ComfyUI-Depth-Pro"
- 点击安装即可
方法二:手动安装
-
下载插件
- 打开浏览器,访问:https://github.com/spacepxl/ComfyUI-Depth-Pro
- 点击绿色的 "Code" 按钮,选择 "Download ZIP"
- 下载完成后解压文件
-
放到正确位置
- 找到你的 ComfyUI 安装文件夹
- 进入
custom_nodes文件夹(如果没有就新建一个) - 把解压后的
ComfyUI-Depth-Pro文件夹放进去
-
安装依赖
- 打开命令行,进入插件文件夹
- 运行:
pip install -r requirements.txt
-
重启 ComfyUI
- 关闭 ComfyUI 程序
- 重新启动,插件就安装好了
方法三:使用命令行(适合有技术基础的朋友)
cd ComfyUI/custom_nodes
git clone https://github.com/spacepxl/ComfyUI-Depth-Pro.git
cd ComfyUI-Depth-Pro
pip install -r requirements.txt
3. 节点详细解析
3.1 LoadDepthPro 节点是干嘛的?
这个节点就像是一个"超级眼睛的安装程序",负责加载和准备深度分析的 AI 模型。
想象一下,你要使用一台高精度的测距仪,首先需要把它从包装盒里拿出来,安装电池,校准设备。这个节点就是干这个事儿的!它会自动下载必要的 AI 模型文件,然后把"超级眼睛"准备好,等待分析图片。
简单来说: 这个节点负责加载 Depth Pro 模型,是整个深度分析流程的第一步,必须先运行它才能进行后续的深度分析。
3.2 LoadDepthPro 节点参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值类型 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| precision | precision | 下拉选择 | fp16 | 这是"精度选择器",就像选择测量工具的精确度,fp16速度快但稍微不准,fp32慢但更精确 | 模型运行的数值精度,影响计算速度和准确性 | 一般选择fp16就够用了,除非你需要极高精度才选fp32 |
3.3 DepthPro 节点是干嘛的?
这个节点就像是那个"超级眼睛"本身,负责分析图片并告诉你每个位置的距离信息。
想象一下,你拿着一个神奇的测距仪对着一张照片扫描,它能告诉你照片里每个像素点代表的物体离相机有多远。这个节点就是这个神奇的测距仪!
简单来说: 这个节点是核心功能,接收图片输入,输出详细的距离信息和相机焦距估算。
3.4 DepthPro 节点参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值类型 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| depth_pro_model | depth_pro_model | DEPTH_PRO_MODEL | 必须连接 | 这是"超级眼睛设备",必须从LoadDepthPro节点连接过来 | 预加载的Depth Pro模型实例 | 连接LoadDepthPro节点的输出到这里 |
| image | image | IMAGE | 必须连接 | 这是要分析的"照片",就像你要测量距离的目标图片 | 输入的图像数据,用于深度分析 | 连接任何图片加载节点或图片生成节点 |
| focal_px | focal_px | FLOAT | 可选 | 这是"相机焦距提示",如果你知道拍照时的焦距,可以告诉AI让结果更准确 | 可选的焦距像素值,用于提高深度估计精度 | 如果不知道就不连接,让AI自己估算 |
3.5 MetricDepthToRelative 节点是干嘛的?
这个节点就像是一个"距离翻译器",把具体的米数距离转换成相对的远近关系。
想象一下,你有一张照片,AI 告诉你前景是2米,中景是10米,背景是100米。但有时候你不需要知道具体米数,只需要知道"近、中、远"的关系。这个节点就是把具体数字转换成0到1之间的相对值,0代表最近,1代表最远。
简单来说: 这个节点把精确的距离数据转换成适合其他工具使用的相对深度图,特别适合用于 ControlNet 等需要相对深度的场合。
3.6 MetricDepthToRelative 节点参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值类型 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| depth | depth | IMAGE | 必须连接 | 这是要转换的"距离地图",通常来自DepthPro节点的输出 | 输入的深度图像数据 | 连接DepthPro节点的metric_depth输出 |
| per_image | per_image | 布尔值 | True | 这是"单独处理开关",True表示每张图片单独计算远近,False表示所有图片一起计算 | 是否对每张图像独立进行归一化处理 | 一般保持True,除非你要处理连续的图片序列 |
| invert | invert | 布尔值 | True | 这是"颠倒开关",True表示近的地方亮,远的地方暗;False则相反 | 是否反转深度值的明暗关系 | True适合大多数用途,让近处显示为白色 |
| gamma | gamma | 浮点数 | 1.0 | 这是"亮度调节器",就像调节显示器亮度,大于1让图片偏亮,小于1让图片偏暗 | 伽马校正值,用于调整深度图的对比度 | 1.0是正常,2.0让中间调更亮,0.5让中间调更暗 |
3.7 MetricDepthToInverse 节点是干嘛的?
这个节点就像是一个"简单距离转换器",专门把具体距离转换成一种特殊的相对关系。
想象一下,你有一个公式:距离越远,数值越小。这个节点就是应用这个简单公式,把原始的距离数据进行数学转换。它比 MetricDepthToRelative 节点更简单,只做一个固定的数学运算。
简单来说: 这个节点提供一种简单的深度转换方式,使用固定的数学公式将距离数据转换成反比关系。
3.8 MetricDepthToInverse 节点参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值类型 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| depth | depth | IMAGE | 必须连接 | 这是要转换的"距离地图",和上面的节点一样,通常来自DepthPro节点 | 输入的深度图像数据 | 连接DepthPro节点的metric_depth输出 |
3.9 FocalFromList 节点是干嘛的?
这个节点就像是一个"焦距提取器",从一堆焦距数据中挑出你要的那一个。
想象一下,你拍了一组照片,每张照片的焦距都被记录在一个列表里。现在你想要第3张照片的焦距信息,这个节点就能帮你从列表中准确提取出来。
简单来说: 这个节点从焦距列表中提取指定位置的焦距值,适合处理多张图片时获取单张图片的焦距信息。
3.10 FocalFromList 节点参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值类型 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| focal_list | focal_list | LIST | 必须连接 | 这是"焦距清单",包含了多个焦距数值的列表 | 焦距值的列表数据 | 连接DepthPro节点的focal_list输出 |
| batch_index | batch_index | 整数 | 0 | 这是"序号选择器",告诉节点你要第几个焦距值,从0开始计数 | 要提取的焦距值在列表中的索引位置 | 0表示第一个,1表示第二个,以此类推 |
3.11 FocalPXtoMM 节点是干嘛的?
这个节点就像是一个"焦距单位转换器",把像素单位的焦距转换成毫米单位。
想象一下,你有一个数字相机,屏幕上显示焦距是"1000像素",但你想知道这相当于传统相机的多少毫米焦距。这个节点就是做这个转换的计算器!
简单来说: 这个节点将以像素为单位的焦距转换为以毫米为单位的焦距,方便与传统相机参数对比。
3.12 FocalPXtoMM 节点参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值类型 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| focal_px | focal_px | 浮点数 | 1000 | 这是"像素焦距",就像数字相机显示的焦距数值 | 以像素为单位的焦距值 | 通常从DepthPro节点获取,或者手动输入已知值 |
| sensor_mm | sensor_mm | 浮点数 | 24.576 | 这是"感光元件尺寸",就像胶卷的大小,不同相机有不同尺寸 | 相机传感器的物理尺寸(毫米) | 24.576是常见的全画幅相机尺寸,根据实际相机调整 |
| image_width | image_width | 整数 | 1024 | 这是"图片宽度",告诉节点图片有多少像素宽 | 图像的宽度像素数 | 输入你处理的图片的实际宽度 |
| image_height | image_height | 整数 | 1 | 这是"图片高度",告诉节点图片有多少像素高 | 图像的高度像素数 | 输入你处理的图片的实际高度 |
3.13 FocalMMtoPX 节点是干嘛的?
这个节点就像是上面那个转换器的"反向版本",把毫米单位的焦距转换成像素单位。
想象一下,你知道传统相机的焦距是"50毫米",但你想知道在数字图片处理中这相当于多少像素焦距。这个节点就是做反向计算的!
简单来说: 这个节点将以毫米为单位的焦距转换为以像素为单位的焦距,方便在数字图像处理中使用。
3.14 FocalMMtoPX 节点参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值类型 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| focal_mm | focal_mm | 浮点数 | 50 | 这是"毫米焦距",就像传统相机镜头上标注的焦距数值 | 以毫米为单位的焦距值 | 50mm是标准镜头,85mm是人像镜头,24mm是广角镜头 |
| sensor_mm | sensor_mm | 浮点数 | 24.576 | 这是"感光元件尺寸",和上面节点的意思一样,相机传感器的物理大小 | 相机传感器的物理尺寸(毫米) | 24.576是全画幅,16是APS-C画幅,根据相机类型调整 |
| image_width | image_width | 整数 | 1024 | 这是"图片宽度",数字图片的像素宽度 | 图像的宽度像素数 | 输入你要处理的图片的实际宽度像素 |
| image_height | image_height | 整数 | 1 | 这是"图片高度",数字图片的像素高度 | 图像的高度像素数 | 输入你要处理的图片的实际高度像素 |
4. 使用技巧和建议
🎯 新手入门技巧
-
从基础工作流开始
- 先尝试:Load Image → LoadDepthPro → DepthPro → MetricDepthToRelative → Preview
- 熟悉每个节点的基本功能
- 观察不同参数对结果的影响
-
理解深度类型
- 精确深度:DepthPro 输出的原始数据,单位是米,适合3D建模
- 相对深度:转换后的0-1数据,适合 ControlNet 等工具
- 根据后续用途选择合适的深度类型
🔧 进阶使用技巧
-
精度选择策略
- fp16:速度快,显存占用少,适合大多数情况
- fp32:精度高,但速度慢,显存占用大,适合精确测量需求
-
参数调优建议
- gamma 调节:1.0是中性,>1.0增强对比度,<1.0减弱对比度
- invert 设置:根据后续工具的需求决定是否反转
- per_image:单张图片用True,图片序列考虑用False
📐 焦距转换技巧
-
常见焦距对应关系
- 24mm = 广角镜头,适合风景摄影
- 50mm = 标准镜头,接近人眼视角
- 85mm = 人像镜头,适合拍摄人物
- 200mm+ = 长焦镜头,适合远距离拍摄
-
传感器尺寸参考
- 全画幅:36×24mm(对角线43.3mm)
- APS-C:23.6×15.8mm(对角线28.4mm)
- 微4/3:17.3×13mm(对角线21.6mm)
5. 常见问题解答
❓ 提示"vit_large_patch14_dinov2"错误怎么办?
答:
- 这是 timm 库版本过旧导致的
- 更新 timm 库:
pip install --upgrade timm - 确保版本在 0.9.16 或 1.0.9 以上
- 重启 ComfyUI
❓ 模型下载失败怎么办?
答:
- 检查网络连接是否正常
- 尝试手动下载模型文件到
ComfyUI/models/depth/ml-depth-pro/ - 从 HuggingFace 下载:https://huggingface.co/spacepxl/ml-depth-pro
- 确保文件名为
depth_pro.fp16.safetensors
❓ 深度图看起来不对怎么办?
答:
- 检查输入图片质量,模糊或低分辨率图片效果差
- 尝试调整 gamma 参数改善对比度
- 确认 invert 参数设置是否符合需求
- 某些特殊场景(如纯色背景)可能效果不佳
❓ 显存不够用怎么办?
答:
- 使用 fp16 精度而不是 fp32
- 降低输入图片的分辨率
- 关闭其他占用显存的程序
- 考虑分批处理多张图片
❓ 焦距转换结果不准确?
答:
- 确认传感器尺寸参数是否正确
- 检查图片尺寸参数是否匹配实际图片
- 不同相机品牌的传感器尺寸可能有差异
- 可以查阅相机规格书获取准确的传感器尺寸
❓ 处理速度很慢怎么办?
答:
- 使用 fp16 精度
- 确保使用 GPU 而不是 CPU 处理
- 检查 CUDA 和 PyTorch 是否正确安装
- 降低图片分辨率可以显著提高速度
6. 实用应用场景
🎨 3D 建模和渲染
- 深度图生成:为2D图片创建精确的深度信息
- 3D重建:结合深度和焦距信息重建3D场景
- 虚拟相机设置:使用估算的焦距设置3D软件中的相机
- 景深效果:基于深度信息创建自然的景深模糊
🖼️ 图像处理和编辑
- ControlNet 深度控制:为 Stable Diffusion 提供深度控制
- 选择性编辑:基于深度信息选择特定距离的物体
- 背景替换:利用深度信息精确分离前景和背景
- 立体效果:创建3D立体图像或红蓝3D效果
📷 摄影分析和优化
- 焦距分析:分析照片的拍摄参数
- 构图优化:基于深度信息优化照片构图
- 镜头选择:根据深度分布选择合适的镜头焦距
- 拍摄参数推荐:为类似场景推荐拍摄参数
🎬 视频和动画制作
- 深度序列:为视频序列生成连续的深度信息
- 相机跟踪:分析视频中的相机运动参数
- 后期合成:基于深度信息进行精确的视频合成
- 虚拟制片:为虚拟制片提供真实的深度参考
7. 工作流程示例
🔧 基础深度分析流程
Load Image → LoadDepthPro → DepthPro → MetricDepthToRelative → Preview Image
🎨 ControlNet 深度控制流程
Load Image → LoadDepthPro → DepthPro → MetricDepthToRelative → ControlNet Apply → Generate
📐 焦距分析流程
Load Image → LoadDepthPro → DepthPro → FocalFromList → FocalPXtoMM → Display
🔄 批量处理流程
Load Images → LoadDepthPro → DepthPro → MetricDepthToRelative → Save Images
8. 高级应用技巧
🎯 精确深度测量
- 使用 fp32 精度获得最高准确度
- 结合已知的焦距信息提高估算精度
- 对比多个角度的照片验证深度一致性
- 使用标准物体作为距离参考校准结果
🔄 工作流优化
- 预加载模型避免重复加载时间
- 批量处理多张图片提高效率
- 合理设置精度平衡速度和质量
- 使用适当的图片分辨率避免过度计算
📊 结果验证和调优
- 对比不同参数设置的结果差异
- 使用已知距离的场景验证准确性
- 调整 gamma 值优化深度图的视觉效果
- 根据后续应用需求选择合适的输出格式
9. 总结
ComfyUI-Depth-Pro 插件就像是给你的 ComfyUI 装上了一双"超级眼睛"。它让你能够:
✨ 精确深度感知 - 像专业测量师一样分析图片的空间信息
📏 多种格式输出 - 提供适合不同用途的深度数据格式
📐 焦距参数分析 - 推算和转换各种相机参数
🔄 灵活数据处理 - 提供多种深度数据转换和处理工具
这个插件特别适合:
- 🎨 3D艺术家 - 需要从2D图片创建3D内容的创作者
- 📷 摄影师 - 想要分析照片拍摄参数的专业人士
- 🖼️ 图像处理师 - 需要精确深度控制的高级用户
- 🎬 视频制作者 - 需要深度信息进行后期合成的创作者
记住最重要的几点:
- 模型加载是第一步 - 必须先运行 LoadDepthPro 节点
- 选择合适的精度 - fp16 适合大多数情况,fp32 用于高精度需求
- 理解深度类型 - 精确深度用于测量,相对深度用于图像处理
- 合理设置参数 - 根据具体应用调整转换参数
通过这个插件,你可以让 ComfyUI 具备强大的空间感知能力,为你的创作工作流程添加全新的维度。无论是简单的深度分析,还是复杂的3D重建,都能轻松胜任!
希望这个教程能帮助你快速掌握 ComfyUI-Depth-Pro 插件的使用方法!记住,深度信息是连接2D和3D世界的桥梁,善用这个工具能让你的创作更加立体和真实。祝你使用愉快! 🎉