stable-diffusion-webui 部署 ,启用 api 服务

AI学习交流qq群873673497
官网turingevo.com
邮箱wmx@turingevo.com
githubhttps://github.com/turingevo
huggingfacehttps://huggingface.co/turingevo

stable-diffusion-webui 部署 ,启用 api 服务

api 文档参考 https://profaneservitor.github.io/sdwui-docs/api/

api 源码路径是 stable-diffusion-webui/modules/api/api.py

我系统是 ubuntu22.04
conda 环境torchpgu , python 是 3.11.7

安装 stable-diffusion-webui

原始地址
https://github.com/AUTOMATIC1111/stable-diffusion-webui

国内镜像
https://gitee.com/kejiing/stable-diffusion-webui

  • 1 clone 源码

搭建环境

官方推荐 python3.10 或者 python3.11

我这里是conda 环境 torchpgu ,python3.11.7 ,不是系统默认的 python3 命令

  • 2 所以激活 conda 环境torchGgu
conda activate torchGpu
  • 3 然后修改 webui-user.sh
python_cmd="python3.11"
  • 4 执行安装
    ./webui.sh

安装完成之后,首次运行自动下载模型权重,可以手动下载

启用 api

修改 webui-user.sh :
添加下面信息

# https://profaneservitor.github.io/sdwui-docs/api/
#export COMMANDLINE_ARGS=""
# enable web api for web client
export COMMANDLINE_ARGS=--api

启动 api 服务

 ./webui.sh

输出:

 Launching Web UI with arguments: --api
 Running on local URL:  http://127.0.0.1:7860

看到服务地址是 http://127.0.0.1:7860

代码测试

test.py

import json
import requests
import io
import base64
from PIL import Image, PngImagePlugin

import os
# 获取当前文件的绝对路径
current_file_path = os.path.abspath(__file__)
print("Current file path:", current_file_path)
current_directory = os.path.dirname(current_file_path)
print("Current directory:", current_directory)

out_dir =  os.path.join(current_directory, 'api_out')  
out_dir_t2i = os.path.join(out_dir, 'txt2img')
out_dir_i2i = os.path.join(out_dir, 'img2img')
os.makedirs(out_dir_t2i, exist_ok=True)
os.makedirs(out_dir_i2i, exist_ok=True)

url = "http://127.0.0.1:7860"

payload = {
    "prompt": "puppy dog",
    "steps": 5
}

response = requests.post(url=f'{url}/sdapi/v1/txt2img', json=payload)

r = response.json()

for i in r['images']:
    image = Image.open(io.BytesIO(base64.b64decode(i.split(",",1)[0])))

    png_payload = {
        "image": "data:image/png;base64," + i
    }
    response2 = requests.post(url=f'{url}/sdapi/v1/png-info', json=png_payload)

    pnginfo = PngImagePlugin.PngInfo()
    pnginfo.add_text("parameters", response2.json().get("info"))
    img_path = os.path.join(out_dir_t2i,'output.png')
    image.save(img_path, pnginfo=pnginfo)

运行之后输出 api_out/txt2img/output.png 文件

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值