Stable Diffusion WebUI 图像局部擦除扩展集成与 API 调用指南
SD-WebUI Cleaner 扩展概述
SD-WebUI Cleaner 是为 Stable Diffusion WebUI 设计的一款图像局部擦除插件。其核心底层集成了 Lama (Large Mask inpainting) 模型,专门用于精准移除画面中的多余元素。在图生图(img2img)的局部重绘(Inpainting)工作流中,该扩展能够作为预处理步骤,自动清理遮罩区域的内容,从而为后续的 AI 生成提供更纯净、高质量的上下文背景。
环境配置与安装
在确保 Stable Diffusion WebUI 基础环境已正常运行的前提下,可通过以下步骤完成插件的部署:
- 进入 WebUI 根目录下的
extensions文件夹。 - 使用 Git 克隆插件仓库:
cd stable-diffusion-webui/extensions/ git clone https://github.com/novitalabs/sd-webui-cleaner.git - 重启 WebUI 服务,系统会自动加载新安装的扩展。
- 若当前运行环境缺乏 GPU 资源,可进入 WebUI 的设置(Settings)页面,找到
cleaner_use_cpu选项并将其启用,以强制使用 CPU 进行推理计算。
界面操作指南
安装完成后,该功能将无缝集成到现有的局部重绘面板中:
- 导航至 img2img 选项卡,并切换到 Inpaint 子面板。
- 上传需要处理的图像,并使用画笔工具绘制需要移除的遮罩(Mask)区域。
- 在 Masked content(遮罩内容)下拉菜单中,选择 Lama cleaner。此时,系统会在生成前自动调用 Lama 模型对遮罩区域进行擦除和背景填补。
API 接口集成与代码实现
除了图形界面,该扩展还暴露了 RESTful API 接口,方便开发者将其集成到自动化图像处理管线中。以下是一个使用 Python 调用 /cleanup 端点的完整示例,展示了如何读取本地图像、编码并处理返回结果:
import requests
import base64
def process_image_cleanup(source_path, mask_path, api_url="http://127.0.0.1:7860/cleanup"):
# 读取源图像和遮罩图像并进行 Base64 编码
with open(source_path, "rb") as src_file:
b64_source = base64.b64encode(src_file.read()).decode("utf-8")
with open(mask_path, "rb") as mask_file:
b64_mask = base64.b64encode(mask_file.read()).decode("utf-8")
# 构建请求数据载荷
request_payload = {
"input_image": b64_source,
"mask": b64_mask
}
# 发起 POST 请求
api_response = requests.post(api_url, json=request_payload)
if api_response.status_code == 200:
response_data = api_response.json()
if response_data.get("code") == 0:
# 解码返回的清理后图像并保存到本地
cleaned_img_data = base64.b64decode(response_data["image"])
with open("output_cleaned.png", "wb") as out_file:
out_file.write(cleaned_img_data)
print("图像局部擦除任务执行成功。")
else:
print(f"业务逻辑错误: {response_data.get('message')}")
else:
print(f"请求失败,HTTP 状态码: {api_response.status_code}")
# 调用示例
process_image_cleanup("original_scene.jpg", "object_mask.png")
应用场景与参数调优
在实际项目中,Lama 预处理机制在以下场景中表现尤为出色:
- 复杂背景还原:在移除画面中的行人、车辆或水印后,Lama 模型能根据周围纹理合理推测并填补背景,避免重绘时出现结构扭曲。
- 高精度图像修复:对于老旧照片的划痕或破损区域,先使用 Lama 进行底层结构修复,再结合 Stable Diffusion 进行细节重绘,可大幅提升最终成图的真实感。
为了获得最佳的擦除效果,建议在绘制 Mask 时适当向外扩展边缘(Padding),确保遮罩完全覆盖目标对象的阴影和反光区域。同时,根据图像分辨率和硬件条件,合理平衡 CPU 与 GPU 的调度策略,以优化整体处理延迟。