当前位置:首页 > 技术 > 正文内容

Stable Diffusion WebUI 图像局部擦除扩展集成与 API 调用指南

访客 技术 2026年8月27日 1

SD-WebUI Cleaner 扩展概述

SD-WebUI Cleaner 是为 Stable Diffusion WebUI 设计的一款图像局部擦除插件。其核心底层集成了 Lama (Large Mask inpainting) 模型,专门用于精准移除画面中的多余元素。在图生图(img2img)的局部重绘(Inpainting)工作流中,该扩展能够作为预处理步骤,自动清理遮罩区域的内容,从而为后续的 AI 生成提供更纯净、高质量的上下文背景。

环境配置与安装

在确保 Stable Diffusion WebUI 基础环境已正常运行的前提下,可通过以下步骤完成插件的部署:

  1. 进入 WebUI 根目录下的 extensions 文件夹。
  2. 使用 Git 克隆插件仓库:
    cd stable-diffusion-webui/extensions/
    git clone https://github.com/novitalabs/sd-webui-cleaner.git
  3. 重启 WebUI 服务,系统会自动加载新安装的扩展。
  4. 若当前运行环境缺乏 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 的调度策略,以优化整体处理延迟。

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Mac 安装 Node.js 指南

方法一:通过官网安装包(最简单,适合初学者)如果你只是想快速安装并开始使用,这是最直接的方法。访问 Node.js 官网。页面会显示两个版本:LTS (Recommended For Most Users):长期支持版,最稳定。建议选这个。Current:最新特性版,包含最新功能但可能不够稳定。下载 .pkg 安装包并运行。按照安装向导点击“下一步”即可完成。方法二:使用 Homebrew 安装(...

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

linux screen 用法详情 (nohup 的替代方案)

一、screen 是什么?能干嘛?screen 是一个终端复用器,可以:在一个 SSH 会话中开多个“虚拟终端”SSH 断线后,程序仍然在后台运行随时重新连接到原来的会话特别适合:nohup 的替代方案跑脚本 / 爬虫 / 训练模型运维、远程开发二、安装 screen# CentOS / Rocky / Almayum install -y screen# Debian / Ubuntuapt i...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。