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

2024-08-28 19:04

本文主要是介绍stable-diffusion-webui 部署 ,启用 api 服务,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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: --apiRunning 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, PngImagePluginimport 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 文件

在这里插入图片描述

这篇关于stable-diffusion-webui 部署 ,启用 api 服务的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1115617

相关文章

windos server2022的配置故障转移服务的图文教程

《windosserver2022的配置故障转移服务的图文教程》本文主要介绍了windosserver2022的配置故障转移服务的图文教程,以确保服务和应用程序的连续性和可用性,文中通过图文介绍的非... 目录准备环境:步骤故障转移群集是 Windows Server 2022 中提供的一种功能,用于在多个

解决systemctl reload nginx重启Nginx服务报错:Job for nginx.service invalid问题

《解决systemctlreloadnginx重启Nginx服务报错:Jobfornginx.serviceinvalid问题》文章描述了通过`systemctlstatusnginx.se... 目录systemctl reload nginx重启Nginx服务报错:Job for nginx.javas

k8s部署MongDB全过程

《k8s部署MongDB全过程》文章介绍了如何在Kubernetes集群中部署MongoDB,包括环境准备、创建Secret、创建服务和Deployment,并通过Robo3T工具测试连接... 目录一、环境准备1.1 环境说明1.2 创建 namespace1.3 创建mongdb账号/密码二、创建Sec

Java中的Opencv简介与开发环境部署方法

《Java中的Opencv简介与开发环境部署方法》OpenCV是一个开源的计算机视觉和图像处理库,提供了丰富的图像处理算法和工具,它支持多种图像处理和计算机视觉算法,可以用于物体识别与跟踪、图像分割与... 目录1.Opencv简介Opencv的应用2.Java使用OpenCV进行图像操作opencv安装j

将Python应用部署到生产环境的小技巧分享

《将Python应用部署到生产环境的小技巧分享》文章主要讲述了在将Python应用程序部署到生产环境之前,需要进行的准备工作和最佳实践,包括心态调整、代码审查、测试覆盖率提升、配置文件优化、日志记录完... 目录部署前夜:从开发到生产的心理准备与检查清单环境搭建:打造稳固的应用运行平台自动化流水线:让部署像

Python项目打包部署到服务器的实现

《Python项目打包部署到服务器的实现》本文主要介绍了PyCharm和Ubuntu服务器部署Python项目,包括打包、上传、安装和设置自启动服务的步骤,具有一定的参考价值,感兴趣的可以了解一下... 目录一、准备工作二、项目打包三、部署到服务器四、设置服务自启动一、准备工作开发环境:本文以PyChar

使用SpringBoot创建一个RESTful API的详细步骤

《使用SpringBoot创建一个RESTfulAPI的详细步骤》使用Java的SpringBoot创建RESTfulAPI可以满足多种开发场景,它提供了快速开发、易于配置、可扩展、可维护的优点,尤... 目录一、创建 Spring Boot 项目二、创建控制器类(Controller Class)三、运行

centos7基于keepalived+nginx部署k8s1.26.0高可用集群

《centos7基于keepalived+nginx部署k8s1.26.0高可用集群》Kubernetes是一个开源的容器编排平台,用于自动化地部署、扩展和管理容器化应用程序,在生产环境中,为了确保集... 目录一、初始化(所有节点都执行)二、安装containerd(所有节点都执行)三、安装docker-

在Ubuntu上部署SpringBoot应用的操作步骤

《在Ubuntu上部署SpringBoot应用的操作步骤》随着云计算和容器化技术的普及,Linux服务器已成为部署Web应用程序的主流平台之一,Java作为一种跨平台的编程语言,具有广泛的应用场景,本... 目录一、部署准备二、安装 Java 环境1. 安装 JDK2. 验证 Java 安装三、安装 mys

Jenkins中自动化部署Spring Boot项目的全过程

《Jenkins中自动化部署SpringBoot项目的全过程》:本文主要介绍如何使用Jenkins从Git仓库拉取SpringBoot项目并进行自动化部署,通过配置Jenkins任务,实现项目的... 目录准备工作启动 Jenkins配置 Jenkins创建及配置任务源码管理构建触发器构建构建后操作构建任务