This commit is contained in:
2023-02-18 20:31:22 +08:00
parent 12c62c5af9
commit d5bae2d772

View File

@@ -14,7 +14,7 @@ export default defineEventHandler(async event => {
tasks = tasks.filter((task: any) => task.model === tasks[0].model) // 筛选出首位model的任务 tasks = tasks.filter((task: any) => task.model === tasks[0].model) // 筛选出首位model的任务
tasks.forEach(async (task: any) => { tasks.forEach(async (task: any) => {
task.status = 'processing' task.status = 'processing'
await useStorage().setItem(`task:${task.tid}`, task) await useStorage().setItem(`task:${task.id}`, task)
}) })
} }
return tasks return tasks
@@ -28,41 +28,41 @@ export default defineEventHandler(async event => {
// 修改任务状态 // 修改任务状态
tasks.forEach(async (task: any) => { tasks.forEach(async (task: any) => {
task.status = 'finished' task.status = 'finished'
await useStorage().setItem(`task:${task.tid}`, task) await useStorage().setItem(`task:${task.id}`, task)
}) })
return tasks return tasks
} }
// 添加任务到队列(生成一个32位随机字符串作为任务ID) // 添加任务到队列(生成一个32位随机字符串作为任务ID)
if (event.node.req.method === 'POST') { if (event.node.req.method === 'POST') {
const body = await readBody(event) // 读取body数据到 const task = await readBody(event) // 读取body数据到
body.tid = Math.random().toString(36).substring(2, 34) // 生成随机任务ID task.id = Math.random().toString(36).substring(2, 34) // 生成随机任务ID
body.uid = 1234567890 // 用户ID task.uid = 1234567890 // 用户ID
body.createdAt = new Date().getTime() // 设定创建时间 task.createdAt = new Date().getTime() // 设定创建时间
// 验证需要输入的参数 // 验证需要输入的参数
body.model = 'SD2' // 模型 task.model = 'SD2' // 模型
body.ckpt = '768-v-ema' // 风格 task.ckpt = '768-v-ema' // 风格
body.prompt = '猫猫' // 提示词 task.prompt = '猫猫' // 提示词
body.remove = '狗狗' // 排除词 task.remove = '狗狗' // 排除词
body.number = 1 // 生成数量 task.number = 1 // 生成数量
body.w = 512 // 图片宽度 task.w = 512 // 图片宽度
body.h = 512 // 图片高度 task.h = 512 // 图片高度
body.seed = 0 // 随机种子 task.seed = 0 // 随机种子
body.sampler = 'pndm' // 扩散采样器 task.sampler = 'pndm' // 扩散采样器
body.prompt_guidance = 0.5 // 提示词权重 task.prompt_guidance = 0.5 // 提示词权重
body.quality_details = 25 // 质量和细节(步数) task.quality_details = 25 // 质量和细节(步数)
// 输出参数 // 输出参数
body.status = 'waiting' // 任务状态 task.status = 'waiting' // 任务状态
body.progress = 0.00 // 任务进度 task.progress = 0.00 // 任务进度
body.image = '' // 图片数据 task.image = '' // 图片数据
body.data = null // 生成结果 task.data = null // 生成结果
console.log('task:', body) console.log('task:', task)
await useStorage().setItem(`task:${body.tid}`, body) // 保存任务到内存 await useStorage().setItem(`task:${task.id}`, task) // 保存任务到内存
// 筛选出所有的任务(并打印) // 筛选出所有的任务(并打印)
let tasks = await useStorage().getKeys().then((keys: any[]) => keys.filter(key => key.startsWith('task:'))) let tasks = await useStorage().getKeys().then((keys: any[]) => keys.filter(key => key.startsWith('task:')))
console.log('tasks:', tasks) console.log('tasks:', tasks)
// 如果无需排队,直接返回结果, 否则返回任务排队状态(预估等待时间) // 如果无需排队,直接返回结果, 否则返回任务排队状态(预估等待时间)
return body return task
} }
}) })