Stable-diffusion-WebUI 的API调用(内含文生图和图生图实例)

这篇具有很好参考价值的文章主要介绍了Stable-diffusion-WebUI 的API调用(内含文生图和图生图实例)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前情提要

在之前尝试使用Diffusers库来进行stable-diffusion的接口调用以及各种插件功能实现,但发现diffusers库中各复杂功能的添加较为麻烦,而且难以实现对采样器的添加,safetensors格式模型的读取。在官网上找到了webui有专门的api接口,能够极大方便我们进行类似webui界面的api调用。

stable diffusion webui sdapi override_settings,扩散模型,stable diffusion,fastapi,深度学习,人工智能

stable diffusion webui sdapi override_settings,扩散模型,stable diffusion,fastapi,深度学习,人工智能

diffusers文档

webui项目官网

webui API说明

webui项目部署

这种调用webui自带的api的方法需要先将webui运行起来,无论是自己从官网配置的webui,还是各类启动器一键启动的都是可以的。(我使用的为一键启动包,较为简单)

一键启动包教程

如果是自己配置的

使用

bash webui.sh --nowebui

或者

python launch.py --xformers --api

API接口调用

当我们把webui项目启动之后,我们可以看到运行的端口(默认为7860)

可以进行调用

1. 文生图(python示例):

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

url = "http://127.0.0.1:7860"

prompt = "dog"
negative_prompt = ""

payload = {

    # 模型设置
    "override_settings":{
          "sd_model_checkpoint": "v1-5-pruned.ckpt",
          "sd_vae": "animevae.pt",
          "CLIP_stop_at_last_layers": 2,
    },

    # 基本参数
    "prompt": prompt,
    "negative_prompt": negative_prompt,
    "steps": 30,
    "sampler_name": "Euler a",
    "width": 512,
    "height": 512,
    "batch_size": 1,
    "n_iter": 1,
    "seed": 1,
    "CLIP_stop_at_last_layers": 2,

    # 面部修复 face fix
    "restore_faces": False,

    #高清修复 highres fix
    # "enable_hr": True,
    # "denoising_strength": 0.4,
    # "hr_scale": 2,
    # "hr_upscaler": "Latent",

}

response = requests.post(url=f'{url}/sdapi/v1/txt2img', json=payload)
r = response.json()
image = Image.open(io.BytesIO(base64.b64decode(r['images'][0])))

image.show()
image.save('output.png')

2. 图生图(python 示例)

import json
import requests
import io
import base64
from PIL import Image
import cv2

url = "http://127.0.0.1:7860"

prompt = "cat"
negative_prompt = ""

# 此处为读取一张图片作为输入图像
img = cv2.imread('image.jpg')

# 编码图像
retval, bytes = cv2.imencode('.png', img)
encoded_image = base64.b64encode(bytes).decode('utf-8')

payload = {

#     # 模型设置
#     "override_settings":{
#           "sd_model_checkpoint": "v1-5-pruned.ckpt",
#           "sd_vae": "animevae.pt",
#           "CLIP_stop_at_last_layers": 2,
#     },

    # 基本参数
    "prompt": prompt,
    "negative_prompt": negative_prompt,
    "steps": 30,
    "sampler_name": "Euler a",
    "width": 512,
    "height": 512,
    "batch_size": 1,
    "n_iter": 1,
    "seed": 1,
    "cfg_scale": 7,
    "CLIP_stop_at_last_layers": 2,
    
    "init_images": [encoded_image],

    # 面部修复 face fix
    "restore_faces": False,

    #高清修复 highres fix
    # "enable_hr": True,
    # "denoising_strength": 0.4,
    # "hr_scale": 2,
    # "hr_upscaler": "Latent",

}



response = requests.post(url=f'{url}/sdapi/v1/img2img', json=payload)
r = response.json()
image = Image.open(io.BytesIO(base64.b64decode(r['images'][0])))

image.show()
image.save('output.png')

如要修改其他参数可参照官网文档进行修改。文章来源地址https://www.toymoban.com/news/detail-796954.html

到了这里,关于Stable-diffusion-WebUI 的API调用(内含文生图和图生图实例)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 大话Stable-Diffusion-Webui-动手开发一个简单的stable-diffusion-webui(四)

    vueuse 工具包封装了一些常用的方法,且对于数据的操作是响应式的。接下里我们会用其中的 useStorage 方法保存组件中的参数以及文生图API的请求结果,这样在浏览器刷新后依然可以得到原来的数据。 上篇内容我们已经实现了文生图的功能,但是当我们主动刷新网页后,组件

    2024年02月16日
    浏览(40)
  • 大话Stable-Diffusion-Webui-动手开发一个简单的stable-diffusion-webui(一)

    stable-diffusion-webui(以下简称sd)项目通过FastAPI对外提供了一系列的api用于开发者二次开发或者集成到自己的项目中。大体原理就是sd在本地启动后作为服务端,然后通过FastAPI提供API接口,

    2024年02月09日
    浏览(100)
  • 大话Stable-Diffusion-Webui-动手开发一个简单的stable-diffusion-webui(三)

    上一篇内容中,我们已经将文生图

    2024年02月11日
    浏览(52)
  • 大话Stable-Diffusion-Webui-动手开发一个简单的stable-diffusion-webui(二)

    在上篇内容中我们将界面的整体布局进行划分,并且放置了两个ant-design-vue的文本域组件 a-textarea ,我们继续向文本域组件添加文本域自身有的属性: allow-clear :可以直接使用清除按钮清除文本域内容 :rows=\\\"5\\\" :限制文本域行数为5行 show-count :maxle

    2024年02月09日
    浏览(73)
  • Stable Diffusion stable-diffusion-webui开发笔记

    Stable Diffusion用来文字生成图片,ControlNet就是用来控制构图的,LoRA就是用来控制风格的 。 国内加速官网: mirrors / AUTOMATIC1111 / stable-diffusion-webui · GitCode 安装参考: Stable Diffusion安装与常见错误(+Lora使用)2023年最新安装教程_cycyc123的博客-CSDN博客 保姆级教程:从0到1搭建St

    2024年02月10日
    浏览(72)
  • stable-diffusion-webui 安装

    https://blog.csdn.net/weixin_72056722/article/details/126651703 卸载cpu版本的torch并离线安装对应的gpu版本 1、安装gpu ,速度从一小时加速到3分钟 torch 下载 https://download.pytorch.org/whl/torch_stable.html 1、 No matching distribution found for clip 国内没有,网路 2、 WARNING: Ignoring invalid distribution -ip 找到提示

    2024年02月13日
    浏览(65)
  • 汉化 stable-diffusion-webui

    此扩展可以在 Extension 选项卡里面通过加载官方插件列表直接安装 下载汉化包 官方下载 点击 Extension 选项卡,点击 Avaliable 子选项卡 取消勾选 localization ,再把其他勾上,然后点击橙色按钮后等待 Ctrl + F 全文搜索 zh_CN ,在 zh_CN Localization 这一项的右边点击 install ,如下图 通

    2024年02月12日
    浏览(56)
  • stable-diffusion-webui部署

    Stable Diffusion于2022-08-23开源,点击体验 扩散模型的定义与采样方法 扩散模型通过定义一个不断加噪声的前向过程来将图片逐步变为高斯噪声,再通过定义了一个逆向过程将高斯噪声逐步去噪变为清晰图片以得到采样。 在采样过程中,根据是否添加额外的噪声,可以将扩散模

    2024年01月17日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包