跳转至

stable diffusion WebUI Api基础知识

如果你想stable diffusionSD工作流,需要使用stable diffusion WebUI Api

> 准备工作

  • 使用 “--api”模式启动你的stable diffusion
  • 使用一个可视化http请求工具,我推荐postman,postman下载

(当然,你也可以直接写代码进行访问,我比较推荐先用工具测试请求正确性,在进行代码开发)

  • stable diffusion 启动成功后,一般为:http://127.0.0.1:7860 路径记下该路径,我们将用这个路径进行交互

当后期你需要远程连接时,可在sd设置中改为0.0.0.0,添加“--listen”参数启动sd即可

打开你的网络请求工具,本文都以postman实例

> 正式开始

SD官方文档

api文档

sd 官方提供的api常用的有几个:

1
2
3
4
    /sdapi/v1/txt2img 文字生图 POST
    /sdapi/v1/img2img 图片生图 POST
    /sdapi/v1/options 获取设置 GET | 更新设置 POST(可用来更新远端的模型)
    /sdapi/v1/sd-models 获取所有的模型 GET

/sdapi/v1/txt2img

常用输入如下

    /sdapi/v1/txt2img
    {
     "denoising_strength": 0,
     "prompt": "puppy dogs", //提示词
     "negative_prompt": "", //反向提示词
     "seed": -1, //种子,随机数
     "batch_size": 2, //每次张数
     "n_iter": 1, //生成批次
     "steps": 50, //生成步数
     "cfg_scale": 7, //关键词相关性
     "width": 512, //宽度
     "height": 512, //高度
     "restore_faces": false, //脸部修复
     "tiling": false, //可平埔
     "override_settings": {
         "sd_model_checkpoint" :"wlop-any.ckpt [7331f3bc87]"
    }, // 一般用于修改本次的生成图片的stable diffusion 模型,用法需保持一致
       "script_args": [
          0,
          true,
          true,
          "LoRA",
          "dingzhenlora_v1(fa7c1732cc95)",
          1,
          1
      ], // 一般用于lora模型或其他插件参数,如示例,我放入了一个lora模型, 1,1为两个权重值,一般只用到前面的权重值1
     "sampler_index": "Euler" //采样方法
    }

我们在postman中新建一个request,选择HTTP Request

选择post

在url栏目输入我们的地址,如果你使用的是本机,应该输入的是127.0.0.1:7860/sdapi/v1/txt2img,具体端口可能不同

然后直接复制我上边的请求内容放入body里面,记得先选择json模式

点击send按钮,如果没有意外地话,等待片刻,你就能够在下方的response窗口中看到返回

返回的格式如下:

1
2
3
4
5
6
7
8
    {
        "images": [...], // 这里是一个base64格式的字符串数组,根据你请求的图片数量而定
        "parameters": {
           //此处为你输入的body
        },
       // 返回的图片的信息
        "info": "{\"prompt\": \"puppy dogs\", \"all_prompts\": [\"puppy dogs\", \"puppy dogs\"], \"negative_prompt\": \"\", \"all_negative_prompts\": [\"\", \"\"], \"seed\": 2404186668, \"all_seeds\": [2404186668, 2404186669], \"subseed\": 3290733804, \"all_subseeds\": [3290733804, 3290733805], \"subseed_strength\": 0, \"width\": 512, \"height\": 512, \"sampler_name\": \"Euler\", \"cfg_scale\": 7.0, \"steps\": 50, \"batch_size\": 2, \"restore_faces\": false, \"face_restoration_model\": null, \"sd_model_hash\": \"7331f3bc87\", \"seed_resize_from_w\": -1, \"seed_resize_from_h\": -1, \"denoising_strength\": 0.0, \"extra_generation_params\": {}, \"index_of_first_image\": 0, \"infotexts\": [\"puppy dogs\\nSteps: 50, Sampler: Euler, CFG scale: 7.0, Seed: 2404186668, Size: 512x512, Model hash: 7331f3bc87, Seed resize from: -1x-1, Denoising strength: 0.0, ENSD: 31337\", \"puppy dogs\\nSteps: 50, Sampler: Euler, CFG scale: 7.0, Seed: 2404186669, Size: 512x512, Model hash: 7331f3bc87, Seed resize from: -1x-1, Denoising strength: 0.0, ENSD: 31337\"], \"styles\": [], \"job_timestamp\": \"20230422213724\", \"clip_skip\": 1, \"is_using_inpainting_conditioning\": false}"
    }

当你看到这样的消息时,说明我们已经成功与远端的服务器进行连接!(127.0.0.1也是服务器!:)

如果你想验证结果的图片是怎么样的,你可以复制images中的其中一张图片的base64格式的字符串,到下面这个网站下转换为jpg格式

这是我生成的图片示例

好了,接下来的请求我们如法炮制即可,我就不展示过程了

/sdapi/v1/img2img

在txt2img的基础上添加了一些参数,我这里直接用我之前demo里写好的python代码

        init_images: List[str] = None #img2img 基础的图都,在里面: base64
        mask:str = None # 遮罩 base64
        resize_mode: int = 1#["Just resize", "Crop and resize", "Resize and fill", "Just resize (latent upscale)"]
        denoising_strength: float = 0.72 #重绘幅度
        mask_blur:int = 0 #蒙版模糊 4
        inpainting_fill:int = 0# 蒙版遮住的内容, 0填充, 1原图 2潜空间噪声 3潜空间数值零
        inpaint_full_res:bool = False # inpaint area, False: whole picture True:only masked
        inpaint_full_res_padding:int = 32 # Only masked padding, pixels 32
        inpainting_mask_invert:int = 0 # 蒙版模式 0重绘蒙版内容 1 重绘非蒙版内容
        alwayson_scripts: Dict[str, Dict[str, Any]] = {}  #用来存放controlnet相关参数,txt2img也可以用这个
    #下面几个不是很常用,具体我也没研究
        # image_cfg_scale: float =  0.72
        # init_latent = None
        # image_mask = ""
        # latent_mask = None
        # mask_for_overlay = None
        # nmask = None
        # image_conditioning = None

关于其中的alwayson_scripts,格式如下

        enabled: bool = True #启用
        module: str = controlnet_modules.openpose.value #模式 openpose、canny等
        model: str = "control_openpose-fp16 [9ca67cc5]" # 模型
        weight: float = 1.0 #权重
        image: str = None #图片
        mask: str = None #图片遮罩,一般不用
        invert_image: bool = False #反转图片
        resize_mode: int = 1 #0:Just Resize 1: Inner Fit 2: Outer Fit
        rgbbgr_mode: bool = False
        lowvram: bool = False #低显存需要开启
    # 下面的我就没怎么使用了
        processor_res: int = 512
        threshold_a: int = 64
        threshold_b: int = 64
        guidance_start: float = 0.0
        guidance_end: float = 1.0
        guessmode: bool = False

接下来给一个示例,你可以使用我给出的示例图,或者将其中的init_images,mask,image 三个参数替换为你自己的base64格式的字符串,即可发送

这里我们同样可以用到刚才的base64 to image的网站,吧jpg转换得到base64格式的图片

