LanPaint 插件完全保姆级教程
1. 插件简介
插件地址: https://github.com/scraed/LanPaint
LanPaint 是一个超级厉害的 ComfyUI 插件,专门用来做"修图填补"的工作。你可以把它想象成一个超级聪明的 PS 修复画笔,但比 PS 更智能!
它能干什么?
- 把图片中不想要的东西擦掉,然后自动填补上合理的内容
- 修复老照片上的划痕和破损
- 改变图片中人物的表情、衣服颜色等
- 扩展图片边缘(让小图变大图)
- 生成一致的角色形象
最大的特点:
- 不需要额外训练模型,直接用你现有的模型就行
- 支持几乎所有主流模型(SD 1.5、SDXL、SD 3.5、Flux 等)
- 有"思考模式",会多想几遍再下笔,效果更好
- 操作简单,就像用普通的 KSampler 一样
2. 如何安装
方法一:通过 ComfyUI-Manager 安装(推荐)
- 确保你已经安装了 ComfyUI-Manager
- 在 ComfyUI-Manager 中搜索 "LanPaint"
- 点击安装即可
方法二:手动安装
- 在 ComfyUI-Manager 中点击 "Install via Git URL"
- 输入:
https://github.com/scraed/LanPaint.git - 点击安装
方法三:直接下载
- 下载插件到
ComfyUI/custom_nodes文件夹 - 重启 ComfyUI
安装完成后,重启 ComfyUI,你就能在"sampling"分类下找到 LanPaint 的节点了。
3. 节点详细解析
3.1 LanPaint KSampler 节点
这是最基础、最好用的节点,就像一个智能版的普通 KSampler。它会在每一步生成前先"思考"几遍,确保填补的内容和周围环境协调。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| model | model | MODEL类型 | 任意模型 | 选择用哪个AI模型来画画 | 用于去噪的扩散模型 | 连接你的模型加载器,比如 SDXL 模型 |
| seed | seed | 0-最大整数 | 随机或固定值 | 随机种子,控制每次生成是否一样 | 控制随机数生成的种子值 | 设为0每次都不同,设固定数字每次都一样 |
| steps | steps | 1-10000 | 20-50 | 总共要画多少步,步数越多越精细 | 扩散采样的总步数 | 简单任务用20步,复杂任务用50步 |
| cfg | cfg | 0.0-100.0 | 5.0-8.0 | 控制AI听话程度,数字越大越听提示词 | 分类器自由引导强度 | 7.5是经典值,太高会过度拟合 |
| sampler_name | sampler_name | 采样器列表 | euler | 选择画画的方式,就像选画笔类型 | 采样算法选择 | euler最稳定,dpmpp_2m质量好但慢 |
| scheduler | scheduler | 调度器列表 | karras | 控制每一步的力度变化 | 噪声调度策略 | karras适合大部分情况 |
| positive | positive | CONDITIONING | 正面提示词 | 告诉AI你想要什么内容 | 正向条件引导 | 描述你想在遮罩区域生成的内容 |
| negative | negative | CONDITIONING | 负面提示词 | 告诉AI你不想要什么内容 | 负向条件引导 | 写上不想要的元素,如"模糊,低质量" |
| latent_image | latent_image | LATENT | 潜在图像 | 要修改的图片(编码后的版本) | 输入的潜在空间图像 | 连接图片编码器的输出 |
| denoise | denoise | 0.0-1.0 | 1.0 | 重画程度,1.0完全重画,0.5半重画 | 去噪强度 | 修复用1.0,微调用0.7-0.8 |
| LanPaint_NumSteps | LanPaint_NumSteps | 0-100 | 5 | 每步思考多少次,思考越多效果越好但越慢 | Langevin动力学迭代次数 | 简单任务用2-5次,困难任务用5-10次 |
| LanPaint_PromptMode | LanPaint_PromptMode | Image First/Prompt First | Image First | 优先考虑图片还是提示词 | 引导模式选择 | Image First保证图片质量,Prompt First更听提示词 |
| LanPaint_Info | LanPaint_Info | 字符串 | 说明文字 | 插件的介绍信息,不影响功能 | 节点说明信息 | 可以忽略这个参数 |
3.2 LanPaint KSampler (Advanced) 节点
这是高级版本,给专业用户更多控制权。就像从自动挡汽车换成手动挡,能精确控制每个细节。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| model | model | MODEL类型 | 任意模型 | 选择用哪个AI模型来画画 | 用于去噪的扩散模型 | 连接你的模型加载器 |
| add_noise | add_noise | enable/disable | enable | 是否添加随机噪声开始 | 控制是否添加初始噪声 | enable正常使用,disable用于继续上次的工作 |
| noise_seed | noise_seed | 0-最大整数 | 0 | 噪声的随机种子 | 噪声生成的随机种子 | 控制噪声的随机性 |
| steps | steps | 1-10000 | 30 | 总共要画多少步 | 扩散采样的总步数 | 根据任务复杂度调整 |
| cfg | cfg | 0.0-100.0 | 5.0 | 控制AI听话程度 | 分类器自由引导强度 | 平衡创意和准确性 |
| sampler_name | sampler_name | 采样器列表 | euler | 选择画画的方式 | 采样算法选择 | 不同算法有不同特点 |
| scheduler | scheduler | 调度器列表 | normal | 控制每一步的力度变化 | 噪声调度策略 | 控制去噪过程 |
| positive | positive | CONDITIONING | 正面提示词 | 告诉AI你想要什么 | 正向条件引导 | 详细描述期望内容 |
| negative | negative | CONDITIONING | 负面提示词 | 告诉AI你不想要什么 | 负向条件引导 | 列出不想要的元素 |
| latent_image | latent_image | LATENT | 潜在图像 | 要修改的图片 | 输入的潜在空间图像 | 连接编码后的图像 |
| start_at_step | start_at_step | 0-10000 | 0 | 从第几步开始工作 | 开始采样的步数 | 0表示从头开始 |
| end_at_step | end_at_step | 0-10000 | 10000 | 在第几步结束工作 | 结束采样的步数 | 10000表示做完全部 |
| return_with_leftover_noise | return_with_leftover_noise | disable/enable | disable | 是否保留最后的噪声 | 是否返回带噪声的结果 | 通常选disable |
| LanPaint_NumSteps | LanPaint_NumSteps | 0-100 | 5 | 每步思考多少次 | Langevin动力学迭代次数 | 控制思考深度 |
| LanPaint_Lambda | LanPaint_Lambda | 0.1-50.0 | 16.0 | 内容对齐强度,越高越严格 | 双向引导缩放系数 | 高值更严格对齐,但可能不稳定 |
| LanPaint_StepSize | LanPaint_StepSize | 0.0001-1.0 | 0.15 | 每次思考的步长大小 | Langevin动力学步长 | 大步长快但可能不稳定 |
| LanPaint_Beta | LanPaint_Beta | 0.0001-5.0 | 1.0 | 遮罩区域和非遮罩区域的步长比例 | 遮罩/非遮罩区域步长比 | 低值可以平衡高Lambda值 |
| LanPaint_Friction | LanPaint_Friction | 0.0-50.0 | 15.0 | 摩擦力参数,高值更稳定但慢 | 快速Langevin的摩擦参数 | 平衡速度和稳定性 |
| LanPaint_PromptMode | LanPaint_PromptMode | Image First/Prompt First | Image First | 优先考虑图片还是提示词 | 引导模式选择 | 根据需求选择优先级 |
| LanPaint_EarlyStop | LanPaint_EarlyStop | 0-10000 | 1 | 提前几步停止LanPaint | 提前停止步数 | 防止产生不规则图案 |
| LanPaint_Info | LanPaint_Info | 字符串 | 说明文字 | 插件的介绍信息 | 节点说明信息 | 可以忽略 |
3.3 LanPaint Sampler Custom 节点
这是自定义采样器版本,给你更灵活的控制方式。就像可以自己调配颜料的画家工具。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| model | model | MODEL类型 | 任意模型 | 选择用哪个AI模型 | 扩散模型 | 连接模型加载器 |
| add_noise | add_noise | True/False | True | 是否添加噪声 | 控制噪声添加 | True正常使用 |
| noise_seed | noise_seed | 0-最大整数 | 0 | 噪声随机种子 | 随机数种子 | 控制随机性 |
| cfg | cfg | 0.0-100.0 | 8.0 | AI听话程度 | 引导强度 | 平衡创意和准确性 |
| positive | positive | CONDITIONING | 正面提示词 | 想要的内容描述 | 正向条件 | 详细描述期望结果 |
| negative | negative | CONDITIONING | 负面提示词 | 不想要的内容描述 | 负向条件 | 列出排除元素 |
| sampler | sampler | SAMPLER | 采样器对象 | 外部采样器节点 | 自定义采样器 | 连接采样器节点 |
| sigmas | sigmas | SIGMAS | 噪声调度 | 外部噪声调度节点 | 噪声调度序列 | 连接调度器节点 |
| latent_image | latent_image | LATENT | 潜在图像 | 要处理的图片 | 输入图像 | 连接编码后的图像 |
| LanPaint_NumSteps | LanPaint_NumSteps | 0-100 | 5 | 思考次数 | 迭代次数 | 控制思考深度 |
| LanPaint_PromptMode | LanPaint_PromptMode | Image First/Prompt First | Image First | 优先级选择 | 引导模式 | 选择优先考虑的方面 |
| LanPaint_Info | LanPaint_Info | 字符串 | 说明文字 | 插件介绍 | 节点说明 | 可以忽略 |
3.4 LanPaint Sampler Custom (Advanced) 节点
这是最高级的自定义版本,给专业用户最大的控制权。就像专业摄影师的全手动相机。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| noise | noise | NOISE | 噪声对象 | 外部噪声生成器 | 噪声生成器 | 连接噪声节点 |
| guider | guider | GUIDER | 引导器对象 | 外部引导器节点 | 条件引导器 | 连接引导器节点 |
| sampler | sampler | SAMPLER | 采样器对象 | 外部采样器节点 | 自定义采样器 | 连接采样器节点 |
| sigmas | sigmas | SIGMAS | 噪声调度 | 外部噪声调度节点 | 噪声调度序列 | 连接调度器节点 |
| latent_image | latent_image | LATENT | 潜在图像 | 要处理的图片 | 输入图像 | 连接编码后的图像 |
| start_at_step | start_at_step | 0-10000 | 0 | 开始步数 | 采样开始步数 | 通常从0开始 |
| end_at_step | end_at_step | 0-10000 | 10000 | 结束步数 | 采样结束步数 | 通常用最大值 |
| return_with_leftover_noise | return_with_leftover_noise | disable/enable | disable | 是否保留噪声 | 返回噪声控制 | 通常选disable |
| LanPaint_NumSteps | LanPaint_NumSteps | 0-100 | 5 | 思考次数 | 迭代次数 | 控制算法深度 |
| LanPaint_Lambda | LanPaint_Lambda | 0.1-50.0 | 16.0 | 对齐强度 | 双向引导强度 | 控制内容一致性 |
| LanPaint_StepSize | LanPaint_StepSize | 0.0001-1.0 | 0.15 | 思考步长 | 动力学步长 | 平衡速度和质量 |
| LanPaint_Beta | LanPaint_Beta | 0.0001-5.0 | 1.0 | 区域步长比例 | 步长比例系数 | 平衡不同区域 |
| LanPaint_Friction | LanPaint_Friction | 0.0-50.0 | 15.0 | 摩擦力系数 | 稳定性参数 | 控制收敛稳定性 |
| LanPaint_PromptMode | LanPaint_PromptMode | Image First/Prompt First | Image First | 优先级模式 | 引导优先级 | 选择重点关注方面 |
| LanPaint_EarlyStop | LanPaint_EarlyStop | 0-10000 | 1 | 提前停止步数 | 早停参数 | 防止过度处理 |
| LanPaint_Info | LanPaint_Info | 字符串 | 说明文字 | 插件介绍 | 节点说明 | 可以忽略 |
3.5 LanPaint Mask Blend 节点
这是一个图片混合工具,用来把修复前后的图片完美融合。就像一个智能的图层混合器。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image1 | image1 | IMAGE | 原始图片 | 修复前的图片 | 输入图像1 | 连接原始图片 |
| image2 | image2 | IMAGE | 修复后图片 | 修复后的图片 | 输入图像2 | 连接LanPaint输出的图片 |
| mask | mask | MASK | 遮罩 | 决定哪里用新图哪里用旧图 | 混合遮罩 | 连接你的遮罩 |
| blend_overlap | blend_overlap | 1-51(奇数) | 1 | 边缘融合的像素数量 | 混合重叠像素数 | 数字越大边缘越柔和 |
4. 使用技巧和建议
4.1 新手入门建议
- 从简单开始:先用基础的 LanPaint KSampler,不要一开始就用高级版
- 遮罩要清晰:确保遮罩是纯黑白的,不要有灰色过渡
- 提示词要具体:详细描述你想在遮罩区域生成什么内容
- 步数适中:新手建议用20-30步,不要一开始就用很高的步数
4.2 参数调优指南
- 提升质量:增加总步数 → 增加 LanPaint_NumSteps → 增加 LanPaint_Lambda
- 提升速度:减少 LanPaint_NumSteps → 增加 LanPaint_StepSize → 减少 LanPaint_Friction
- 修复不稳定:减少 LanPaint_Friction → 减少 LanPaint_StepSize → 减少 LanPaint_Beta
4.3 不同任务的推荐设置
- 简单修复(去除小物体):NumSteps=2-5, Lambda=16, Steps=20
- 复杂修复(大面积重建):NumSteps=5-10, Lambda=16, Steps=30-50
- 角色一致性:PromptMode=Prompt First, NumSteps=5-10
- 照片修复:PromptMode=Image First, Lambda=10-20
4.4 模型兼容性
- SD 1.5/SDXL:所有参数都可以正常使用
- Flux 模型:建议使用低 CFG 值(1.0-2.0),PromptMode 只能用 Image First
- SD 3.5:完全兼容,建议 Lambda 值稍微调低
- HiDream:完全兼容,效果很好
5. 常见问题解答
Q1:为什么我的结果有奇怪的纹理或图案?
A1: 这通常是参数设置过激导致的。尝试:
- 减少 LanPaint_Friction 到 10-15
- 减少 LanPaint_StepSize 到 0.1
- 如果用了高 Lambda 值,减少 LanPaint_Beta 到 0.5
Q2:为什么生成速度很慢?
A2: LanPaint 需要额外的"思考"时间。优化方法:
- 减少 LanPaint_NumSteps(从5减到2-3)
- 增加 LanPaint_StepSize(从0.15增到0.3)
- 减少总步数(从30减到20)
Q3:为什么修复的内容和周围不协调?
A3: 可能是以下原因:
- 提示词不够具体,要详细描述期望内容
- 尝试增加 LanPaint_Lambda 值
- 检查遮罩是否准确,边缘是否清晰
- 尝试使用 LanPaint Mask Blend 节点进行后处理
Q4:Flux 模型效果不好怎么办?
A4: Flux 模型有特殊要求:
- CFG 值设置为 1.0-2.0(不要用默认的7.5)
- 只能使用 Image First 模式
- 适当增加思考步数到 5-10
Q5:如何获得最佳效果?
A5: 最佳实践:
- 使用高质量的原图和清晰的遮罩
- 提示词要详细且准确
- 固定种子值进行参数调试
- 生成多张图片避免偶然性
- 必要时使用 Mask Blend 进行后处理
Q6:内存不够用怎么办?
A6: 内存优化建议:
- 减少批次大小(batch size)
- 使用较小的图片尺寸
- 减少 LanPaint_NumSteps
- 关闭不必要的预览功能
6. 工作流程示例
基础修复工作流程:
- 加载图片 → Load Image 节点
- 创建遮罩 → 用你喜欢的遮罩工具
- 编码图片 → VAE Encode 节点
- 设置遮罩 → Set Latent Noise Mask 节点
- LanPaint处理 → LanPaint KSampler 节点
- 解码输出 → VAE Decode 节点
- 可选混合 → LanPaint Mask Blend 节点
高级工作流程:
对于复杂任务,可以串联多个 LanPaint 节点,或者结合 ControlNet 使用。
7. 总结
LanPaint 是一个功能强大且易用的修复插件,它的"思考模式"让修复效果更加自然。虽然会比普通方法慢一些,但质量提升是显著的。
记住这几个要点:
- 新手用基础版,熟练后再用高级版
- 遮罩质量决定最终效果
- 提示词要详细准确
- 不同模型需要不同的参数设置
- 多尝试,多调参,找到最适合你的设置
希望这个教程能帮助你快速上手 LanPaint,创造出令人满意的作品!如果觉得有用,别忘了给项目点个星星 ⭐️!