从服务端异步翻译
This commit is contained in:
@@ -15,24 +15,15 @@ export default defineNuxtConfig({
|
||||
},
|
||||
nitro: {
|
||||
devProxy: {
|
||||
'/api': {
|
||||
target: 'http://106.15.192.42:3000/api'
|
||||
'/api/img': {
|
||||
target: 'http://106.15.192.42:3000/api/img'
|
||||
},
|
||||
'/api/drawing': {
|
||||
target: 'http://106.15.192.42:3000/api/drawing'
|
||||
},
|
||||
'/api/text': {
|
||||
target: 'http://139.224.128.24:7861//api/text_to_text'
|
||||
},
|
||||
},
|
||||
}
|
||||
},
|
||||
},
|
||||
//devServer: {
|
||||
// host: '106.15.192.42',
|
||||
// port: 3000,
|
||||
// url: 'http://106.15.192.42:3000'
|
||||
//},
|
||||
//vite: {
|
||||
// server: {
|
||||
// proxy: {
|
||||
// '/api': {
|
||||
// target: 'http://106.15.192.42:3000',
|
||||
// changeOrigin: true
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
})
|
||||
|
63
package-lock.json
generated
63
package-lock.json
generated
@@ -1,6 +1,8 @@
|
||||
{
|
||||
"requires": true,
|
||||
"name": "drawing",
|
||||
"version": "1.0.0",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
"@ampproject/remapping": {
|
||||
"version": "2.2.0",
|
||||
@@ -1356,6 +1358,11 @@
|
||||
"integrity": "sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==",
|
||||
"dev": true
|
||||
},
|
||||
"asynckit": {
|
||||
"version": "0.4.0",
|
||||
"resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz",
|
||||
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
|
||||
},
|
||||
"autoprefixer": {
|
||||
"version": "10.4.13",
|
||||
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz",
|
||||
@@ -1370,6 +1377,16 @@
|
||||
"postcss-value-parser": "^4.2.0"
|
||||
}
|
||||
},
|
||||
"axios": {
|
||||
"version": "1.3.4",
|
||||
"resolved": "https://registry.npmmirror.com/axios/-/axios-1.3.4.tgz",
|
||||
"integrity": "sha512-toYm+Bsyl6VC5wSkfkbbNB6ROv7KY93PEBBL6xyDczaIHasAiv4wPqQ/c4RjoQzipxRD2W5g21cOqQulZ7rHwQ==",
|
||||
"requires": {
|
||||
"follow-redirects": "^1.15.0",
|
||||
"form-data": "^4.0.0",
|
||||
"proxy-from-env": "^1.1.0"
|
||||
}
|
||||
},
|
||||
"babel-walk": {
|
||||
"version": "3.0.0-canary-5",
|
||||
"resolved": "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz",
|
||||
@@ -1905,6 +1922,14 @@
|
||||
"integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==",
|
||||
"dev": true
|
||||
},
|
||||
"combined-stream": {
|
||||
"version": "1.0.8",
|
||||
"resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz",
|
||||
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
|
||||
"requires": {
|
||||
"delayed-stream": "~1.0.0"
|
||||
}
|
||||
},
|
||||
"commander": {
|
||||
"version": "7.2.0",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
|
||||
@@ -2230,6 +2255,11 @@
|
||||
"integrity": "sha512-aA964RUCsBt0FGoNIlA3uFgo2hO+WWC0fiC6DBps/0SFzkKcYoM/3CzVLIa5xSsrFjdioMdYgAIbwo80qp2MoA==",
|
||||
"dev": true
|
||||
},
|
||||
"delayed-stream": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz",
|
||||
"integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
|
||||
},
|
||||
"delegates": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
|
||||
@@ -2795,8 +2825,17 @@
|
||||
"follow-redirects": {
|
||||
"version": "1.15.2",
|
||||
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
|
||||
"integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==",
|
||||
"dev": true
|
||||
"integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA=="
|
||||
},
|
||||
"form-data": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz",
|
||||
"integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
|
||||
"requires": {
|
||||
"asynckit": "^0.4.0",
|
||||
"combined-stream": "^1.0.8",
|
||||
"mime-types": "^2.1.12"
|
||||
}
|
||||
},
|
||||
"formdata-polyfill": {
|
||||
"version": "4.0.10",
|
||||
@@ -3869,6 +3908,19 @@
|
||||
"integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==",
|
||||
"dev": true
|
||||
},
|
||||
"mime-db": {
|
||||
"version": "1.52.0",
|
||||
"resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",
|
||||
"integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
|
||||
},
|
||||
"mime-types": {
|
||||
"version": "2.1.35",
|
||||
"resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz",
|
||||
"integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
|
||||
"requires": {
|
||||
"mime-db": "1.52.0"
|
||||
}
|
||||
},
|
||||
"mimic-fn": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
|
||||
@@ -4835,6 +4887,11 @@
|
||||
"integrity": "sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q==",
|
||||
"dev": true
|
||||
},
|
||||
"proxy-from-env": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
|
||||
"integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
|
||||
},
|
||||
"prr": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
|
||||
|
@@ -22,5 +22,8 @@
|
||||
"url": "gitea@git.satori.love:gameui/drawing.git"
|
||||
},
|
||||
"author": "satori.love",
|
||||
"license": "MIT"
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"axios": "^1.3.4"
|
||||
}
|
||||
}
|
||||
|
@@ -216,7 +216,7 @@ const imageCreate = ref({
|
||||
const new_task = ref({
|
||||
model: 'SD2', // 模型
|
||||
ckpt: '768-v-ema', // 风格参数
|
||||
prompt: 'A tabby cat, with a fluffy tail, basking in the sun, bright, warm, very cute!', // 渲染提示词
|
||||
prompt: '一只猫, 汤姆', // 渲染提示词
|
||||
exclude: 'puppets, death, decay, mess', // 排除词汇
|
||||
number: 1, // 生成图片数量
|
||||
width: 512, // 图片宽度
|
||||
@@ -282,10 +282,32 @@ const ModelsSelect = (index, model) => {
|
||||
imageCreate.value.models_show = false
|
||||
}
|
||||
|
||||
//// 判断是否为中文
|
||||
//const isChinese = (str) => {
|
||||
// var reg = /[\u4E00-\u9FA5\uF900-\uFA2D]/;
|
||||
// return reg.test(str);
|
||||
//}
|
||||
//
|
||||
//// 判断是否为英文
|
||||
//const isEnglish = (str) => {
|
||||
// var reg = /^[a-zA-Z]+$/;
|
||||
// return reg.test(str);
|
||||
//}
|
||||
//
|
||||
//// 翻译中文为英文
|
||||
//const translate = async (str) => {
|
||||
// let res = await fetch('/api/text?zh='+encodeURIComponent(str))
|
||||
// let data = await res.json()
|
||||
// return data.en
|
||||
//}
|
||||
|
||||
// 提交新任务
|
||||
const TaskSubmit = () => {
|
||||
let data = new_task.value
|
||||
data.exclude = imageCreate.value.exclude_on ? '' : data.exclude // 是否启用排除词汇
|
||||
const TaskSubmit = async () => {
|
||||
const data = Object.assign({}, new_task.value) // 复制一份来修改
|
||||
//data.prompt = isChinese(data.prompt) ? await translate(data.prompt) : data.prompt // 翻译中文为英文
|
||||
data.exclude = imageCreate.value.exclude_on ? data.exclude : '' // 是否启用排除词汇
|
||||
console.log(data)
|
||||
|
||||
fetch('/api/drawing', {
|
||||
method: 'POST',
|
||||
headers: {'Content-Type': 'application/json'},
|
||||
@@ -299,7 +321,6 @@ const TaskSubmit = () => {
|
||||
console.log(data.id, data.status, data.progress)
|
||||
tasks.value = tasks.value.map(x => x.id == data.id ? data : x)
|
||||
if (data.status == 'done') {
|
||||
//data.data = ['https://storage.googleapis.com/pai-marketing/filters/elizaport_style.png']
|
||||
window.clearInterval(t2)
|
||||
}
|
||||
})
|
||||
|
@@ -1,3 +1,4 @@
|
||||
import axios from 'axios'
|
||||
export default defineEventHandler(async event => {
|
||||
|
||||
// 获取任务列表的状态进度(普通用户只能看到自己的)
|
||||
@@ -20,9 +21,18 @@ export default defineEventHandler(async event => {
|
||||
return tasks
|
||||
}
|
||||
|
||||
// 翻译中文到英文
|
||||
const translate = async (text: string, callback:Function) => {
|
||||
if (!/^[a-zA-Z]+$/.test(text)) return
|
||||
text = encodeURIComponent(text)
|
||||
const {data} = await axios.get(`http://139.224.128.24:7861//api/text_to_text?zh=${text}`)
|
||||
if (callback) callback(data.en)
|
||||
return data.en
|
||||
}
|
||||
|
||||
// 添加任务到队列(生成一个32位随机字符串作为任务ID)
|
||||
if (event.node.req.method === 'POST') {
|
||||
const {
|
||||
let {
|
||||
model = 'SD2', // 模型
|
||||
ckpt = '768-v-ema', // 风格
|
||||
image = '', // 图片数据(img2img)
|
||||
@@ -39,14 +49,19 @@ export default defineEventHandler(async event => {
|
||||
const id = Math.random().toString(36).substring(2, 34) // 生成随机任务ID
|
||||
const uid = 1234567890 // 用户ID
|
||||
const createdAt = new Date().getTime() // 设定创建时间
|
||||
const status = 'waiting' // 任务状态
|
||||
const status = 'translate' // 任务状态(翻译)
|
||||
const progress = 0.00 // 任务进度
|
||||
const data:any[] = [] // 生成结果
|
||||
const task = { model, ckpt, image, prompt, remove, number, width, height, seed, sampler, prompt_guidance, quality_details, id, uid, createdAt, status, progress, data }
|
||||
console.log('task:', task)
|
||||
await useStorage().setItem(`task:${task.id}`, task) // 保存任务到内存
|
||||
const tasks = await useStorage().getKeys().then((keys: any[]) => keys.filter(key => key.startsWith('task:')))
|
||||
console.log('tasks:', tasks)
|
||||
translate(prompt, (en: string) => {
|
||||
task.prompt = en
|
||||
task.status = 'waiting' // 任务状态(排队)
|
||||
useStorage().setItem(`task:${task.id}`, task) // 修改任务状态
|
||||
})
|
||||
//const tasks = await useStorage().getKeys().then((keys: any[]) => keys.filter(key => key.startsWith('task:')))
|
||||
//console.log('tasks:', tasks)
|
||||
return task
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user