nonebot2聊天机器人插件12:stable_diffusion_webui_api

2023-10-29 12:40

本文主要是介绍nonebot2聊天机器人插件12:stable_diffusion_webui_api,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

nonebot2聊天机器人插件12:stable_diffusion_webui_api

  • 1. 插件用途
  • 2. 代码实现
  • 3. 实际效果

该插件涉及知识点:定时器,调用bot的api发送消息
插件合集:nonebot2聊天机器人插件

该系列为用于QQ群聊天机器人的nonebot2相关插件,不保证完全符合标准规范写法,如有差错和改进余地,欢迎大佬指点修正。
前端:nonebot2
后端:go-cqhttp
插件所用语言:python3
前置环境安装过程建议参考nonebot2官方文档。

1. 插件用途

插件名:绘图(stable diffusion webui api)

用处是对接当前热门的AI绘图项目stable diffusion webui的api,调用该项目完成AI绘图,随后通过机器人发送到群里。

2. 代码实现

鉴于发送和接收这些功能的实现方式在本篇系列之前的内容中已经反复描述,此处不再赘述相关结构与代码,直接给出具体的核心模块实现。

前置:在你的电脑上配置stable diffusion webui,配置它所需要的环境,并且能够成功运行。
在启动时,设置为以api模式运行,在启动命令后面加上--api参数。
使用这个插件时,需要确保stable diffusion webui处于正常可用状态。

基于通用绘图api接口的stable diffusion webui api对接类
SD_webui_API.py

import io
import base64
from PIL import Image
import requestsclass SD_webui_API():# 配置def __init__(self):# stable diffusion webui的地址self.url = "http://127.0.0.1:7860"# 固定的负面tagself.payload = {"negative_prompt": "nsfw, lowres, bad anatomy, bad hands, text, error, missing fingers, ""extra digit, fewer digits, cropped, worst quality, low quality, ""normal quality, jpeg artifacts, signature, watermark, username, blurry, ""artist name, bad feet","steps": 28,"width": 1024,"height": 576,"cfg_scale": 7,}# 绘图,并保存到传入路径def draw_img(self, msg, temp_img_path):# 剔除一些居心不良的玩意msg = msg.replace("nsfw", "").replace("r18", "").replace("R18", "")# 添加前置词# 别问我为什么偷偷暗藏萝莉体型,懂得都懂self.payload["prompt"] = f"best quality, masterpiece, highres, extremely detailed wallpaper, younger child, {msg}"self.payload["prompt"] = self.payload["prompt"].replace(",", ",")# 发送和接收的信息response = requests.post(url=f'{self.url}/sdapi/v1/txt2img', json=self.payload)# 解析信息response = response.json()# 保存图像到磁盘for image_byte in response['images']:image = Image.open(io.BytesIO(base64.b64decode(image_byte.split(",", 1)[0])))image.save(temp_img_path)

调用绘图通用API的方式

from drawAPI import SD_webui_APIdraw_api = SD_webui_API.SD_webui_API()test_img_path = "temp/test.png"msg = "蓝色的小鸟,树林"
# 翻译输入的内容为英文,此处调用另外写的翻译api接口
msg, state = trans_to_en(msg)# 将图像绘制后保存到磁盘
draw_api.draw_img(msg, test_img_path)

完整的绘图插件主代码因为过长,就不再完整放出了~
翻译api因为涉及到一些别的东西,就不在这里给出了,如果你不知道怎么写,就直接用英文输入好了~
就当是留了个作业吧
不要问我为什么偷偷在代码里面锁定了生成萝莉体型的角色,懂得都懂

3. 实际效果

在这里插入图片描述

这篇关于nonebot2聊天机器人插件12:stable_diffusion_webui_api的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/300734

相关文章

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)

《C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)》本文主要介绍了C#集成DeepSeek模型实现AI私有化的方法,包括搭建基础环境,如安装Ollama和下载DeepS... 目录前言搭建基础环境1、安装 Ollama2、下载 DeepSeek R1 模型客户端 ChatBo

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

浅析如何使用Swagger生成带权限控制的API文档

《浅析如何使用Swagger生成带权限控制的API文档》当涉及到权限控制时,如何生成既安全又详细的API文档就成了一个关键问题,所以这篇文章小编就来和大家好好聊聊如何用Swagger来生成带有... 目录准备工作配置 Swagger权限控制给 API 加上权限注解查看文档注意事项在咱们的开发工作里,API

一分钟带你上手Python调用DeepSeek的API

《一分钟带你上手Python调用DeepSeek的API》最近DeepSeek非常火,作为一枚对前言技术非常关注的程序员来说,自然都想对接DeepSeek的API来体验一把,下面小编就来为大家介绍一下... 目录前言免费体验API-Key申请首次调用API基本概念最小单元推理模型智能体自定义界面总结前言最

JAVA调用Deepseek的api完成基本对话简单代码示例

《JAVA调用Deepseek的api完成基本对话简单代码示例》:本文主要介绍JAVA调用Deepseek的api完成基本对话的相关资料,文中详细讲解了如何获取DeepSeekAPI密钥、添加H... 获取API密钥首先,从DeepSeek平台获取API密钥,用于身份验证。添加HTTP客户端依赖使用Jav

本地搭建DeepSeek-R1、WebUI的完整过程及访问

《本地搭建DeepSeek-R1、WebUI的完整过程及访问》:本文主要介绍本地搭建DeepSeek-R1、WebUI的完整过程及访问的相关资料,DeepSeek-R1是一个开源的人工智能平台,主... 目录背景       搭建准备基础概念搭建过程访问对话测试总结背景       最近几年,人工智能技术

Ollama整合open-webui的步骤及访问

《Ollama整合open-webui的步骤及访问》:本文主要介绍如何通过源码方式安装OpenWebUI,并详细说明了安装步骤、环境要求以及第一次使用时的账号注册和模型选择过程,需要的朋友可以参考... 目录安装环境要求步骤访问选择PjrIUE模型开始对话总结 安装官方安装地址:https://docs.

C#使用DeepSeek API实现自然语言处理,文本分类和情感分析

《C#使用DeepSeekAPI实现自然语言处理,文本分类和情感分析》在C#中使用DeepSeekAPI可以实现多种功能,例如自然语言处理、文本分类、情感分析等,本文主要为大家介绍了具体实现步骤,... 目录准备工作文本生成文本分类问答系统代码生成翻译功能文本摘要文本校对图像描述生成总结在C#中使用Deep