mirror of
https://github.com/FloatTech/ZeroBot-Plugin.git
synced 2025-12-20 22:40:23 +08:00
扩展aipaint指令 (#472)
This commit is contained in:
parent
2fc47a38fa
commit
21712c6299
@ -53,11 +53,15 @@ func init() { // 插件主体
|
|||||||
DisableOnDefault: false,
|
DisableOnDefault: false,
|
||||||
Help: "ai绘图\n" +
|
Help: "ai绘图\n" +
|
||||||
"- [ ai绘图 | 生成色图 | 生成涩图 | ai画图 ] xxx\n" +
|
"- [ ai绘图 | 生成色图 | 生成涩图 | ai画图 ] xxx\n" +
|
||||||
|
"- [ ai高级绘图 | 高级生成色图 | 高级生成涩图 | ai高级画图 ] [prompt]" +
|
||||||
"- [ 以图绘图 | 以图生图 | 以图画图 ] xxx [图片]|@xxx|[qq号]\n" +
|
"- [ 以图绘图 | 以图生图 | 以图画图 ] xxx [图片]|@xxx|[qq号]\n" +
|
||||||
"- 设置ai绘图配置 [server] [token]\n" +
|
"- 设置ai绘图配置 [server] [token]\n" +
|
||||||
"例: 设置ai绘图配置 http://91.217.139.190:5010 abc\n" +
|
"例: 设置ai绘图配置 http://91.217.139.190:5010 abc\n" +
|
||||||
"参考服务器 http://91.217.139.190:5010, http://91.216.169.75:5010, http://185.80.202.180:5010" +
|
"参考服务器 http://91.217.139.190:5010, http://91.216.169.75:5010, http://185.80.202.180:5010" +
|
||||||
"通过 http://91.217.139.190:5010/token 获取token",
|
"通过 http://91.217.139.190:5010/token 获取token\n" +
|
||||||
|
"[prompt]参数如下\n" +
|
||||||
|
"tags:tag词条\nntags:ntag词条\nshape:[Portrait|Landscape|Square]\nscale:[6:20]\nseed:种子" +
|
||||||
|
"参数与参数内容用:连接,每个参数之间用回车或者&分割",
|
||||||
PrivateDataFolder: "aipaint",
|
PrivateDataFolder: "aipaint",
|
||||||
})
|
})
|
||||||
datapath = file.BOTPATH + "/" + engine.DataFolder()
|
datapath = file.BOTPATH + "/" + engine.DataFolder()
|
||||||
@ -134,6 +138,56 @@ func init() { // 插件主体
|
|||||||
}
|
}
|
||||||
sendAiImg(ctx, data)
|
sendAiImg(ctx, data)
|
||||||
})
|
})
|
||||||
|
engine.OnPrefixGroup([]string{`ai高级绘图`, `高级生成色图`, `高级生成涩图`, `ai高级画图`}).SetBlock(true).
|
||||||
|
Handle(func(ctx *zero.Ctx) {
|
||||||
|
server, token, err := cfg.load()
|
||||||
|
if err != nil {
|
||||||
|
ctx.SendChain(message.Text("ERROR: ", err))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
tags := make(map[string]string)
|
||||||
|
args := strings.Split(ctx.State["args"].(string), "\n")
|
||||||
|
if len(args) < 1 {
|
||||||
|
ctx.SendChain(message.Text("ERROR: 请输入正确的参数"))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
for _, info := range args {
|
||||||
|
value := strings.Split(info, ":")
|
||||||
|
if len(value) > 1 {
|
||||||
|
if value[0] == "R18" && value[1] == "1" {
|
||||||
|
value[1] = "0"
|
||||||
|
ctx.SendChain(message.Text("不准涩涩!已将R18设置为0。"))
|
||||||
|
}
|
||||||
|
tags[value[0]] = strings.Join(value[1:], ":")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ctx.SendChain(message.Text("少女祈祷中..."))
|
||||||
|
apiurl := "/got_image?token=" + token
|
||||||
|
if _, ok := tags["tags"]; ok {
|
||||||
|
apiurl += "&tags=" + url.QueryEscape(strings.ReplaceAll(strings.TrimSpace(tags["tags"]), " ", "%20"))
|
||||||
|
}
|
||||||
|
if _, ok := tags["ntags"]; ok {
|
||||||
|
apiurl += "&ntags=" + url.QueryEscape(strings.ReplaceAll(strings.TrimSpace(tags["ntags"]), " ", "%20"))
|
||||||
|
}
|
||||||
|
if _, ok := tags["R18"]; ok {
|
||||||
|
apiurl += "&R18=" + url.QueryEscape(strings.TrimSpace(tags["R18"]))
|
||||||
|
}
|
||||||
|
if _, ok := tags["shape"]; ok {
|
||||||
|
apiurl += "&shape=" + url.QueryEscape(strings.TrimSpace(tags["shape"]))
|
||||||
|
}
|
||||||
|
if _, ok := tags["scale"]; ok {
|
||||||
|
apiurl += "&scale=" + url.QueryEscape(strings.TrimSpace(tags["scale"]))
|
||||||
|
}
|
||||||
|
if _, ok := tags["seed"]; ok {
|
||||||
|
apiurl += "&seed=" + url.QueryEscape(strings.TrimSpace(tags["seed"]))
|
||||||
|
}
|
||||||
|
data, err := web.GetData(server + apiurl)
|
||||||
|
if err != nil {
|
||||||
|
ctx.SendChain(message.Text("ERROR: ", err))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
sendAiImg(ctx, data)
|
||||||
|
})
|
||||||
engine.OnRegex(`^设置ai绘图配置\s(.*[^\s$])\s(.+)$`, zero.SuperUserPermission).SetBlock(true).
|
engine.OnRegex(`^设置ai绘图配置\s(.*[^\s$])\s(.+)$`, zero.SuperUserPermission).SetBlock(true).
|
||||||
Handle(func(ctx *zero.Ctx) {
|
Handle(func(ctx *zero.Ctx) {
|
||||||
regexMatched := ctx.State["regex_matched"].([]string)
|
regexMatched := ctx.State["regex_matched"].([]string)
|
||||||
@ -158,6 +212,11 @@ func sendAiImg(ctx *zero.Ctx, data []byte) {
|
|||||||
ctx.SendChain(message.Text("ERROR: ", err))
|
ctx.SendChain(message.Text("ERROR: ", err))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
r.Uc, err = url.QueryUnescape(r.Uc)
|
||||||
|
if err != nil {
|
||||||
|
ctx.SendChain(message.Text("ERROR: ", err))
|
||||||
|
return
|
||||||
|
}
|
||||||
}
|
}
|
||||||
encodeStr := base64.StdEncoding.EncodeToString(data)
|
encodeStr := base64.StdEncoding.EncodeToString(data)
|
||||||
m := message.Message{ctxext.FakeSenderForwardNode(ctx, message.Image("base64://"+encodeStr))}
|
m := message.Message{ctxext.FakeSenderForwardNode(ctx, message.Image("base64://"+encodeStr))}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user