From 226d75d2779c852d3716a8400af738fd82d05926 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A1=9C=E8=8F=AF?= Date: Sat, 18 Feb 2023 03:03:29 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=82=E6=95=B0=E8=A1=A5=E5=85=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/api/drawing.ts | 35 +++++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/server/api/drawing.ts b/server/api/drawing.ts index 00b980b..d5b6b0d 100644 --- a/server/api/drawing.ts +++ b/server/api/drawing.ts @@ -22,9 +22,9 @@ export default defineEventHandler(async event => { // 修改任务状态(仅限bot访问) if (event.node.req.method === 'PATCH') { - let { ids } = await readBody(event) + const { ids } = await readBody(event) // 取出ids对应的任务 - let tasks = await Promise.all(ids.map(async (id: any) => await useStorage().getItem(`task:${id}`))) + const tasks = await Promise.all(ids.map(async (id: any) => await useStorage().getItem(`task:${id}`))) // 修改任务状态 tasks.forEach(async (task: any) => { task.status = 'finished' @@ -35,17 +35,32 @@ export default defineEventHandler(async event => { // 添加任务到队列(生成一个32位随机字符串作为任务ID) if (event.node.req.method === 'POST') { - event.context.body = await readBody(event) // 读取body数据到 - event.context.body.tid = Math.random().toString(36).substring(2, 34) - event.context.body.uid = 1234567890 // 默认用户ID - event.context.body.status = 'waiting' // 默认当前状态 - event.context.body.createdAt = new Date().getTime() // 设定创建时间 - await useStorage().setItem(`task:${event.context.body.tid}`, event.context.body) + const body = await readBody(event) // 读取body数据到 + body.tid = Math.random().toString(36).substring(2, 34) // 生成随机任务ID + body.uid = 1234567890 // 用户ID + body.status = 'waiting' // 任务状态 + body.createdAt = new Date().getTime() // 设定创建时间 + // 验证需要输入的参数 + body.model = 'SD2' // 模型 + body.ckpt = 'latest' // 风格 + body.prompt = '猫猫' // 提示词 + body.remove = '狗狗' // 排除词 + body.number = 1 // 生成数量 + body.w = 512 // 图片宽度 + body.h = 512 // 图片高度 + body.seed = 0 // 随机种子 + body.sampler = 'pndm' // 扩散采样器 + body.prompt_guidance = 0.5 // 提示词权重 + body.quality_details = 25 // 质量和细节(步数) + body.image = '' // 图片数据 + body.data = null // 生成结果 + console.log('task:', body) + await useStorage().setItem(`task:${body.tid}`, body) // 保存任务到内存 // 筛选出所有的任务(并打印) let tasks = await useStorage().getKeys().then((keys: any[]) => keys.filter(key => key.startsWith('task:'))) - console.log(tasks) + console.log('tasks:', tasks) // 如果无需排队,直接返回结果, 否则返回任务排队状态(预估等待时间) - return event.context.body + return body } })