{
    "prompt": "RAW photo, best quality, realistic,CANNO EOS R3, photo-realistic:1.3, masterpiece, ultra-detailed, CG unity, 8k wallpaper, amazing, finely detailed,( light smile: 0.9), highres, iu, asymmetrical bangs, short bangs, pureerosface_v1, beautiful detailed girl, extremely detailed eyes and face, beautiful detailed eyes, light on face, looking at viewer, straight-on, staring, closed mouth, black hair, long hair, collarbone, bare shoulders, long eyelashes, upper body, 1girl, full body:1.3, highly detailed face: 1.5, beautiful ponytail:0.5, beautiful detailed eyes, beautiful detailed nose, realistic face, realistic body, comfortable expressions, smile, look at viewer, comfortable expressions,fit model, hotel room, boudoir photography, upscale business hotel, luxurious decorations, expensive furniture, clean room, tasteful poses, lying on bed, sitting on sofa, showcasing beautiful body, modestly covered, pure, beautiful, soft lighting, professional equipment, camera settings, focal length, wardrobe details, model's expression, eye contact, sexy clothing, clean, bright scene, comfortable, (soft cinematic light:1.2), (depth of field:1.4), (intricate details:1.12), (sharp, exposure blend, medium shot:1.2), (natural skin texture, hyperrealism:1.2)",
    "negative_prompt": "(deformed, distorted, disfigured:1.3), poorly drawn, bad anatomy, wrong anatomy, extra limb, missing limb, floating limbs, (mutated hands and fingers:1.4), disconnected limbs, mutation, mutated, ugly, disgusting, blurry, amputation, watermark, (deformed, distorted, disfigured:1.3), poorly drawn, bad anatomy, wrong anatomy, extra limb, missing limb, floating limbs, (mutated hands and fingers:1.4), disconnected limbs, mutation, mutated, ugly, disgusting, blurry, amputation, watermark",
    "override_settings": {
        "sd_model_checkpoint": "Chilloutmix-Ni"
    },
    "seed": -1,
    "batch_size": 1,
    "n_iter": 1,
    "steps": 20,
    "cfg_scale": 7,
    "width": 512,
    "height": 768,
    "restore_faces": false,
    "tiling": false,
    "eta": 0,
    "script_args": [],
    "sampler_index": "DPM++ SDE Karras",
    "init_images": [
        "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"
    ],
    "mask": "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",
    "resize_mode": 1,
    "denoising_strength": 0.7,
    "mask_blur": 10,
    "inpainting_fill": 1,
    "inpaint_full_res": true,
    "inpaint_full_res_padding": 32,
    "inpainting_mask_invert": 1,
    "alwayson_scripts": {
        "ControlNet": {
            "args": {
                "enabled": true,
                "module": "none",
                "model": "control_openpose-fp16 [9ca67cc5]",
                "weight": 1,
                "image": "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",
                "mask": null,
                "invert_image": false,
                "resize_mode": 0,
                "rgbbgr_mode": false,
                "lowvram": false,
                "processor_res": 0,
                "threshold_a": 64,
                "threshold_b": 64,
                "guidance_start": 0,
                "guidance_end": 1,
                "guessmode": false
            }
        }
    }
}

将其直接复制进postman的img2img请求中,点击send,得到返回,如下图

返回格式与txt2img一样,我们将其中一张返回的图片base64放入网站解析,得到结果,

到这里,我们主要的两个api就已经接通了,是不是很简单~

有好几个人和我反馈了,controlnet参数不生效,据初步分析是因为大家的controlnet版本更新到了1.1,而我写文章的时候用的是1.0,1.1这个版本api调用不再需要添加args再包一层,去掉这一层,直接将contronnet包最里面的参数试试

接下来是一些辅助的api

/sdapi/v1/options 获取设置 GET | 更新设置 POST(可用来更新远端的模型)

放在get中,他是获得sd的所有设置

放在post中,对应的option即可修改,例如我想要修改sd的全局模型和clip,这样写即可

/sdapi/v1/sd-models 获取所有的模型 GET

这个就更简单了,直接请求即可

到这里基础部分就已完成,你可以用这些api放入你自己的程序或者demo中,即可实现远程跑图自由~

目前我正在开发一款我自己使用的sd提交工具,它可以批量提交参数以及参数保存等等我个人觉得蛮好用的功能,里面就用这样的方法进行api访问,有兴趣可以看看, 目前正在开发,不保证稳定性

接下来就是扩展和代码部分了~

>代码讲解

首先我们需要在stable diffusion webui github 库中下载源码,各位在b站或者其他地方下载的整合包也具有这样的源码部分

源码中,我们需要注意的文件如下:

1
2
3
4
5
6
    ├─modules
        ├─api
        │  └─api.py api接口
        │  └─models.py 存放数据库模型
        └─img2img.py webui端的图生图,可以看一下
        └─txt2img.py webui端的文生图,也可以看一下

api.py是我们最主要了解的代码模块,里面放置了所有sd的api的基本实现和声明

打开你的IDE,这里以vscode为例

打开api.py,我们即可在api init中看到所有的api声明

实在蛮多的,我们就看其中的txt2img吧

self.add_api_route("/sdapi/v1/txt2img", self.text2imgapi, methods=["POST"], response_model=TextToImageResponse)

这是一个使用fastapi的网络请求模块

  • self.add_api_route 声明这个请求的url(/sdapi/v1/txt2img)、处理方法(text2imgapi)、方法POST、回应类型判定response_model=TextToImageResponse

text2imgapi对我们的请求做了一些处理,并生成图片返回回来,这不是我们了解的重点,我们需要关心其中的 txt2imgreq: StableDiffusionTxt2ImgProcessingAPI ,这代表我们请求的body类型

点进StableDiffusionTxt2ImgProcessingAPI,我们就可以看到他需要的参数了

一共封装了三层

StableDiffusionProcessing - > StableDiffusionProcessingTxt2Img -> StableDiffusionTxt2ImgProcessingAPI

其实如果只是想了解api需要输入的参数,到这一步,从代码中我们已经可以显而易见的看出我们需要的所有参数是哪些了

但是

到这一步作为程序员肯定是不够的,如果我们需要一些自定义的api,我们应该如何添加?

比如在我的iOS程序中,访问了lora的所有模型,但是在additionnetwork中是不具备这个api的,这个时候,我们就需要来修改源码了

结论先行,先给出我们的get_lora请求的结果

得到了我远程服务器所有的lora模型

如何做到的呢

  1. 首先,我们进入api.py,在api init化完成后,将api暴露出来

2. 进入modules/scripts.py中,添加如下代码,进行插件的api扩展,这里如果想了解为什么这么写的,篇幅就太长了,我可以另外开个文章详细讲述

    #分别在对应的位置插入下面三处代码
    def initialize_appScripts():
        import modules.api.api as theApi
        for script_class, path, basedir, script_module in scripts_Apidata:
            if not path.endswith("api.py"):
                script = script_class()

    scripts_Apidata = []

    elif issubclass(script_class, Api.Api):
                    scripts_Apidata.append(ScriptClassData(script_class, scriptfile.path, scriptfile.basedir, module))

3. 接着在webui.py 中插入插件api的初始化代码,注意,我这里添加在api_only中,这个是没有webui端的时候才会调用

remote-graph-diffusion-basic-stable-mast_23Jul04201658399321_1.jpeg

modules.scripts.initialize_appScripts() 这一行是我们添加的代码

