首页 > 其他分享 >教程|腾讯云高性能应用服务(HAI)搭建Stable Diffusion 文生图API

教程|腾讯云高性能应用服务(HAI)搭建Stable Diffusion 文生图API

时间:2024-03-15 18:23:53浏览次数:31  
标签:Diffusion HAI v1 文生 base64 -- API sdapi

本次我们使用 腾讯云高性能应用服务 HAI 体验快速搭建并使用 AI 模型 StableDiffusion ,实现思路如下:

  • 提前通过高性能应用服务 HAI 部署成功 StableDiffusion 应用。
  • 基于部署好的应用,利用体验 JupyterLab 进行 StableDiffusion API 的部署。

前提

在部署 API 服务之前,请确保您已成功部署 StableDiffusion 应用。详细步骤可参见 快速使用 Stable Diffusion 文生图应用

部署 API 服务

1. 进入 jupyter_lab 控制台操作界面。 1.1 在实例列表中选择更多 > JupyterLab 并进入该实例的详情页。 1.2 初步认识并操作 JupyterLab。   1.3 选择使用终端命令行操作。   输入代码:   cd stable-diffusion-webui python launch.py --nowebui --xformers --opt-split-attention --listen --port 7862   命令参数描述如下图:
命令 描述
--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。
操作截图如下图所示:   1.4 添加高性能应用服务 HAI 的端口配置,使外部网络能够顺利地访问该服务器提供的 API 服务。 1.4.1 在算力管理页面。单击实例空白进入详情设置页。 1.4.2 在端口配置弹窗中,单击编辑规则。   1.4.3 在安全组规则页面中,在入站规则页签单击添加规则。   配置参考如下:   来源:0.0.0.0/0 协议端口:TCP:7862 (根据您配置的端口填写)     2. 启动 StableDiffusion API 接口使用指南   2.1 配置完成后,在浏览器地址栏输入服务器 IP 地址:端口号/docs 可查看相关的 API 接口使用指南。 官方提供的常用 API 如下:   /sdapi/v1/txt2img文字生图 POST /sdapi/v1/img2img图片生图 POST /sdapi/v1/options获取设置 GET | 更新设置 POST(可用来更新远端的模型) /sdapi/v1/sd-models获取所有的模型 GET   2.2 查看相关接口示例 (/sdapi/v1/txt2img ) 。 常用输入如下:   { "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" } 可复制以上参数到 Request body 中。
名称 说明
prompt 提示词
negative_prompt 反向提示词
seed 种子,随机数
batch_size 每次张数
n_iter 生成批次
steps 生成步数
cfg_scale 关键词相关性
width 宽度
height 高度
restore_faces 脸部修复
tiling 可平铺
sampler_index 采样方法
请求 API 接口成功截图如下: 返回的格式如下:   { "images": [...],// 这里是一个base64格式的字符串数组,根据请求的图片数量而定 "parameters": { ... },//此处为输入的body "info": "{...}"// 返回的图片的信息 } 当看到类似上图的消息时,说明已经成功与远端的服务器进行连接!如果希望验证结果的图片的实际展示效果,可以复制 images 中的其中一张图片的 base64 格式的字符串,到相关的网站下转换为 jpg 格式。   3. 使用 Python 向高性能应用服务 HAI 提供的 StableDiffusionAPI 发送请求。   以下演示如何使用 Python 向 StableDiffusion API 发出请求。向应用程序的 txt2img(即文本到图像)API 发送 POST 请求以简单地生成图像。 我们将使用 requests 包,如果您还没有安装,请使用安装脚本:   pip install requests 我们可以发送一个包含提示的请求作为一个简单的字符串。服务器将返回一个图像作为 base64 编码的 PNG 文件,我们需要对其进行解码。 要解码 base64 图像,我们只需使用 base64.b64decode(b64_image)。 以下使用 Python 作为脚本代码测试:   import json import base64 import requests   your_ip = '0.0.0.0' # HAI服务器IP地址 your_port =7862 # 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") asimage_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') 请记住,您的结果会与上述示例有所不同。 如果遇到问题,请仔细检查运行 StableDiffusionAPI 应用程序的终端的输出。 如果您遇到404 Not Found 的问题,请仔细检查 URL 是否输入正确并指向正确的地址(例如 127.0.0.1)。 服务端可查看每一次接口调用详情:

 

标签:Diffusion,HAI,v1,文生,base64,--,API,sdapi
From: https://www.cnblogs.com/txycsig/p/18076005

相关文章

  • 从API到Agent:万字长文洞悉LangChain工程化设计
    我想做一个尝试,看看能不能用尽量清晰的逻辑,给“AI外行人士”(当然,我也是……)引入一下LangChain,试着从工程角度去理解LangChain的设计和使用。同时大家也可以将此文档作为LangChain的“10分钟快速上手”手册,本意是希望帮助需要的同学实现AI工程的Bootstrap。文中所有的示例代码都......
  • 1秒AI出图的时代来了!Stable Diffusion WebUI Forge+SVD整合包
    速度快N倍!StableDiffusionWebUIForge整合包要说今年绘画圈最大的新秀那妥妥的就StableDiffution本次更新的StableDiffusionWebUIForge整合包+SVD比之前推送的更加智能、快速和简单有多简单呢?这么说吧之前的版本需要初中生级别现在的的幕后网整合包加强版小......
  • [基础] Stable Diffusion, High-Resolution Image Synthesis with Latent Diffusion M
    名称StableDiffusion,High-ResolutionImageSynthesiswithLatentDiffusionModelsTL;DR这篇文章介绍了一种名为潜在扩散模型(LatentDiffusionModels,LDMs)的新型高分辨率图像合成方法。LDMs通过在预训练的自编码器的潜在空间中应用扩散模型,实现了在有限计算资源下训练高......
  • 用免费GPU部署自己的stable-diffusion-学习笔记
    最近由于工作需要,开始学习AI+大模型,零基础,听从同事的推荐报名参加了一个免费学习团队,本文是整理的一些学习笔记。课程是趋动云提供支持的,在注册时赠送了足够学习使用的188算力。项目在趋动云上可以直接快速简洁地部署起来,不用自己配置环境、安装软件。教程是傻瓜式的,跟着步骤一......
  • Langchain-Chatchat开源库使用的随笔记(一)
    转自:https://zhuanlan.zhihu.com/p/6760612691Chatchat项目结构整个结构是server 启动API,然后项目内自行调用API。API详情可见:http://xxx:7861/docs ,整个代码架构还是蛮适合深入学习 在这里插入图片描述 2Chatchat一些代码学习2.112个分块函数统一使用截止2023......
  • Langchain-ChatGLM源码解读(一)-文档数据上传
    一、简介Langchain-ChatGLM 相信大家都不陌生,近几周计划出一个源码解读,先解锁langchain的一些基础用法。文档问答过程大概分为以下5部分,在Langchain中都有体现。上传解析文档文档向量化、存储文档召回query向量化文档问答今天主要讲langchain在上传解析文档时是怎么实......
  • Langchain-ChatGLM源码解读(二)-文档embedding以及构建faiss过程
    一、简介Langchain-ChatGLM 相信大家都不陌生,近几周计划出一个源码解读,先解锁langchain的一些基础用法。文档问答过程大概分为以下5部分,在Langchain中都有体现。上传解析文档文档向量化、存储文档召回query向量化文档问答今天主要讲langchain在文档embedding以及构建fa......
  • 教程|腾讯云高性能应用服务(HAI)搭建多音色控制的TTS引擎
    在这篇文章中,我们将介绍如何使用腾讯云的高性能应用服务(HAI)来搭建一个具有多音色控制的文本转语音(TTS)引擎,具体操作步骤如下:登录高性能应用服务HAI控制台点击新建选择AI框架,选择算力方案、输入实例名称、选择数量后立即购买开启学术加速功能完成创建,查看运行状态......
  • Adaptive Diffusion in Graph Neural Networks论文阅读笔记
    AdaptiveDiffusioninGraphNeuralNetworks论文阅读笔记Abstract​ 最近提出了图扩散卷积(GDC),利用广义图扩散来扩展传播邻域。然而,GDC中的邻域大小是通过在验证集上进行网格搜索来手动对每个图进行调整的,这使得其泛化实际上受到了限制。为了解决这个问题,我们提出了自适应扩散......
  • 【DataWhale学习】用免费GPU线上跑StableDiffusion项目实践
    用免费GPU线上跑SD项目实践​DataWhale组织了一个线上白嫖GPU跑chatGLM与SD的项目活动,我很感兴趣就参加啦。之前就对chatGLM有所耳闻,是去年清华联合发布的开源大语言模型,可以用来打造个人知识库什么的,一直没有尝试。而SD我前两天刚跟着B站秋叶大佬和Nenly大佬的视频学习过......