前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【腾讯云 HAI】快速构建 Stable Diffusion API 服务

【腾讯云 HAI】快速构建 Stable Diffusion API 服务

原创
作者头像
acc8226
修改2024-04-07 11:18:06
1580
修改2024-04-07 11:18:06
举报
文章被收录于专栏:aiai

背景介绍

腾讯云高性能应用服务 HAI 是为开发者量身打造的澎湃算力平台。无需复杂配置,便可享受即开即用的GPU云服务体验。在 HAI 中,根据应用智能匹配并推选出最适合的GPU算力资源,以确保您在数据科学、LLM、AI作画等高性能应用中获得最佳性价比。

趁着互动期间,我立马购置了一定时长的 腾讯云高性能应用服务 HAI,体验一下腾讯云 HAI 是如何快速构建 Stable Diffusion API。

购买服务

我们点击进入高性能应用服务 HAI 购买页面

购买成功后自动会进行服务器创建

连接算力

在服务器创建好之后点击红框标识内容进入 web 网页。

其实我们只用到的 JupyterLab 的终端功能,选择使用终端命令行操作。

代码语言:sh
复制
cd stable-diffusion-webui
python launch.py --nowebui --xformers --opt-split-attention  --listen --port 7898

注意:如果 cd stable-diffusion-webui 失败,请观察当前所在目录是否正确。

命令参数描述如下图:

命令

描述

--nowebui

以 API 模式启动。

--xformers

改善内存消耗和速度。

--opt-split-attention

Cross attention layer optimization 优化显着减少了内存使用。

--listen

默认启动绑定的 IP 是 127.0.0.1。

--port

默认端口是7860,可以配置并修改该参数,例如:--port 7862。

--gradio-auth username:password

如果希望给 WebUI 设置登录密码,可以配置该参数,例如:--gradio-auth GitLqr:123456。

稍等片刻,等待服务启动。看到 INFO: Started server process 字眼表示服务已启动。

同时别忘了在安全组中添加高性能应用服务 HAI 对应端口配置,使外部网络能够顺利地访问该服务器提供的 API 服务。

访问服务

配置完成后,在浏览器地址栏输入服务器 IP 地址:端口号/docs 可查看相关的 API 接口使用指南。

我们以 /sdapi/v1/txt2img 文字生图使用举例:

填写示例参数

代码语言:json
复制
{
     "denoising_strength": 0,
     "prompt": "puppy dogs",
     "negative_prompt": "",
     "seed": -1,
     "batch_size": 2,
     "n_iter": 1,
     "steps": 50,
     "cfg_scale": 7,
     "width": 512,
     "height": 512,
     "restore_faces": false,
     "tiling": false,
     "sampler_index": "Euler" 
}

参数示意

名称

说明

prompt

提示词

negative_prompt

反向提示词

seed

种子,随机数

batch_size

每次张数

n_iter

生成批次

steps

生成步数

cfg_scale

关键词相关性

width

宽度

height

高度

restore_faces

脸部修复

tiling

可平铺

sampler_index

采样方法

点击执行,请求 API 接口成功截图如下:

当看到类似上图的消息时,说明已经成功与远端的服务器进行连接!如果希望验证结果的图片的实际展示效果,可以复制 images 中的其中一张图片的 base64 格式的字符串,到相关的网站下转换为 jpg 格式。

使用 Python 向高性能应用服务 HAI 提供的 Stable Diffusion API 发送请求

可以在已安装 python 和 环境的电脑上。我们还将使用 requests 包,如果您还没有安装,请使用安装脚本:

代码语言:python
复制
pip install requests 

接着我们新建一个 getpay.py 文件,运行代码,记得更改对应的端口 your_port 和请求地址 your_ip。

代码语言:python
复制
import json
import base64
import requests
 
your_ip = '134.175.64.13' # HAI服务器IP地址
your_port =7898  # SD api 监听的端口
 
def submit_post(url: str,data: dict):
  """
  Submit a POST request to the given URL withthe given data.
  """
  return requests.post(url,data=json.dumps(data))
 
def save_encoded_image(b64_image: str,output_path: str):
  """
  Save the given image to the given outputpath.
  """
  with open(output_path,"wb") as image_file:
      image_file.write(base64.b64decode(b64_image))
 
if __name__ == '__main__':
  #/sdapi/v1/txt2img
  txt2img_url = f'http://{your_ip}:{your_port}/sdapi/v1/txt2img'
  data = {
     'prompt': 'a pretty cat,cyberpunk art,kerem beyit,verycute robot zen,Playful,Independent,beeple |',
     'negative_prompt':'(deformed,distorted,disfigured:1.0),poorlydrawn,bad anatomy,wrong anatomy,extra limb,missing limb,floating limbs,(mutatedhands and fingers:1.5),disconnectedlimbs,mutation,mutated,ugly,disgusting,blurry,amputation,flowers,human,man,woman',
     'Steps':50,
     'Seed':1791574510
  }
  response = submit_post(txt2img_url,data)
  save_encoded_image(response.json()['images'][0],'cat.png')

我们可以发送一个包含提示的请求作为一个简单的字符串。服务器将返回一个图像作为 base64 编码的 PNG 文件,我们会对其进行解码并存到脚本同级的 cat.png 文件中。

如果生成不满意可以多试几次。

写到最后

虽然我今天只是试用了冰山一角,但是 AI 绘画服务真的令人大开眼界。只需要准确描述,计算机就能生成你需要的图片。

再搭配腾讯云 HAI,可方便帮助用户快速搭建但不限于 Stable Diffusion API 服务。拿到 API 服务后开发者可根据需要开发自己的产品。

最后如果不用了,别忘了即时销毁 HAI 服务。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景介绍
  • 购买服务
  • 连接算力
  • 访问服务
  • 使用 Python 向高性能应用服务 HAI 提供的 Stable Diffusion API 发送请求
  • 写到最后
相关产品与服务
API 网关
腾讯云 API 网关(API Gateway)是腾讯云推出的一种 API 托管服务,能提供 API 的完整生命周期管理,包括创建、维护、发布、运行、下线等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档