4. 接着,修改我们的addition network源代码,extensions\sd-webui-additional-networks\scripts[additionApi.py](http://additionapi.py/) 在这个路径新建一个py文件additionApi.py,粘贴如下代码

import modules.api.models as model

import modules.api.api as mainApi

import scripts.model_util as model_util

from pydantic import BaseModel, Field, create_model
from typing import List

class LoraResponse(BaseModel):
    list: List[str] = Field(title="LoRA", description="lora name")

class AdditionApi(mainApi.Api):
    def __init__(self):
        from modules.api.api import theDefaultApi
        theDefaultApi.add_api_route("/sdapi/v1/getLora", self.get_Lora, methods=["GET"], response_model=LoraResponse)

    def get_Lora(self):
        res = list(model_util.lora_models.keys())
        return LoraResponse(list = res)

ok!一切大功告成,我们只需要使用/sdapi/v1/getLora api请求即可访问我们所有的lora模型

我这里的方法其实还不够好,2月份当时研究的时候,controlnet还没有接入,所以我的代码在此之前都能正常运行,但是当controlnet接入后,与controlnet官方提供的api方法冲突了,不过也把代码放在这里给大家一个参考

你会发现我需要修改的源代码非常少,并且这样的方法适用于所有的插件!我自己觉得是很不错的方式,很可惜在controlnet的官方api的介入下,这样的源代码修改是存在问题的,所以我加上了ifnot path.endswith("api.py"):

这行代码以阻断controlnet的影响, 但是不保证其他插件不会影响此片段

towardsdatascience 上关于使用Stable Diffusion WebUI API的文章

Web UI 适用于单个用户,并且可以作为交互式艺术工具来进行自己的创作。但是,如果我们想使用它作为引擎来构建应用程序,那么我们将需要一个 API。stable-diffusion-webui 项目的一个鲜为人知(且记录较少)的功能是它还有一个内置 API。Web UI 是使用Gradio构建的,但还有一个可以通过以下命令启动的 FastAPI 应用程序:

python launch.py​​ --nowebui

创建微服务

例如,我们现在将设置一个简单的微服务,用于从照片中删除人物。这有很多应用,例如保护个人隐私。我们可以使用稳定扩散作为基本的隐私保护过滤器,它将人物从照片中删除,而不会出现任何难看的马赛克或像素遮挡。

请注意,这是一个基本设置;它不包括加密、负载平衡、多租户、RBAC 或任何其他功能。此设置可能不适合生产,但对于在家庭或私人服务器上设置应用程序可能很有用。

以API模式启动应用程序

以下说明将在 API 模式下使用服务器,因此请继续使用 CTRL+C 暂时停止 Web UI。使用以下选项在 API 模式下再次启动它--nowebui: 服务器准备好后应该打印如下内容:

python launch.py​​ --nowebui
INFO:     Uvicorn running on http://127.0.0.1:7861 (Press CTRL+C to quit)

向 API 发送请求

我们要做的第一件事是演示如何向 API 发出请求。txt2img我们希望向应用程序的 API(即“文本到图像”)发送 POST 请求,以简单地生成图像。 我们将使用requests软件包。

我们可以发送一个包含简单字符串提示的请求。服务器将以base64编码的 PNG 文件形式返回图像,我们需要对其进行解码。要解码 Base64 图像,我们只需使用base64.b64decode(b64_image). 以下脚本应该是您测试此功能所需的全部内容:

sample-request.py

import json
import base64
import requests

def submit_post(url: str, data: dict):
    """
    Submit a POST request to the given URL with the given data.
    """
    return requests.post(url, data=json.dumps(data))

def save_encoded_image(b64_image: str, output_path: str):
    """
    Save the given image to the given output path.
    """
    with open(output_path, "wb") as image_file:
        image_file.write(base64.b64decode(b64_image))

if __name__ == '__main__':
    txt2img_url = 'http://127.0.0.1:7861/sdapi/v1/txt2img'
    data = {'prompt': 'a dog wearing a hat'}
    response = submit_post(txt2img_url, data)
    save_encoded_image(response.json()['images'][0], 'dog.png')

如果有效,它应该将图像的副本保存到文件中dog.png

遮罩图像

如果到目前为止一切正常,那就太好了!但是我们如何使用它来修改我们已有的图像呢?为此,我们需要使用img2img(即“图像到图像”)API。该API使用SD来修改您提交的图像。我们将使用修复功能:给定图像和蒙版,修复技术将尝试用稳定扩散生成的内容替换图像的蒙版部分。遮罩充当权重,在原始图像和生成图像之间平滑地进行插值,以将两者混合在一起。

我们不会手工制作蒙版,而是尝试使用我们可用的许多预先训练的计算机视觉模型之一来生成蒙版。我们将使用模型输出的“person”类来生成掩码。虽然对象检测模型可以工作,但我选择使用分割模型,以便您可以尝试使用密集蒙版或边界框。

我们需要一个示例图像来进行测试。我们可以从互联网上下载一个,但本着保护隐私(和版权)的精神,为什么不制作一个稳定传播的呢?以下是我根据提示生成的一张图片:“beautiful mountain landscape, a woman walking away from the camera”

以下是将 torchvision 中的分割模型应用到该图像作为掩模的简单代码

segment-person.py

import torch
from torchvision.models.segmentation import fcn_resnet50, FCN_ResNet50_Weights
from torchvision.io.image import read_image
from torchvision.utils import draw_segmentation_masks
import matplotlib.pyplot as plt


if __name__ == '__main__':
    img_path = 'woman-on-trail.png'

    # Load model
    weights = FCN_ResNet50_Weights.DEFAULT
    model = fcn_resnet50(weights=weights, progress=False)
    model = model.eval()

    # Load image
    img = read_image(img_path)

    # Run model
    input_tform = weights.transforms(resize_size=None)
    batch = torch.stack([input_tform(img)])
    output = model(batch)['out']

    # Apply softmax to outputs
    sem_class_to_idx = {cls: idx for (idx, cls) in enumerate(weights.meta['categories'])}
    normalized_mask = torch.nn.functional.softmax(output, dim=1)

    # Show results
    class_idx = 1
    binary_masks = (normalized_mask.argmax(class_idx) == sem_class_to_idx['person'])
    img_masked = draw_segmentation_masks(img, masks=binary_masks, alpha=0.7)
    plt.imshow(img_masked.permute(1, 2, 0).numpy())
    plt.show()

结果应该如下所示:

人物移除微服务

现在让我们转向实际示例:从图像中删除人物。 微服务应该执行以下操作: - 读取多个输入参数 - 从文件加载图像 - 将具有“person”类的分割模型应用于图像以创建掩模 - 将图像和掩码转换为base64编码 - 向本地服务器的 img2img API 发送包含 base64 编码图像、base64 编码掩码、提示和任何参数的请求 - 解码输出图像并将其保存为文件

由于我们已经单独介绍了所有这些步骤,因此已在此 GitHub Gist 中为您实现了微服务。 现在下载脚本并使用以下命令在图像“woman-on-trail.png”(或您喜欢的任何图像)上执行它。

inpaint-person.py

import os
import json
import base64
import io

import requests
import torch
from torchvision.models.segmentation import fcn_resnet50, FCN_ResNet50_Weights
from torchvision import transforms
from torchvision.io.image import read_image


IMG2IMG_URL = 'http://127.0.0.1:7861/sdapi/v1/img2img'


def generate_request(b64image: str, prompt: str, **kwargs):
    """
    Generate a request object from the given input image and prompt.
    """
    return {
        'prompt': prompt,
        'init_images': [b64image],
        **kwargs
    }


def submit_post(url: str, data: dict):
    """
    Submit a POST request to the given URL with the given data.
    """
    return requests.post(url, data=json.dumps(data))


def _b64encode(x: bytes) -> str:
    return base64.b64encode(x).decode("utf-8")


def img2b64(img):
    """
    Convert a PIL image to a base64-encoded string.
    """
    buffered = io.BytesIO()
    img.save(buffered, format='PNG')
    return _b64encode(buffered.getvalue())


def convert_mask_to_bounding_box(mask, dilation: int = 16) -> torch.Tensor:
    """
    Convert a mask to its bounding box.
    """
    # Get indices of mask
    mask_indices = torch.nonzero(mask)

    # Get bounding box
    min_y, min_x = mask_indices.min(dim=0)[0]
    max_y, max_x = mask_indices.max(dim=0)[0]

    # Dilate mask
    min_y = int(max(0, min_y - dilation))
    min_x = int(max(0, min_x - dilation))
    max_y = int(min(mask.shape[0], max_y + dilation))
    max_x = int(min(mask.shape[1], max_x + dilation))

    # Set bounding box to 1
    mask[min_y:max_y, min_x:max_x] = 1
    return mask


def save_encoded_image(b64_image: str, output_path: str):
    """
    Save the given image to the given output path.
    """

    with open(output_path, "wb") as image_file:
        image_file.write(base64.b64decode(b64_image))


INPAINTING_FILL_METHODS = ['fill', 'original', 'latent_noise', 'latent_nothing']


if __name__ == '__main__':
    import argparse
    parser = argparse.ArgumentParser(description='Inpaint instances of people using stable '
                                                 'diffusion.')
    parser.add_argument('img_path', type=str, help='Path to input image.')
    parser.add_argument('-o', '--output_path', type=str, default='inpaint-person.png',
                        help='Path to output image.')
    parser.add_argument('-p', '--prompt', type=str, default='',
                        help='Stable diffusion prompt to use.')
    parser.add_argument('-n', '--negative_prompt', type=str, default='person',
                        help='Stable diffusion negative prompt.')
    parser.add_argument('-W', '--width', type=int, default=768, help='Width of output image.')
    parser.add_argument('-H', '--height', type=int, default=768, help='Height of output image.')
    parser.add_argument('-s', '--steps', type=int, default=30, help='Number of diffusion steps.')
    parser.add_argument('-c', '--cfg_scale', type=int, default=8, help='Classifier free guidance '
                        'scale, i.e. how strongly the image should conform to prompt.')
    parser.add_argument('-S', '--sampler_name', type=str, default='Euler a', help='Name of sampler '
                        'to use.')
    parser.add_argument('-d', '--denoising_strength', type=float, default=0.75, help='How much to '
                        'disregard original image.')
    parser.add_argument('-f', '--fill', type=str, default=INPAINTING_FILL_METHODS[0],
                        help='The fill method to use for inpainting.')
    parser.add_argument('-b', '--mask_blur', type=int, default=8, help='Blur radius of Gaussian '
                        'filter to apply to mask.')
    parser.add_argument('-B', '--bounding_box', action='store_true', help='Convert mask to '
                        'bounding box.')
    parser.add_argument('-D', '--bbox_dilation', type=float, default=16, help='Number of pixels '
                        'to dilate bounding box.')
    args = parser.parse_args()
    assert args.fill in INPAINTING_FILL_METHODS, \
        f'Fill method must be one of {INPAINTING_FILL_METHODS}.'

    # Load image
    img = read_image(args.img_path)

    # Load model
    weights = FCN_ResNet50_Weights.DEFAULT
    model = fcn_resnet50(weights=weights, progress=False)
    model = model.eval()

    # Run model
    input_tform = weights.transforms(resize_size=None)
    batch = torch.stack([input_tform(img)])
    output = model(batch)['out']

    # Apply softmax to outputs
    sem_class_to_idx = {cls: idx for (idx, cls) in enumerate(weights.meta['categories'])}
    normalized_mask = torch.nn.functional.softmax(output, dim=1)

    # Extract mask
    tensor_to_pil = transforms.ToPILImage()
    mask = normalized_mask[0, sem_class_to_idx['person']]
    mask = mask > 0.5

    # Convert mask to bounding box
    if args.bounding_box:
        mask = convert_mask_to_bounding_box(mask, dilation=args.bbox_dilation)

    # Convert images to base64
    img = tensor_to_pil(img.cpu())
    img_b64 = img2b64(img)
    mask = tensor_to_pil(mask.to(torch.float32).cpu())
    mask_b64 = img2b64(mask)

    # Run inpainting
    extra_options = {
        'width': args.width,
        'height': args.height,
        'steps': args.steps,
        'cfg_scale': args.cfg_scale,
        'sampler_name': args.sampler_name,
        'denoising_strength': args.denoising_strength,
        'mask_blur': args.mask_blur,
        'inpainting_fill': INPAINTING_FILL_METHODS.index(args.fill),
        'inpaint_full_res': False
    }
    request = generate_request(img_b64, prompt=args.prompt, mask=mask_b64,
                                negative_prompt=args.negative_prompt, **extra_options)
    response = submit_post(IMG2IMG_URL, request)
    output_img_b64 = response.json()['images'][0]

    # Save images
    save_encoded_image(output_img_b64, args.output_path)
    mask_path = os.path.join(os.path.dirname(args.output_path),
                             f'mask_{os.path.basename(args.output_path)}')
    save_encoded_image(mask_b64, mask_path)

python inpaint-person.py woman-on-trail.png -W 1152 -H 768

-W 和 -H 分别表示所需的输出宽度和高度。 它将生成的图像保存为inpaint-person.png,并将相应的蒙版保存为mask_inpaint-person.png。

如果需要遮盖更大的区域。 为此,让我们尝试将蒙版转换为边界框。 我们可以使用 -B 标志来做到这一点。

python inpaint-person.py woman-on-trail.png -W 1152 -H 768 -B

我们使用 -p 标志将提示“mountain scenery, landscape, trail”添加到请求中。 我们还使用 -D 32 扩大边界框以消除一些边缘效果,并使用 -b 16 模糊边界框以将蒙版与背景稍微混合。

1
2
3
4
python inpaint-person.py woman-on-trail.png \
    -W 1152 -H 768 \
    -b 16 -B -D 32 \
    -p "mountain scenery, landscape, trail"

继续尝试不同的图像、设置和提示,使其适合您的用例。 要查看此脚本可用的参数和提示的完整列表,请输入 python inpaint-person.py -h

为了帮助您完成任务,请记住以下提示:

  • 在使用 API 之前,使用 Web UI 找到适合您的用例的正确参数。
  • 根据您的喜好微调图像时,请依靠提示矩阵(prompt matrix)和 X/Y plot 功能。 这些将帮助您快速探索参数搜索空间。
  • 注意seed。 如果您喜欢特定输出但想要对其进行迭代,请复制seed
  • 尝试使用不同的生成器,例如 Midjourney! 每个工具都略有不同。
  • 使用 Lexica 等互联网资源作为灵感并找到好的提示。
  • 使用设置菜单中的“使用生成参数在每个图像旁边创建一个文本文件”选项来跟踪用于制作每个图像的提示和设置。

第二篇 GPT + Stable Diffusion 生图工作流

凡本网注明"来源:XXX "的文/图/视频等稿件,本网转载出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如涉及作品内容、版权和其它问题,请与本网联系,我们将在第一时间删除内容!
作者: CreepOnSky
来源: https://zhuanlan.zhihu.com/p/624042359 , https://towardsdatascience.com/stable-diffusion-as-an-api-5e381aec1f6