添加bing第三方绘图

This commit is contained in:
zyc404 2023-10-12 16:31:20 +08:00
parent 8dcfb54e04
commit fed2fd8dd4
3 changed files with 41 additions and 10 deletions

View file

@ -1665,16 +1665,40 @@ export class chatgpt extends plugin {
if (Config.debug) {
logger.mark(`开始生成内容:${response.details.imageTag}`)
}
let client = new BingDrawClient({
baseUrl: Config.sydneyReverseProxy,
userToken: bingToken
})
await redis.set(`CHATGPT:DRAW:${e.sender.user_id}`, 'c', { EX: 30 })
try {
await client.getImages(response.details.imageTag, e)
} catch (err) {
await redis.del(`CHATGPT:DRAW:${e.sender.user_id}`)
await e.reply('绘图失败:' + err)
if (Config.bingDrawApi) {
// 调用第三方API进行绘图
const drawOption = {
method: 'POST',
body: JSON.stringify({
prompt: response.details.imageTag,
width: 512,
height: 512
})
}
const drawData = await fetch(Config.bingDrawApi, drawOption)
if (drawData.ok) {
let draw = await cacheres.json()
if (draw.images) {
for(let image of draw.images) {
this.reply(segment.image(`base64://${image}`), true)
}
}
} else {
await e.reply('绘图失败:第三方绘图服务器错误')
}
} else {
let client = new BingDrawClient({
baseUrl: Config.sydneyReverseProxy,
userToken: bingToken
})
await redis.set(`CHATGPT:DRAW:${e.sender.user_id}`, 'c', { EX: 30 })
try {
await client.getImages(response.details.imageTag, e)
} catch (err) {
await redis.del(`CHATGPT:DRAW:${e.sender.user_id}`)
await e.reply('绘图失败:' + err)
}
}
}

View file

@ -636,6 +636,12 @@
"label": "必应验证码pass服务",
"placeholder": "必应出验证码会自动用该服务绕过",
"data": "bingCaptchaOneShotUrl"
},
{
"type": "url",
"label": "第三方绘图",
"placeholder": "Stable Diffusion API地址",
"data": "bingDrawApi"
}
]
},

View file

@ -96,6 +96,7 @@ const defaultConfig = {
maxNumUserMessagesInConversation: 20,
sydneyApologyIgnored: true,
enforceMaster: false,
bingDrawApi: '',
serverPort: 3321,
serverHost: '',
viewHost: '',