ComfyUI-MVAdapter 插件完全教程
1. 插件简介
插件地址: https://github.com/huanngzh/ComfyUI-MVAdapter
ComfyUI-MVAdapter 是一个超级厉害的插件,它能让你从一张图片或者一段文字描述,生成多个角度的图片!就像你拿着一个物体,从前面、后面、左边、右边各个角度拍照一样。
这个插件能给我们带来什么效果?
- 从文字描述生成多角度图片(比如输入"一只可爱的猫咪",生成6个不同角度的猫咪图片)
- 从一张图片生成其他角度的图片(比如你有一张正面照,能生成侧面照、背面照等)
- 支持涂鸦控制生成(画个简单线条,生成多角度的完整图片)
- 支持LoRA风格控制(让生成的图片有特定的艺术风格)
2. 如何安装
方法一:直接下载
- 打开你的 ComfyUI 安装目录
- 进入
custom_nodes文件夹 - 下载插件到这个文件夹:
git clone https://github.com/huanngzh/ComfyUI-MVAdapter.git - 安装依赖:在插件文件夹里运行
pip install -r requirements.txt - 重启 ComfyUI
方法二:ComfyUI Manager
- 打开 ComfyUI Manager
- 搜索 "MVAdapter"
- 点击安装
- 重启 ComfyUI
3. 节点详细解析
3.1 LdmPipelineLoader 节点 - 本地模型加载器
这个节点就像一个"模型搬运工",专门用来加载你电脑里存放的AI绘画模型文件。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 模型名称 | ckpt_name | 下拉选择 | 任意SDXL模型 | 选择你要用的AI绘画大脑 | 选择checkpoints文件夹中的模型文件 | 选择"sd_xl_base_1.0.safetensors" |
| 管道名称 | pipeline_name | 下拉选择 | MVAdapterT2MVSDXLPipeline | 选择处理图片的方式 | 选择不同的处理管道类型 | 文字生成多视角选T2MV,图片生成多视角选I2MV |
3.2 LdmVaeLoader 节点 - 本地图片编码器加载器
这个节点像一个"图片翻译官",负责把图片转换成AI能理解的数字语言。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| VAE名称 | vae_name | 下拉选择 | 任意VAE文件 | 选择图片翻译官的类型 | 选择VAE模型文件 | 选择"sdxl_vae.safetensors" |
| 提升精度 | upcast_fp32 | 布尔值 | True | 是否用更高精度处理(更清晰但更慢) | 是否将计算提升到FP32精度 | 显存够用选True,不够选False |
3.3 DiffusersMVPipelineLoader 节点 - 在线模型加载器
这个节点像一个"网络下载器",能从网上自动下载AI模型。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 模型名称 | ckpt_name | 文本输入 | stabilityai/stable-diffusion-xl-base-1.0 | 输入网上模型的地址 | HuggingFace模型仓库地址 | 输入"stabilityai/stable-diffusion-xl-base-1.0" |
| 管道名称 | pipeline_name | 下拉选择 | MVAdapterT2MVSDXLPipeline | 选择处理方式 | 选择处理管道类型 | 根据需求选择T2MV或I2MV |
3.4 DiffusersMVVaeLoader 节点 - 在线图片编码器加载器
这个节点像一个"在线翻译服务",从网上下载专门的图片翻译工具。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| VAE名称 | vae_name | 文本输入 | madebyollin/sdxl-vae-fp16-fix | 输入在线VAE模型地址 | HuggingFace VAE模型地址 | 推荐用"madebyollin/sdxl-vae-fp16-fix"省显存 |
3.5 DiffusersMVSchedulerLoader 节点 - 生成步骤控制器
这个节点像一个"绘画节拍器",控制AI画画的节奏和方式。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 管道 | pipeline | 管道对象 | 来自加载器 | 连接前面的模型 | 输入的管道对象 | 连接PipelineLoader的输出 |
| 调度器名称 | scheduler_name | 下拉选择 | EulerAncestralDiscrete | 选择画画的节奏类型 | 选择噪声调度算法 | EulerAncestralDiscrete适合大多数情况 |
| 启用SNR偏移 | shift_snr | 布尔值 | True | 是否优化画面质量 | 是否启用信噪比偏移 | 一般保持True获得更好效果 |
| 偏移模式 | shift_mode | 下拉选择 | interpolated | 优化方式 | SNR偏移的计算模式 | interpolated是平衡选择 |
| 偏移强度 | shift_scale | 浮点数 | 8.0 | 优化强度(0-50) | SNR偏移的强度系数 | 8.0是推荐值,可以微调 |
3.6 CustomLoraModelLoader 节点 - 风格模型加载器
这个节点像一个"化妆师",给生成的图片添加特定的艺术风格。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 管道 | pipeline | 管道对象 | 来自加载器 | 连接前面的模型 | 输入的管道对象 | 连接前面节点的输出 |
| LoRA名称 | lora_name | 下拉选择 | 任意LoRA文件 | 选择风格包 | 选择LoRA模型文件 | 选择"anime_style.safetensors" |
| 模型强度 | strength_model | 浮点数 | 1.0 | 风格强度(-100到100) | LoRA对模型的影响强度 | 1.0是标准强度,0.5是轻微风格 |
| 启用 | enable | 布尔值 | True | 是否使用这个风格 | 是否启用当前LoRA | 不想用某个风格时设为False |
| 最后LoRA节点 | last_lora_node | 布尔值 | True | 是否是最后一个风格节点 | 是否为最后一个LoRA节点 | 只有一个LoRA时选True |
3.7 ControlNetModelLoader 节点 - 控制网络加载器
这个节点像一个"导演",能根据你的线稿或涂鸦来指导AI画画。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 管道 | pipeline | 管道对象 | 来自加载器 | 连接前面的模型 | 输入的管道对象 | 连接前面节点的输出 |
| 控制网络名称 | controlnet_name | 文本输入 | xinsir/controlnet-scribble-sdxl-1.0 | 输入控制网络地址 | ControlNet模型的HuggingFace地址 | 涂鸦控制用scribble,边缘控制用canny |
3.8 DiffusersMVModelMakeup 节点 - 模型组装器
这个节点像一个"总装车间",把所有零件组装成完整的AI绘画机器。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 管道 | pipeline | 管道对象 | 来自加载器 | 主要的AI大脑 | 输入的管道对象 | 连接PipelineLoader输出 |
| 调度器 | scheduler | 调度器对象 | 来自调度器加载器 | 画画节拍器 | 输入的调度器对象 | 连接SchedulerLoader输出 |
| 自动编码器 | autoencoder | VAE对象 | 来自VAE加载器 | 图片翻译官 | 输入的VAE对象 | 连接VaeLoader输出 |
| 加载MV适配器 | load_mvadapter | 布尔值 | True | 是否启用多视角功能 | 是否加载多视角适配器 | 想要多视角效果必须选True |
| 适配器路径 | adapter_path | 文本输入 | huanngzh/mv-adapter | 多视角模型地址 | MV适配器的下载地址 | 保持默认即可 |
| 适配器名称 | adapter_name | 下拉选择 | mvadapter_t2mv_sdxl.safetensors | 选择适配器类型 | 具体的适配器文件名 | T2MV用于文字生成,I2MV用于图片生成 |
| 视角数量 | num_views | 整数 | 6 | 生成几个角度(1-12) | 生成的视角数量 | 6个角度最常用(前后左右等) |
| 启用VAE切片 | enable_vae_slicing | 布尔值 | True | 是否省显存模式 | 是否启用VAE内存优化 | 显存不够选True |
| 启用VAE平铺 | enable_vae_tiling | 布尔值 | False | 是否启用平铺处理 | 是否启用VAE平铺优化 | 一般保持False |
3.9 DiffusersSampler 节点 - 普通图片生成器
这个节点像一个"普通画家",只能画一张图片。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 管道 | pipeline | 管道对象 | 来自组装器 | 连接组装好的AI | 输入的管道对象 | 连接ModelMakeup输出 |
| 提示词 | prompt | 多行文本 | a photo of a cat | 告诉AI画什么 | 正面提示词 | "一只可爱的橘猫坐在草地上" |
| 负面提示词 | negative_prompt | 多行文本 | ugly, blurry | 告诉AI不要画什么 | 负面提示词 | "模糊,丑陋,变形" |
| 宽度 | width | 整数 | 768 | 图片宽度(像素) | 生成图片的宽度 | 768或1024都不错 |
| 高度 | height | 整数 | 768 | 图片高度(像素) | 生成图片的高度 | 保持和宽度一样 |
| 步数 | steps | 整数 | 50 | 画画精细程度(1-2000) | 推理步数 | 20-50步够用,更多更慢 |
| 引导强度 | cfg | 浮点数 | 7.0 | 听话程度(0-100) | 分类器自由引导强度 | 7.0是标准值,太高会过度 |
| 随机种子 | seed | 整数 | 0 | 随机数种子 | 控制随机性的种子值 | 相同种子产生相同结果 |
3.10 DiffusersMVSampler 节点 - 多视角图片生成器
这个节点是插件的核心,像一个"全能摄影师",能从多个角度拍摄同一个物体。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 管道 | pipeline | 管道对象 | 来自组装器 | 连接组装好的AI | 输入的管道对象 | 连接ModelMakeup输出 |
| 视角数量 | num_views | 整数 | 6 | 生成几个角度(1-12) | 生成的视角数量 | 6个角度最常用 |
| 提示词 | prompt | 多行文本 | an astronaut riding a horse | 告诉AI画什么 | 正面提示词 | "一个宇航员骑马" |
| 负面提示词 | negative_prompt | 多行文本 | ugly, blurry | 告诉AI不要画什么 | 负面提示词 | "模糊,丑陋,变形" |
| 宽度 | width | 整数 | 768 | 图片宽度(像素) | 生成图片的宽度 | 768或1024都不错 |
| 高度 | height | 整数 | 768 | 图片高度(像素) | 生成图片的高度 | 保持和宽度一样 |
| 步数 | steps | 整数 | 50 | 画画精细程度(1-2000) | 推理步数 | 20-50步够用 |
| 引导强度 | cfg | 浮点数 | 7.0 | 听话程度(0-100) | 分类器自由引导强度 | 7.0是标准值 |
| 随机种子 | seed | 整数 | 0 | 随机数种子 | 控制随机性的种子值 | 相同种子产生相同结果 |
| 参考图片 | reference_image | 图片 | 可选 | 提供一张参考图 | 用于图生图的参考图像 | 上传你想要多角度的图片 |
| 控制图片 | controlnet_image | 图片 | 可选 | 提供控制线稿 | ControlNet的控制图像 | 上传涂鸦或线稿 |
| 控制强度 | controlnet_conditioning_scale | 浮点数 | 1.0 | 控制图片影响程度 | ControlNet的影响强度 | 1.0是标准强度 |
| 方位角度 | azimuth_degrees | 列表 | [0,45,90,180,270,315] | 拍摄角度列表 | 各个视角的方位角度 | 0是正面,90是右侧,180是背面 |
3.11 BiRefNet 节点 - 背景移除工具
这个节点像一个"抠图大师",能自动把图片的背景去掉。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 模型名称 | ckpt_name | 文本输入 | briaai/RMBG-2.0 | 抠图工具的类型 | 背景移除模型地址 | 保持默认即可,效果很好 |
3.12 ImagePreprocessor 节点 - 图片预处理器
这个节点像一个"图片美容师",把图片处理成AI喜欢的样子。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 移除背景函数 | remove_bg_fn | 函数对象 | 来自BiRefNet | 连接抠图工具 | 背景移除函数 | 连接BiRefNet的输出 |
| 图片 | image | 图片 | 输入图片 | 要处理的图片 | 输入的图像数据 | 上传你的图片 |
| 高度 | height | 整数 | 768 | 处理后图片高度 | 输出图像高度 | 768是常用尺寸 |
| 宽度 | width | 整数 | 768 | 处理后图片宽度 | 输出图像宽度 | 保持和高度一样 |
3.13 ControlImagePreprocessor 节点 - 控制图片预处理器
这个节点像一个"图片排列师",把6张不同角度的图片整理好。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 正面视角 | front_view | 图片 | 输入图片 | 正面角度的图片 | 0度角的图像 | 上传正面图片 |
| 右前视角 | front_right_view | 图片 | 输入图片 | 右前角度的图片 | 45度角的图像 | 上传右前图片 |
| 右侧视角 | right_view | 图片 | 输入图片 | 右侧角度的图片 | 90度角的图像 | 上传右侧图片 |
| 背面视角 | back_view | 图片 | 输入图片 | 背面角度的图片 | 180度角的图像 | 上传背面图片 |
| 左侧视角 | left_view | 图片 | 输入图片 | 左侧角度的图片 | 270度角的图像 | 上传左侧图片 |
| 左前视角 | front_left_view | 图片 | 输入图片 | 左前角度的图片 | 315度角的图像 | 上传左前图片 |
| 宽度 | width | 整数 | 768 | 处理后图片宽度 | 输出图像宽度 | 768是常用尺寸 |
| 高度 | height | 整数 | 768 | 处理后图片高度 | 输出图像高度 | 保持和宽度一样 |
3.14 ViewSelector 节点 - 视角选择器
这个节点像一个"摄影角度选择器",让你决定要从哪些角度拍照。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 正面视角 | front_view | 布尔值 | True | 是否要正面角度 | 是否生成0度视角 | 想要正面照选True |
| 右前视角 | front_right_view | 布尔值 | True | 是否要右前角度 | 是否生成45度视角 | 想要右前角度选True |
| 右侧视角 | right_view | 布尔值 | True | 是否要右侧角度 | 是否生成90度视角 | 想要右侧照选True |
| 背面视角 | back_view | 布尔值 | True | 是否要背面角度 | 是否生成180度视角 | 想要背面照选True |
| 左侧视角 | left_view | 布尔值 | True | 是否要左侧角度 | 是否生成270度视角 | 想要左侧照选True |
| 左前视角 | front_left_view | 布尔值 | True | 是否要左前角度 | 是否生成315度视角 | 想要左前角度选True |
4. 使用技巧和建议
4.1 显存优化技巧
- 使用FP16 VAE:选择
madebyollin/sdxl-vae-fp16-fix可以节省显存 - 启用VAE切片:在 DiffusersMVModelMakeup 节点中设置
enable_vae_slicing为 True - 降低图片尺寸:如果显存不够,可以把宽高从1024降到768或512
4.2 质量提升技巧
- 合适的步数:20-50步通常就够了,太多步数浪费时间
- 引导强度调节:CFG在5-10之间效果最好,太高会过度饱和
- 负面提示词:加上"blurry, ugly, deformed, low quality"等词汇
- 种子固定:找到好的效果后记住种子值,可以复现
4.3 多视角生成技巧
- 选择合适的适配器:文字生成用T2MV,图片生成用I2MV
- 视角数量选择:6个视角最平衡,2-4个视角适合特定需求
- 参考图片质量:用于I2MV的参考图片最好背景干净、主体清晰
4.4 LoRA使用技巧
- 强度控制:LoRA强度在0.5-1.5之间比较合适
- 多LoRA叠加:可以同时使用多个LoRA,但要注意强度平衡
- 风格匹配:选择与你想要效果匹配的LoRA风格
5. 常见问题解答
Q1: 为什么生成的图片质量不好?
A:
- 检查是否使用了合适的VAE(推荐sdxl-vae-fp16-fix)
- 调整CFG值到7-10之间
- 增加负面提示词
- 确保提示词描述清晰具体
Q2: 显存不够怎么办?
A:
- 启用VAE切片功能
- 使用FP16精度的VAE
- 降低图片分辨率到768x768或512x512
- 减少生成的视角数量
Q3: 多视角图片不一致怎么办?
A:
- 确保加载了正确的MV适配器
- 检查适配器名称是否匹配(T2MV或I2MV)
- 提示词要描述清楚物体的特征
- 尝试调整mv_scale参数
Q4: ControlNet控制效果不明显?
A:
- 检查控制图片是否清晰
- 调整controlnet_conditioning_scale强度
- 确保使用了正确类型的ControlNet模型
- 控制图片的线条要明确
Q5: 生成速度太慢怎么办?
A:
- 减少推理步数到20-30步
- 启用各种优化选项
- 使用更快的调度器如EulerAncestralDiscrete
- 考虑升级硬件
Q6: 如何选择合适的视角?
A:
- 对于人物:前面、左侧、右侧、背面比较重要
- 对于物体:可以选择更多角度展示细节
- 使用ViewSelector节点自定义需要的角度
- 2-4个视角适合快速预览,6个视角适合完整展示
6. 工作流程示例
6.1 文字生成多视角图片流程
- LdmPipelineLoader → 加载基础模型
- LdmVaeLoader → 加载VAE
- DiffusersMVSchedulerLoader → 设置调度器
- DiffusersMVModelMakeup → 组装模型(选择T2MV适配器)
- DiffusersMVSampler → 输入提示词生成多视角图片
6.2 图片生成多视角图片流程
- BiRefNet → 创建背景移除工具
- ImagePreprocessor → 处理输入图片
- LdmPipelineLoader → 加载基础模型
- LdmVaeLoader → 加载VAE
- DiffusersMVSchedulerLoader → 设置调度器
- DiffusersMVModelMakeup → 组装模型(选择I2MV适配器)
- DiffusersMVSampler → 连接处理后的图片生成多视角
6.3 带LoRA风格的多视角生成
- 按照基础流程搭建
- 在DiffusersMVModelMakeup之前添加CustomLoraModelLoader
- 可以串联多个LoRA节点实现风格叠加
- 最后一个LoRA节点的
last_lora_node设为True
7. 总结
ComfyUI-MVAdapter是一个功能强大的多视角图像生成插件,它让我们能够:
- 从文字创造多角度图片:就像有了一个全能摄影师
- 从单图扩展多视角:一张照片变成全方位展示
- 结合各种控制方式:涂鸦、LoRA、ControlNet等
- 灵活选择视角:想要几个角度就生成几个
掌握这个插件,你就能创造出更加丰富和立体的AI艺术作品!记住,多尝试不同的参数组合,找到最适合你需求的设置。
小贴士:刚开始使用时,建议从简单的文字生成多视角开始练习,熟悉各个参数的作用后,再尝试更复杂的图片生成和风格控制功能。