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

相关文章

浏览器插件cursor实现自动注册、续杯的详细过程

《浏览器插件cursor实现自动注册、续杯的详细过程》Cursor简易注册助手脚本通过自动化邮箱填写和验证码获取流程,大大简化了Cursor的注册过程,它不仅提高了注册效率,还通过友好的用户界面和详细... 目录前言功能概述使用方法安装脚本使用流程邮箱输入页面验证码页面实战演示技术实现核心功能实现1. 随机

HTML5 getUserMedia API网页录音实现指南示例小结

《HTML5getUserMediaAPI网页录音实现指南示例小结》本教程将指导你如何利用这一API,结合WebAudioAPI,实现网页录音功能,从获取音频流到处理和保存录音,整个过程将逐步... 目录1. html5 getUserMedia API简介1.1 API概念与历史1.2 功能与优势1.3

CnPlugin是PL/SQL Developer工具插件使用教程

《CnPlugin是PL/SQLDeveloper工具插件使用教程》:本文主要介绍CnPlugin是PL/SQLDeveloper工具插件使用教程,具有很好的参考价值,希望对大家有所帮助,如有错... 目录PL/SQL Developer工具插件使用安装拷贝文件配置总结PL/SQL Developer工具插

maven中的maven-antrun-plugin插件示例详解

《maven中的maven-antrun-plugin插件示例详解》maven-antrun-plugin是Maven生态中一个强大的工具,尤其适合需要复用Ant脚本或实现复杂构建逻辑的场景... 目录1. 核心功能2. 典型使用场景3. 配置示例4. 关键配置项5. 优缺点分析6. 最佳实践7. 常见问题

使用Python实现调用API获取图片存储到本地的方法

《使用Python实现调用API获取图片存储到本地的方法》开发一个自动化工具,用于从JSON数据源中提取图像ID,通过调用指定API获取未经压缩的原始图像文件,并确保下载结果与Postman等工具直接... 目录使用python实现调用API获取图片存储到本地1、项目概述2、核心功能3、环境准备4、代码实现

无法启动此程序因为计算机丢失api-ms-win-core-path-l1-1-0.dll修复方案

《无法启动此程序因为计算机丢失api-ms-win-core-path-l1-1-0.dll修复方案》:本文主要介绍了无法启动此程序,详细内容请阅读本文,希望能对你有所帮助... 在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是"api-ms-win-core-path-l1-1-0.dll丢失

MyBatis分页插件PageHelper深度解析与实践指南

《MyBatis分页插件PageHelper深度解析与实践指南》在数据库操作中,分页查询是最常见的需求之一,传统的分页方式通常有两种内存分页和SQL分页,MyBatis作为优秀的ORM框架,本身并未提... 目录1. 为什么需要分页插件?2. PageHelper简介3. PageHelper集成与配置3.

python通过curl实现访问deepseek的API

《python通过curl实现访问deepseek的API》这篇文章主要为大家详细介绍了python如何通过curl实现访问deepseek的API,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编... API申请和充值下面是deepeek的API网站https://platform.deepsee

Maven 插件配置分层架构深度解析

《Maven插件配置分层架构深度解析》:本文主要介绍Maven插件配置分层架构深度解析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Maven 插件配置分层架构深度解析引言:当构建逻辑遇上复杂配置第一章 Maven插件配置的三重境界1.1 插件配置的拓扑

Idea插件MybatisX失效的问题解决

《Idea插件MybatisX失效的问题解决》:本文主要介绍Idea插件MybatisX失效的问题解决,详细的介绍了4种问题的解决方法,具有一定的参考价值,感兴趣的可以了解一下... 目录一、重启idea或者卸载重装MyBATis插件(无需多言)二、检查.XML文件与.Java(该文件后缀Idea可能会隐藏