在函数计算FC中 stable diffusion 选了api 模式,点确认之后还是没有开始api模式,为什么?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
这个问题可能是由于多种原因造成的。首先,你应当检查你的函数计算 FC 环境是否正确配置并且与 stable diffusion API 配置匹配。
其次,请确认你的 stable diffusion API 地址和访问密钥是否输入正确,并且它们具有正确的权限,以便函数计算 FC 能够访问它们。
如果以上都已确认无误,还有一种可能性是你可能遇到了稳定的 diffusion API 请求的限流。你可以尝试增加 stable diffusion API 的请求配额,或者减少并发请求的数量,以便避免这种情况的发生。
如何使用 SD API
一段可用的代码如下
```import requests
import base64
endpoint="http://xxxxxx.cn-hangzhou.fc.devsapp.net"
username=""
password=""
resp = requests.post(
"%s/sdapi/v1/txt2img" % endpoint,
headers={
"Authorization": "Basic %s" % (base64.b64encode(("%s:%s" % (username, password)).encode("utf-8")).decode("utf-8")), # 如果未开启 API 鉴权,可忽略该部分
},
json={
"prompt": "1 girl, sunshine, dog",
"step": 10,
"height": 512,
"width": 1024,
"override_settings": {
# "sd_model_checkpoint": "mixProV4.Cqhm.safetensors",
"sd_model_checkpoint": "majicMIX realistic_v6.safetensors",
},
}
)
if resp.status_code == 200:
data = resp.json()
for i, img in enumerate(data["images"]):
with open("%s.png" % (i), "wb") as f:
b = base64.b64decode(img)
f.write(b)
data["images"] = ""
print(data)
else:
print(resp.status_code, resp.text)
```
更多 SD api 可见页面最下方的 API 链接,如果需要调用插件,请查看对应插件的文档https://alidocs.dingtalk.com/i/p/x9JOGOjr65om4QLAdy0mV8B0gpkodz89?spm=a2c6h.13066369.question.7.166611cd0ZDdNC
这个问题可能是由于网络延迟、浏览器缓存或者服务器响应缓慢等原因导致的。请尝试以下操作: