新手向,Stable Diffusion API 接口,在本地调用
创始人
2024-11-13 15:37:14
0

首先应该有本地部署好的 WEB-UI。

启动项目时打开API接口。

如果你是在Git上copy的项目,在启动web-ui.bat时加上--api的启动参数.

如果是使用秋叶大佬的整合包,请勾选

以及

 在这里设置随意用户名和密码。

之后启动Web-UI,确认成功启动。

在python脚本里构建request请求,使用POST,尝试请求图片:

import requests 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() print(r)

如果print出来的结果是一大长串乱码,说明请求成功,这些乱码其实就是图片文件,具体如何转码见下文。

如果结果是:{'detail': 'Not authenticated'}

那么你应该是用的一键启动包进行登录,或是在别的地方设置了用户名和密码,解决方法如下:

启动web-ui后访问  http://localhost:7860/docs

找到这一条:

点开之后是这样的:

点击右上角的 Try it out 按钮,

 直接点击Excute提交,网站会弹出让你登录的窗口,输入自己设置的用户名密码即可。

登录后,如果它向你返回的是这样的信息:

说明你已经验证成功了。

接着按F12,开发者工具。

在保持开发者工具打开的情况下,再次点Excute。

你会在里面看到,有一个POST请求,点开之后长这样,注意我箭头标出来的这个值:

把他复制下来,在你的Python代码里加上如下一行:

headers = {     "Authorization": "(里面填写你复制的值,如Basic YWFhYTphYWFh)" }

并且在提交请求的时候,后面加上headers的提交:

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

再运行,你就可以成功请求到图片。

当你成功请求图片后,进行如下处理:

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

 记得在前面加上相应的import:

import io import base64 from PIL import Image

 启动,如果成功运行,你就可以在项目目录中看到狗狗的图片,名字叫output.png。

在发送请求时,payload里面的值是重点,如果用过sd的应该都比较熟悉了.

这里面大部分都不是必填项,具体每一项的意思,都比较明显,和WebUI里的一一对应,我就不再赘述了。

如果是不太了解json的萌新,可以只选择如下几项:

payload = {     "prompt": "puppy dog", # 正面提示词     "negative_prompt": "wrong hands", # 负面提示词     "steps": 20  # 步数 }

基本可选参数如下(请自行修改每项的值,如True或False的大小写,string替换成的内容):

payload = {
  "enable_hr": false,
  "denoising_strength": 0,
  "firstphase_width": 0,
  "firstphase_height": 0,
  "hr_scale": 2,
  "hr_upscaler": "string",
  "hr_second_pass_steps": 0,
  "hr_resize_x": 0,
  "hr_resize_y": 0,
  "prompt": "",     #  提示词
  "styles": [
    "string"
  ],
  "seed": -1,
  "subseed": -1,
  "subseed_strength": 0,
  "seed_resize_from_h": -1,
  "seed_resize_from_w": -1,
  "sampler_name": "string",
  "batch_size": 1,
  "n_iter": 1,
  "steps": 50,
  "cfg_scale": 7,
  "width": 512,
  "height": 512,
  "restore_faces": false,
  "tiling": false,
  "do_not_save_samples": false,
  "do_not_save_grid": false,
  "negative_prompt": "string",     #  负面提示词
  "eta": 0,
  "s_churn": 0,
  "s_tmax": 0,
  "s_tmin": 0,
  "s_noise": 1,
  "override_settings": {},
  "override_settings_restore_afterwards": true,
  "script_args": [],
  "sampler_index": "Euler",
  "script_name": "string",
  "send_images": true,
  "save_images": false,
  "alwayson_scripts": {}
}

也有更多的可选请求,比较了解http请求和Json数据的老哥请自行访问 ​​​​​http://localhost:7860/docs/

相关内容

热门资讯

绝活儿辅助!广西老友玩老是输怎... 绝活儿辅助!广西老友玩老是输怎么办(辅助挂)都是真的有辅助app(讲解有挂)在进入广西老友玩老是输怎...
法门辅助!福建13水插件(辅助... 法门辅助!福建13水插件(辅助挂)一贯是有辅助技巧(有挂技术)1、许多玩家不知道福建13水插件辅助怎...
办法辅助!潮友会app下载官方... 办法辅助!潮友会app下载官方辅助器(辅助挂)真是真的是有辅助app(有挂教程)该软件可以轻松地帮助...
妙招辅助!邯郸胡乐挂辅助(辅助... 妙招辅助!邯郸胡乐挂辅助(辅助挂)好像存在有辅助插件(有挂方略)1、上手简单,内置详细流程视频教学,...
教程书辅助!乐酷辅助(辅助挂)... 教程书辅助!乐酷辅助(辅助挂)其实存在有辅助脚本(有挂细节)乐酷辅助能透视中分为三种模型:乐酷辅助模...
学习辅助!决战卡五星辅助(辅助... 学习辅助!决战卡五星辅助(辅助挂)本来真的是有辅助软件(有人有挂)学习辅助!决战卡五星辅助(辅助挂)...
绝活辅助!边锋嘉兴麻将辅助器(... 绝活辅助!边锋嘉兴麻将辅助器(辅助挂)真是真的有辅助神器(新版有挂)1、边锋嘉兴麻将辅助器公共底牌简...
举措辅助!枫叶辅助器(辅助挂)... 举措辅助!枫叶辅助器(辅助挂)本来存在有辅助技巧(竟然有挂)1、下载好枫叶辅助器正确养号方法之后点击...
讲义辅助!点我达辅助(辅助挂)... 讲义辅助!点我达辅助(辅助挂)一直存在有辅助技巧(有人有挂)1、点我达辅助辅助器安装包、点我达辅助辅...
模块辅助!威信茶馆有挂的吗(辅... 模块辅助!威信茶馆有挂的吗(辅助挂)一直真的是有辅助脚本(揭秘有挂)1、玩家可以在威信茶馆有挂的吗线...