LaiTool V 3.1.4
This commit is contained in:
parent
595cbe8374
commit
92c1d99efd
4
package-lock.json
generated
4
package-lock.json
generated
@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "laitool",
|
"name": "laitool",
|
||||||
"version": "3.1.3",
|
"version": "3.1.4",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "laitool",
|
"name": "laitool",
|
||||||
"version": "3.1.3",
|
"version": "3.1.4",
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@alicloud/alimt20181012": "^1.2.0",
|
"@alicloud/alimt20181012": "^1.2.0",
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "laitool",
|
"name": "laitool",
|
||||||
"version": "3.1.3",
|
"version": "3.1.4",
|
||||||
"description": "An AI tool for image processing, video processing, and other functions.",
|
"description": "An AI tool for image processing, video processing, and other functions.",
|
||||||
"main": "./out/main/index.js",
|
"main": "./out/main/index.js",
|
||||||
"author": "laitool.cn",
|
"author": "laitool.cn",
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@ -67,7 +67,7 @@ export class BookTaskDetailService extends BaseRealmService {
|
|||||||
videoPath: JoinPath(define.project_path, item.videoPath),
|
videoPath: JoinPath(define.project_path, item.videoPath),
|
||||||
audioPath: JoinPath(define.project_path, item.audioPath),
|
audioPath: JoinPath(define.project_path, item.audioPath),
|
||||||
oldImage: JoinPath(define.project_path, item.oldImage),
|
oldImage: JoinPath(define.project_path, item.oldImage),
|
||||||
outImagePath: JoinPath(define.project_path, item.outImagePath) ,
|
outImagePath: JoinPath(define.project_path, item.outImagePath),
|
||||||
subImagePath: (item.subImagePath as string[])?.map((subImage) => {
|
subImagePath: (item.subImagePath as string[])?.map((subImage) => {
|
||||||
return JoinPath(define.project_path, subImage)
|
return JoinPath(define.project_path, subImage)
|
||||||
}),
|
}),
|
||||||
|
|||||||
@ -317,16 +317,45 @@ export const DEFINE_STRING = {
|
|||||||
|
|
||||||
FRAMING: 'FRAMING',
|
FRAMING: 'FRAMING',
|
||||||
|
|
||||||
|
//#region 字幕相关
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取copywriting
|
||||||
|
*/
|
||||||
GET_COPYWRITING: 'GET_COPYWRITING',
|
GET_COPYWRITING: 'GET_COPYWRITING',
|
||||||
|
/**
|
||||||
|
* 获取copywriting的返回信息
|
||||||
|
*/
|
||||||
GET_COPYWRITING_RETURN: 'GET_COPYWRITING_RETURN',
|
GET_COPYWRITING_RETURN: 'GET_COPYWRITING_RETURN',
|
||||||
|
|
||||||
|
//#endregion
|
||||||
|
|
||||||
REMOVE_WATERMARK: 'REMOVE_WATERMARK',
|
REMOVE_WATERMARK: 'REMOVE_WATERMARK',
|
||||||
REMOVE_WATERMARK_RETURN: 'REMOVE_WATERMARK_RETURN',
|
REMOVE_WATERMARK_RETURN: 'REMOVE_WATERMARK_RETURN',
|
||||||
|
|
||||||
SPLI_TAUDIO: 'SPLI_TAUDIO',
|
SPLI_TAUDIO: 'SPLI_TAUDIO',
|
||||||
SPLI_TAUDIO_RETURN: 'SPLI_TAUDIO_RETURN',
|
SPLI_TAUDIO_RETURN: 'SPLI_TAUDIO_RETURN',
|
||||||
|
|
||||||
|
//#region 反推相关
|
||||||
|
/**
|
||||||
|
* 添加反推任务
|
||||||
|
*/
|
||||||
ADD_REVERSE_PROMPT: 'ADD_REVERSE_PROMPT',
|
ADD_REVERSE_PROMPT: 'ADD_REVERSE_PROMPT',
|
||||||
|
/**
|
||||||
|
* 反推任务返回信息
|
||||||
|
*/
|
||||||
|
REVERSE_PROMPT_RETURN: 'REVERSE_PROMPT_RETURN',
|
||||||
|
//#endregion
|
||||||
|
|
||||||
|
//#region 翻译相关
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 反推翻译返回信息
|
||||||
|
*/
|
||||||
|
REVERSE_PROMPT_TRANSLATE_RETURN: 'REVERSE_PROMPT_TRANSLATE_RETURN',
|
||||||
|
|
||||||
|
//#endregion
|
||||||
|
|
||||||
},
|
},
|
||||||
SYSTEM: {
|
SYSTEM: {
|
||||||
OPEN_FILE: 'OPEN_FILE',
|
OPEN_FILE: 'OPEN_FILE',
|
||||||
|
|||||||
@ -19,6 +19,7 @@ import { MJOpt } from '../MJ/mj'
|
|||||||
import { TagDefine } from '../../../define/tagDefine'
|
import { TagDefine } from '../../../define/tagDefine'
|
||||||
import { BookServiceBasic } from '../ServiceBasic/bookServiceBasic'
|
import { BookServiceBasic } from '../ServiceBasic/bookServiceBasic'
|
||||||
import { SDOpt } from '../SD/sd'
|
import { SDOpt } from '../SD/sd'
|
||||||
|
import { isEmpty } from 'lodash'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -126,6 +127,16 @@ export class ReverseBook {
|
|||||||
async GetBookTaskDetail(bookTaskId: string): Promise<GeneralResponse.ErrorItem | GeneralResponse.SuccessItem> {
|
async GetBookTaskDetail(bookTaskId: string): Promise<GeneralResponse.ErrorItem | GeneralResponse.SuccessItem> {
|
||||||
try {
|
try {
|
||||||
let res = await this.bookServiceBasic.GetBookTaskDetailData({ bookTaskId: bookTaskId })
|
let res = await this.bookServiceBasic.GetBookTaskDetailData({ bookTaskId: bookTaskId })
|
||||||
|
|
||||||
|
// 这边再所有的图片后面添加后缀,这样可以保证图片实时更新
|
||||||
|
res = res.map(item => {
|
||||||
|
return {
|
||||||
|
...item,
|
||||||
|
outImagePath: isEmpty(item.outImagePath) ? item.outImagePath : item.outImagePath + '?t=' + new Date().getTime(),
|
||||||
|
subImagePath: item.subImagePath && item.subImagePath.length > 0 ? item.subImagePath.map(it => it + '?t=' + new Date().getTime()) : item.subImagePath
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
return successMessage(res, '获取小说任务详情成功', 'ReverseBook_GetBookTaskDetail')
|
return successMessage(res, '获取小说任务详情成功', 'ReverseBook_GetBookTaskDetail')
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
return errorMessage(
|
return errorMessage(
|
||||||
@ -287,7 +298,7 @@ export class ReverseBook {
|
|||||||
throw new Error("暂不支持的推理类型")
|
throw new Error("暂不支持的推理类型")
|
||||||
}
|
}
|
||||||
// 添加后台任务
|
// 添加后台任务
|
||||||
await this.bookServiceBasic.AddBookBackTask(book.id, task_type, TaskExecuteType.AUTO, bookTaskDetail.bookTaskId, bookTaskDetail.id
|
await this.bookServiceBasic.AddBookBackTask(book.id, task_type, TaskExecuteType.AUTO, bookTaskDetail.bookTaskId, bookTaskDetail.id, DEFINE_STRING.BOOK.REVERSE_PROMPT_RETURN
|
||||||
);
|
);
|
||||||
// 添加返回日志
|
// 添加返回日志
|
||||||
await this.taskScheduler.AddLogToDB(book.id, book.type, `添加 ${task_type} 反推任务成功`, bookTaskDetail.bookTaskId, LoggerStatus.SUCCESS)
|
await this.taskScheduler.AddLogToDB(book.id, book.type, `添加 ${task_type} 反推任务成功`, bookTaskDetail.bookTaskId, LoggerStatus.SUCCESS)
|
||||||
|
|||||||
@ -32,12 +32,14 @@ export class BookGeneral {
|
|||||||
let afterGpt = element.afterGpt
|
let afterGpt = element.afterGpt
|
||||||
let subValue = element.subValue
|
let subValue = element.subValue
|
||||||
if (subValue && subValue.length > 0) {
|
if (subValue && subValue.length > 0) {
|
||||||
|
if (Array.isArray(subValue)) {
|
||||||
subValue = subValue.map(item => {
|
subValue = subValue.map(item => {
|
||||||
return {
|
return {
|
||||||
...item,
|
...item,
|
||||||
srt_value: item.srt_value.replaceAll(replaceData.before, replaceData.after)
|
srt_value: item.srt_value.replaceAll(replaceData.before, replaceData.after)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
}
|
||||||
let btd = realm.objectForPrimaryKey('BookTaskDetail', element.id)
|
let btd = realm.objectForPrimaryKey('BookTaskDetail', element.id)
|
||||||
btd.subValue = JSON.stringify(subValue);
|
btd.subValue = JSON.stringify(subValue);
|
||||||
result.push({
|
result.push({
|
||||||
@ -184,6 +186,9 @@ export class BookGeneral {
|
|||||||
async ReplaceBookData(bookTaskId: string, replaceData: Book.BookReplaceData): Promise<GeneralResponse.SuccessItem | GeneralResponse.ErrorItem> {
|
async ReplaceBookData(bookTaskId: string, replaceData: Book.BookReplaceData): Promise<GeneralResponse.SuccessItem | GeneralResponse.ErrorItem> {
|
||||||
try {
|
try {
|
||||||
console.log(bookTaskId, replaceData)
|
console.log(bookTaskId, replaceData)
|
||||||
|
if (isEmpty(replaceData.after)) {
|
||||||
|
replaceData.after = '' // 默认为空
|
||||||
|
}
|
||||||
let bookTask = await this.bookServiceBasic.GetBookTaskDataById(bookTaskId)
|
let bookTask = await this.bookServiceBasic.GetBookTaskDataById(bookTaskId)
|
||||||
let bookTaskDetails = await this.bookServiceBasic.GetBookTaskDetailData({
|
let bookTaskDetails = await this.bookServiceBasic.GetBookTaskDetailData({
|
||||||
bookTaskId: bookTaskId
|
bookTaskId: bookTaskId
|
||||||
|
|||||||
@ -255,7 +255,7 @@ export class BookImage {
|
|||||||
case BookImageCategory.SD:
|
case BookImageCategory.SD:
|
||||||
throw new Error('暂时不支持SD的生成')
|
throw new Error('暂时不支持SD的生成')
|
||||||
case BookImageCategory.MJ:
|
case BookImageCategory.MJ:
|
||||||
res = await this.mjOpt.AddMJGenerateImageTask(bookTaskId, OperateBookType.BOOKTASK)
|
res = await this.mjOpt.AddMJGenerateImageTask(bookTaskId, OperateBookType.BOOKTASK, DEFINE_STRING.BOOK.MJ_IMAGE_GENERATE_RETURN)
|
||||||
break;
|
break;
|
||||||
case BookImageCategory.D3:
|
case BookImageCategory.D3:
|
||||||
throw new Error('暂时不支持D3的生成')
|
throw new Error('暂时不支持D3的生成')
|
||||||
|
|||||||
@ -278,9 +278,9 @@ export class BookTask {
|
|||||||
throw new Error("没有找到对应的数小说任务,请检查数据")
|
throw new Error("没有找到对应的数小说任务,请检查数据")
|
||||||
}
|
}
|
||||||
// 获取所有的出图中最少的
|
// 获取所有的出图中最少的
|
||||||
let bookTaskDetail = (await this.bookServiceBasic.GetBookTaskDetailData({
|
let bookTaskDetail = await this.bookServiceBasic.GetBookTaskDetailData({
|
||||||
bookTaskId: bookTaskId
|
bookTaskId: bookTaskId
|
||||||
})) as Book.SelectBookTaskDetail[]
|
}) as Book.SelectBookTaskDetail[]
|
||||||
if (bookTaskDetail == null || bookTaskDetail.length <= 0) {
|
if (bookTaskDetail == null || bookTaskDetail.length <= 0) {
|
||||||
throw new Error("没有对应的小说分镜任务,请先添加分镜任务")
|
throw new Error("没有对应的小说分镜任务,请先添加分镜任务")
|
||||||
}
|
}
|
||||||
|
|||||||
@ -277,6 +277,7 @@ export class BookServiceBasic {
|
|||||||
* @param executeType 执行的类型,是不是自动执行
|
* @param executeType 执行的类型,是不是自动执行
|
||||||
* @param bookTaskId 小说批次任务ID
|
* @param bookTaskId 小说批次任务ID
|
||||||
* @param bookTaskDetailId 小说批次任务分镜ID
|
* @param bookTaskDetailId 小说批次任务分镜ID
|
||||||
|
* @param responseMessageName 消息名称
|
||||||
*/
|
*/
|
||||||
async AddBookBackTask(bookId: string,
|
async AddBookBackTask(bookId: string,
|
||||||
taskType: BookBackTaskType,
|
taskType: BookBackTaskType,
|
||||||
|
|||||||
@ -23,6 +23,7 @@ import axios from 'axios'
|
|||||||
import { GptService } from '../GPT/gpt'
|
import { GptService } from '../GPT/gpt'
|
||||||
import FormData from 'form-data'
|
import FormData from 'form-data'
|
||||||
import { RetryWithBackoff } from '../../../define/Tools/common'
|
import { RetryWithBackoff } from '../../../define/Tools/common'
|
||||||
|
import { DEFINE_STRING } from '../../../define/define_string'
|
||||||
const util = require('util')
|
const util = require('util')
|
||||||
const { exec } = require('child_process')
|
const { exec } = require('child_process')
|
||||||
const execAsync = util.promisify(exec)
|
const execAsync = util.promisify(exec)
|
||||||
@ -119,7 +120,7 @@ export class Subtitle {
|
|||||||
content: content,
|
content: content,
|
||||||
progress: progress
|
progress: progress
|
||||||
} as GeneralResponse.SubtitleProgressResponse // 返回识别到的文案
|
} as GeneralResponse.SubtitleProgressResponse // 返回识别到的文案
|
||||||
})
|
}, DEFINE_STRING.BOOK.GET_COPYWRITING_RETURN)
|
||||||
|
|
||||||
// 添加日志
|
// 添加日志
|
||||||
await this.taskScheduler.AddLogToDB(
|
await this.taskScheduler.AddLogToDB(
|
||||||
|
|||||||
@ -29,17 +29,17 @@ export class GptSetting extends ServiceBase {
|
|||||||
async InitAISetting() {
|
async InitAISetting() {
|
||||||
let defaultData = {
|
let defaultData = {
|
||||||
laiapi: {
|
laiapi: {
|
||||||
gpt_url: 'https://laitool.net/v1/chat/completions',
|
gpt_url: 'https://api.laitool.cc',
|
||||||
api_key: "请输入你的LAI API 的 Key",
|
api_key: "请输入你的LAI API 的 Key",
|
||||||
model: "请输入你的LAI API 的 Model名称"
|
model: "请输入你的LAI API 的 Model名称"
|
||||||
},
|
},
|
||||||
kimi: {
|
kimi: {
|
||||||
gpt_url: 'https://api.moonshot.cn/v1/chat/completions',
|
gpt_url: 'https://api.moonshot.cn',
|
||||||
api_key: "请输入你的Kimi API 的 Key",
|
api_key: "请输入你的Kimi API 的 Key",
|
||||||
model: "请输入你的Kimi API 的 Model名称"
|
model: "请输入你的Kimi API 的 Model名称"
|
||||||
},
|
},
|
||||||
doubao: {
|
doubao: {
|
||||||
gpt_url: 'https://ark.cn-beijing.volces.com/api/v3/chat/completions',
|
gpt_url: 'https://ark.cn-beijing.volces.com/api',
|
||||||
api_key: "请输入你的Doubao API 的 Key",
|
api_key: "请输入你的Doubao API 的 Key",
|
||||||
model: "请输入你的Doubao API 的 Model名称"
|
model: "请输入你的Doubao API 的 Model名称"
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
<template #description> {{ softwareStore.spin.tip }} </template>
|
<template #description> {{ softwareStore.spin.tip }} </template>
|
||||||
<n-config-provider
|
<n-config-provider
|
||||||
:hljs="hljs"
|
:hljs="hljs"
|
||||||
:theme="softwareStore.softWare.theme == 'dark' ? darkTheme : null"
|
:theme="softwareStore.globalSetting.theme == 'dark' ? darkTheme : null"
|
||||||
>
|
>
|
||||||
<n-message-provider>
|
<n-message-provider>
|
||||||
<n-dialog-provider>
|
<n-dialog-provider>
|
||||||
@ -44,6 +44,7 @@ export default defineComponent({
|
|||||||
let softwareStore = useSoftwareStore()
|
let softwareStore = useSoftwareStore()
|
||||||
|
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
|
debugger
|
||||||
softwareStore.SoftColor = SoftColor
|
softwareStore.SoftColor = SoftColor
|
||||||
window.api.getSettingDafultData(async (value) => {
|
window.api.getSettingDafultData(async (value) => {
|
||||||
await window.darkMode.toggle(value.theme)
|
await window.darkMode.toggle(value.theme)
|
||||||
@ -60,6 +61,7 @@ export default defineComponent({
|
|||||||
throw new Error('初始化信息错误: 未获取到数据')
|
throw new Error('初始化信息错误: 未获取到数据')
|
||||||
}
|
}
|
||||||
softwareStore.softWare = software.data
|
softwareStore.softWare = software.data
|
||||||
|
console.log(softwareStore.softWare)
|
||||||
await window.darkMode.toggle(softwareStore.softWare.theme)
|
await window.darkMode.toggle(softwareStore.softWare.theme)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@ -164,8 +164,10 @@ watch(
|
|||||||
watch(
|
watch(
|
||||||
() => props.initData.outImagePath,
|
() => props.initData.outImagePath,
|
||||||
(value) => {
|
(value) => {
|
||||||
|
if (value) {
|
||||||
outImagePath.value = value + `?t=${new Date().getTime()}`
|
outImagePath.value = value + `?t=${new Date().getTime()}`
|
||||||
}
|
}
|
||||||
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
// 监听 props.initData 修改
|
// 监听 props.initData 修改
|
||||||
@ -180,7 +182,9 @@ watch(
|
|||||||
|
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
setNodeAttribute()
|
setNodeAttribute()
|
||||||
|
if (!isEmpty(outImagePath.value)) {
|
||||||
outImagePath.value = outImagePath.value + `?t=${new Date().getTime()}`
|
outImagePath.value = outImagePath.value + `?t=${new Date().getTime()}`
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
async function setNodeAttribute() {
|
async function setNodeAttribute() {
|
||||||
@ -246,11 +250,14 @@ async function imageDragOver(e) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function ModifyLock() {
|
async function ModifyLock() {
|
||||||
|
debugger
|
||||||
|
if (!data.value.imageLock) {
|
||||||
// 锁定之前,判断是不是有
|
// 锁定之前,判断是不是有
|
||||||
if (!outImagePath.value) {
|
if (!outImagePath.value) {
|
||||||
message.error('没有生成图片,不能锁定')
|
message.error('没有生成图片,不能锁定')
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
let lock = !data.value.imageLock
|
let lock = !data.value.imageLock
|
||||||
// 修改数据库数据
|
// 修改数据库数据
|
||||||
@ -283,6 +290,10 @@ async function DownloadImage() {
|
|||||||
message.error('当前图片不是MJ图片,不能下载')
|
message.error('当前图片不是MJ图片,不能下载')
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
if (!data.value.mjMessage) {
|
||||||
|
message.error('没有MJ生图信息,不能下载')
|
||||||
|
return
|
||||||
|
}
|
||||||
// 只要状态不是success 和 error ,其他的都重新获取
|
// 只要状态不是success 和 error ,其他的都重新获取
|
||||||
if (data.value.mjMessage.status == 'error') {
|
if (data.value.mjMessage.status == 'error') {
|
||||||
message.error('失败状态不能采集图片')
|
message.error('失败状态不能采集图片')
|
||||||
|
|||||||
@ -36,6 +36,7 @@ import { ContainsChineseOrPunctuation } from '../../../../../define/Tools/common
|
|||||||
import ReSelectReversePrompt from '../MJReverse/ReSelectReversePrompt.vue'
|
import ReSelectReversePrompt from '../MJReverse/ReSelectReversePrompt.vue'
|
||||||
import { OperateBookType } from '../../../../../define/enum/bookEnum'
|
import { OperateBookType } from '../../../../../define/enum/bookEnum'
|
||||||
import { isEmpty } from 'lodash'
|
import { isEmpty } from 'lodash'
|
||||||
|
import { DEFINE_STRING } from '../../../../../define/define_string'
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
components: { NDropdown, NButton },
|
components: { NDropdown, NButton },
|
||||||
@ -127,7 +128,8 @@ export default defineComponent({
|
|||||||
to: to,
|
to: to,
|
||||||
type: TranslateType.GPT_PROMPT_TRANSLATE,
|
type: TranslateType.GPT_PROMPT_TRANSLATE,
|
||||||
isSplit: false, // 该参数设置为true时,会将文本按照标点符号分割成多个句子进行翻译
|
isSplit: false, // 该参数设置为true时,会将文本按照标点符号分割成多个句子进行翻译
|
||||||
bookTaskDetailId: data.value.id
|
bookTaskDetailId: data.value.id,
|
||||||
|
responseMessgeName: DEFINE_STRING.BOOK.REVERSE_PROMPT_TRANSLATE_RETURN
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
let reversePrompt = data.value.reversePrompt
|
let reversePrompt = data.value.reversePrompt
|
||||||
@ -147,7 +149,8 @@ export default defineComponent({
|
|||||||
type: TranslateType.REVERSE_PROMPT_TRANSLATE,
|
type: TranslateType.REVERSE_PROMPT_TRANSLATE,
|
||||||
isSplit: false, // 该参数设置为true时,会将文本按照标点符号分割成多个句子进行翻译
|
isSplit: false, // 该参数设置为true时,会将文本按照标点符号分割成多个句子进行翻译
|
||||||
bookTaskDetailId: data.value.id,
|
bookTaskDetailId: data.value.id,
|
||||||
reversePromptId: item.id
|
reversePromptId: item.id,
|
||||||
|
responseMessgeName: DEFINE_STRING.BOOK.REVERSE_PROMPT_TRANSLATE_RETURN
|
||||||
}
|
}
|
||||||
|
|
||||||
translateData.push(temp_obj)
|
translateData.push(temp_obj)
|
||||||
@ -171,7 +174,8 @@ export default defineComponent({
|
|||||||
to: to,
|
to: to,
|
||||||
type: TranslateType.GPT_PROMPT_TRANSLATE,
|
type: TranslateType.GPT_PROMPT_TRANSLATE,
|
||||||
isSplit: false, // 该参数设置为true时,会将文本按照标点符号分割成多个句子进行翻译
|
isSplit: false, // 该参数设置为true时,会将文本按照标点符号分割成多个句子进行翻译
|
||||||
bookTaskDetailId: element.id
|
bookTaskDetailId: element.id,
|
||||||
|
responseMessgeName: DEFINE_STRING.BOOK.REVERSE_PROMPT_TRANSLATE_RETURN
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
let reversePrompt = element.reversePrompt
|
let reversePrompt = element.reversePrompt
|
||||||
@ -191,7 +195,8 @@ export default defineComponent({
|
|||||||
type: TranslateType.REVERSE_PROMPT_TRANSLATE,
|
type: TranslateType.REVERSE_PROMPT_TRANSLATE,
|
||||||
isSplit: false, // 该参数设置为true时,会将文本按照标点符号分割成多个句子进行翻译
|
isSplit: false, // 该参数设置为true时,会将文本按照标点符号分割成多个句子进行翻译
|
||||||
bookTaskDetailId: element.id,
|
bookTaskDetailId: element.id,
|
||||||
reversePromptId: item.id
|
reversePromptId: item.id,
|
||||||
|
responseMessgeName: DEFINE_STRING.BOOK.REVERSE_PROMPT_TRANSLATE_RETURN
|
||||||
}
|
}
|
||||||
translateData.push(temp_obj)
|
translateData.push(temp_obj)
|
||||||
})
|
})
|
||||||
|
|||||||
@ -54,6 +54,7 @@ import { OperateBookType } from '../../../../../define/enum/bookEnum'
|
|||||||
import { BookImageCategory } from '../../../../../define/enum/bookEnum'
|
import { BookImageCategory } from '../../../../../define/enum/bookEnum'
|
||||||
import { debounce } from 'lodash'
|
import { debounce } from 'lodash'
|
||||||
import InputDialogContent from '../../Original/Components/InputDialogContent.vue'
|
import InputDialogContent from '../../Original/Components/InputDialogContent.vue'
|
||||||
|
import { DEFINE_STRING } from '../../../../../define/define_string'
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
components: { NInput, NButton, NDropdown },
|
components: { NInput, NButton, NDropdown },
|
||||||
@ -104,7 +105,11 @@ export default defineComponent({
|
|||||||
async function SingleGenerateImage() {
|
async function SingleGenerateImage() {
|
||||||
let res = undefined
|
let res = undefined
|
||||||
if (reverseManageStore.selectBookTask.imageCategory == BookImageCategory.MJ) {
|
if (reverseManageStore.selectBookTask.imageCategory == BookImageCategory.MJ) {
|
||||||
res = await window.mj.AddMJGenerateImageTask(data.value.id, OperateBookType.BOOKTASKDETAIL)
|
res = await window.mj.AddMJGenerateImageTask(
|
||||||
|
data.value.id,
|
||||||
|
OperateBookType.BOOKTASKDETAIL,
|
||||||
|
DEFINE_STRING.BOOK.MJ_IMAGE_GENERATE_RETURN
|
||||||
|
)
|
||||||
} else if (reverseManageStore.selectBookTask.imageCategory == BookImageCategory.SD) {
|
} else if (reverseManageStore.selectBookTask.imageCategory == BookImageCategory.SD) {
|
||||||
// res = await window.sd.SingleGenerateImage(data.value.id, OperateBookType.BOOKTASKDETAIL)
|
// res = await window.sd.SingleGenerateImage(data.value.id, OperateBookType.BOOKTASKDETAIL)
|
||||||
message.error('暂不支该出图模式')
|
message.error('暂不支该出图模式')
|
||||||
@ -123,7 +128,11 @@ export default defineComponent({
|
|||||||
async function UnderGenerateImage() {
|
async function UnderGenerateImage() {
|
||||||
let res = undefined
|
let res = undefined
|
||||||
if (reverseManageStore.selectBookTask.imageCategory == BookImageCategory.MJ) {
|
if (reverseManageStore.selectBookTask.imageCategory == BookImageCategory.MJ) {
|
||||||
res = await window.mj.AddMJGenerateImageTask(data.value.id, OperateBookType.UNDERBOOKTASK)
|
res = await window.mj.AddMJGenerateImageTask(
|
||||||
|
data.value.id,
|
||||||
|
OperateBookType.UNDERBOOKTASK,
|
||||||
|
DEFINE_STRING.BOOK.MJ_IMAGE_GENERATE_RETURN
|
||||||
|
)
|
||||||
} else if (reverseManageStore.selectBookTask.imageCategory == BookImageCategory.SD) {
|
} else if (reverseManageStore.selectBookTask.imageCategory == BookImageCategory.SD) {
|
||||||
// res = await window.sd.SingleGenerateImage(data.value.id, OperateBookType.UNDERBOOKTASK)
|
// res = await window.sd.SingleGenerateImage(data.value.id, OperateBookType.UNDERBOOKTASK)
|
||||||
message.error('暂不支该出图模式')
|
message.error('暂不支该出图模式')
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
<div class="artplayer-app" style="height: 100%">
|
<div class="artplayer-app" style="height: 100%">
|
||||||
<Artplayer @get-instance="getInstance" :option="option" :style="palyarStyle" />
|
<Artplayer @get-instance="getInstance" :option="option" :style="palyarStyle" />
|
||||||
<n-log
|
<n-log
|
||||||
style="height: 60%; background-color: #f8f8f8; margin-top: 10px"
|
style="height: 60%; width: 280px; background-color: #f8f8f8; margin-top: 10px"
|
||||||
ref="logInst"
|
ref="logInst"
|
||||||
:log="logger"
|
:log="logger"
|
||||||
:loading="loading"
|
:loading="loading"
|
||||||
|
|||||||
@ -157,35 +157,7 @@ export default defineComponent({
|
|||||||
let reverseManageStore = useReverseManageStore()
|
let reverseManageStore = useReverseManageStore()
|
||||||
let softwareStore = useSoftwareStore()
|
let softwareStore = useSoftwareStore()
|
||||||
// 获取当前这个界面的数据
|
// 获取当前这个界面的数据
|
||||||
onMounted(async () => {
|
onMounted(async () => {})
|
||||||
window.api.setEventListen([DEFINE_STRING.BOOK.GET_COPYWRITING_RETURN], (value) => {
|
|
||||||
debugger
|
|
||||||
if (value.code == 0) {
|
|
||||||
message.error(value.message)
|
|
||||||
code.value = code.value + '\n' + value.data
|
|
||||||
return
|
|
||||||
}
|
|
||||||
// 修改进度
|
|
||||||
softwareStore.spin.tip = `正在提取文案,当前进度 ${value.data.progress.current} / ${value.data.progress.total} 。。。`
|
|
||||||
let index = reverseManageStore.selectBookTaskDetail.findIndex((item) => item.id == value.id)
|
|
||||||
if (index >= 0) {
|
|
||||||
reverseManageStore.selectBookTaskDetail[index].word = value.data.content
|
|
||||||
reverseManageStore.selectBookTaskDetail[index].afterGpt = value.data.content
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
window.api.setEventListen([DEFINE_STRING.BOOK.REMOVE_WATERMARK_RETURN], (value) => {
|
|
||||||
if (value.code == 0) {
|
|
||||||
message.error(value.message)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
let index = reverseManageStore.selectBookTaskDetail.findIndex((item) => item.id == value.id)
|
|
||||||
if (index >= 0) {
|
|
||||||
reverseManageStore.selectBookTaskDetail[index].oldImage =
|
|
||||||
value.data + '?time=' + new Date().getTime()
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
// 返回主页
|
// 返回主页
|
||||||
function RetuenMain() {
|
function RetuenMain() {
|
||||||
@ -696,7 +668,8 @@ export default defineComponent({
|
|||||||
to: to,
|
to: to,
|
||||||
type: TranslateType.GPT_PROMPT_TRANSLATE,
|
type: TranslateType.GPT_PROMPT_TRANSLATE,
|
||||||
isSplit: false, // 该参数设置为true时,会将文本按照标点符号分割成多个句子进行翻译
|
isSplit: false, // 该参数设置为true时,会将文本按照标点符号分割成多个句子进行翻译
|
||||||
bookTaskDetailId: element.id
|
bookTaskDetailId: element.id,
|
||||||
|
responseMessgeName: DEFINE_STRING.BOOK.REVERSE_PROMPT_TRANSLATE_RETURN
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
let reversePrompt = element.reversePrompt
|
let reversePrompt = element.reversePrompt
|
||||||
@ -715,7 +688,8 @@ export default defineComponent({
|
|||||||
type: TranslateType.REVERSE_PROMPT_TRANSLATE,
|
type: TranslateType.REVERSE_PROMPT_TRANSLATE,
|
||||||
isSplit: false, // 该参数设置为true时,会将文本按照标点符号分割成多个句子进行翻译
|
isSplit: false, // 该参数设置为true时,会将文本按照标点符号分割成多个句子进行翻译
|
||||||
bookTaskDetailId: element.id,
|
bookTaskDetailId: element.id,
|
||||||
reversePromptId: item.id
|
reversePromptId: item.id,
|
||||||
|
responseMessgeName: DEFINE_STRING.BOOK.REVERSE_PROMPT_TRANSLATE_RETURN
|
||||||
}
|
}
|
||||||
translateData.push(temp_obj)
|
translateData.push(temp_obj)
|
||||||
})
|
})
|
||||||
|
|||||||
@ -86,7 +86,6 @@ let test = ref('error-class')
|
|||||||
|
|
||||||
// 计算所有的数据的百分比
|
// 计算所有的数据的百分比
|
||||||
function ComputePercentage() {
|
function ComputePercentage() {
|
||||||
debugger
|
|
||||||
if (
|
if (
|
||||||
reverseManageStore &&
|
reverseManageStore &&
|
||||||
reverseManageStore.selectBookTaskDetail &&
|
reverseManageStore.selectBookTaskDetail &&
|
||||||
|
|||||||
@ -25,6 +25,7 @@ import DatatableHeaderPrompt from '../Components/DatatableHeaderPrompt.vue'
|
|||||||
import DatatablePrompt from '../Components/DatatablePrompt.vue'
|
import DatatablePrompt from '../Components/DatatablePrompt.vue'
|
||||||
import DatatableHeaderImage from '../Components/DatatableHeaderImage.vue'
|
import DatatableHeaderImage from '../Components/DatatableHeaderImage.vue'
|
||||||
import DatatableAfterGpt from '../Components/DatatableAfterGpt.vue'
|
import DatatableAfterGpt from '../Components/DatatableAfterGpt.vue'
|
||||||
|
import DatatableGenerateImage from '../Components/DatatableGenerateImage.vue'
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
components: { NDataTable, NImage },
|
components: { NDataTable, NImage },
|
||||||
@ -120,7 +121,7 @@ export default defineComponent({
|
|||||||
width: 300,
|
width: 300,
|
||||||
className: 'space-row',
|
className: 'space-row',
|
||||||
render(row, index) {
|
render(row, index) {
|
||||||
return h(DataTableShowGenerateImage, {
|
return h(DatatableGenerateImage, {
|
||||||
image_generate_category: 'mj',
|
image_generate_category: 'mj',
|
||||||
initData: row,
|
initData: row,
|
||||||
index: index,
|
index: index,
|
||||||
@ -157,7 +158,7 @@ export default defineComponent({
|
|||||||
debugger
|
debugger
|
||||||
// 视口的高度
|
// 视口的高度
|
||||||
let height = window.innerHeight
|
let height = window.innerHeight
|
||||||
maxHeight.value = height - 100
|
maxHeight.value = height - 120
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
@ -49,15 +49,70 @@ export default defineComponent({
|
|||||||
let reverseManageStore = useReverseManageStore()
|
let reverseManageStore = useReverseManageStore()
|
||||||
let bookType = ref(BookType)
|
let bookType = ref(BookType)
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
// 添加一个总的监听器,主要监听后端数据变化,修改后端数据后,前端数据也会随之变化
|
// 监听提取文案的返回数据
|
||||||
if (!window['mainReturn']) {
|
window.api.setEventListen([DEFINE_STRING.BOOK.GET_COPYWRITING_RETURN], (value) => {
|
||||||
window.mainReturn = true
|
if (value.code == 0) {
|
||||||
window.api.setEventListen([DEFINE_STRING.BOOK.MAIN_DATA_RETURN], (value) => {
|
message.error(value.message)
|
||||||
// 这边是不监听的数据
|
code.value = code.value + '\n' + value.data
|
||||||
if (value.type == ResponseMessageType.HD_IMAGE) {
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
// 修改进度
|
||||||
|
softwareStore.spin.tip = `正在提取文案,当前进度 ${value.data.progress.current} / ${value.data.progress.total} 。。。`
|
||||||
|
let index = reverseManageStore.selectBookTaskDetail.findIndex((item) => item.id == value.id)
|
||||||
|
if (index >= 0) {
|
||||||
|
reverseManageStore.selectBookTaskDetail[index].word = value.data.content
|
||||||
|
reverseManageStore.selectBookTaskDetail[index].afterGpt = value.data.content
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// 监听删除水印的返回的图片数据
|
||||||
|
window.api.setEventListen([DEFINE_STRING.BOOK.REMOVE_WATERMARK_RETURN], (value) => {
|
||||||
if (value.code == 0) {
|
if (value.code == 0) {
|
||||||
|
message.error(value.message)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
let index = reverseManageStore.selectBookTaskDetail.findIndex((item) => item.id == value.id)
|
||||||
|
if (index >= 0) {
|
||||||
|
reverseManageStore.selectBookTaskDetail[index].oldImage =
|
||||||
|
value.data + '?time=' + new Date().getTime()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// 监听反推提示词的返回数据
|
||||||
|
window.api.setEventListen([DEFINE_STRING.BOOK.REVERSE_PROMPT_RETURN], (value) => {
|
||||||
|
if (value.code == 0) {
|
||||||
|
errorResponse(value)
|
||||||
|
} else {
|
||||||
|
MJReverseResponse(value)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// 监听MJ出图的返回信息
|
||||||
|
window.api.setEventListen([DEFINE_STRING.BOOK.MJ_IMAGE_GENERATE_RETURN], (value) => {
|
||||||
|
if (value.code == 0) {
|
||||||
|
errorResponse(value)
|
||||||
|
}
|
||||||
|
MJImageResponse(value)
|
||||||
|
})
|
||||||
|
|
||||||
|
// 监听反推的翻译数据返回
|
||||||
|
window.api.setEventListen([DEFINE_STRING.BOOK.REVERSE_PROMPT_TRANSLATE_RETURN], (value) => {
|
||||||
|
if (value.code == 0) {
|
||||||
|
errorResponse(value)
|
||||||
|
} else {
|
||||||
|
if (value.type == ResponseMessageType.REVERSE_PROMPT_TRANSLATE) {
|
||||||
|
ReversePromptTranslateResponse(value)
|
||||||
|
} else if (value.type == ResponseMessageType.GPT_PROMPT_TRANSLATE) {
|
||||||
|
GptPromptTranslateResponse(value)
|
||||||
|
} else {
|
||||||
|
message.error('错误的返回数据类型')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
function errorResponse(value) {
|
||||||
switch (value.dialogType) {
|
switch (value.dialogType) {
|
||||||
case DialogType.DIALOG:
|
case DialogType.DIALOG:
|
||||||
window.api.showGlobalMessageDialog(value)
|
window.api.showGlobalMessageDialog(value)
|
||||||
@ -74,28 +129,12 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 执行对应的方法,修改数据
|
onUnmounted(() => {
|
||||||
switch (value.type) {
|
window.api.removeEventListen(DEFINE_STRING.BOOK.GET_COPYWRITING_RETURN)
|
||||||
case ResponseMessageType.MJ_REVERSE: // MJ反推的数据返回处理
|
window.api.removeEventListen(DEFINE_STRING.BOOK.REMOVE_WATERMARK_RETURN)
|
||||||
MJReverseResponse(value)
|
window.api.removeEventListen(DEFINE_STRING.BOOK.REVERSE_PROMPT_RETURN)
|
||||||
break
|
window.api.removeEventListen(DEFINE_STRING.BOOK.MJ_IMAGE_GENERATE_RETURN)
|
||||||
case ResponseMessageType.REVERSE_PROMPT_TRANSLATE: // 翻译反推提示词的数据处理
|
window.api.removeEventListen(DEFINE_STRING.BOOK.REVERSE_PROMPT_TRANSLATE_RETURN)
|
||||||
ReversePromptTranslateResponse(value)
|
|
||||||
break
|
|
||||||
case ResponseMessageType.GPT_PROMPT_TRANSLATE: // GPT提示词翻译返回
|
|
||||||
GptPromptTranslateResponse(value)
|
|
||||||
break
|
|
||||||
case ResponseMessageType.MJ_IMAGE:
|
|
||||||
MJImageResponse(value)
|
|
||||||
break
|
|
||||||
case ResponseMessageType.HD_IMAGE:
|
|
||||||
break
|
|
||||||
default:
|
|
||||||
message.error('未知的返回数据类型')
|
|
||||||
break
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
|
|
||||||
function MJImageResponse(value) {
|
function MJImageResponse(value) {
|
||||||
@ -105,7 +144,7 @@ export default defineComponent({
|
|||||||
(item) => item.id == value.data.id
|
(item) => item.id == value.data.id
|
||||||
)
|
)
|
||||||
if (dataIndex >= 0) {
|
if (dataIndex >= 0) {
|
||||||
reverseManageStore.selectBookTaskDetail[dataIndex].mj_message = value.data
|
reverseManageStore.selectBookTaskDetail[dataIndex].mjMessage = value.data
|
||||||
reverseManageStore.selectBookTaskDetail[dataIndex].outImagePath = value.data.outImagePath
|
reverseManageStore.selectBookTaskDetail[dataIndex].outImagePath = value.data.outImagePath
|
||||||
reverseManageStore.selectBookTaskDetail[dataIndex].subImagePath = value.data.subImagePath
|
reverseManageStore.selectBookTaskDetail[dataIndex].subImagePath = value.data.subImagePath
|
||||||
}
|
}
|
||||||
@ -166,15 +205,15 @@ export default defineComponent({
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
reverseManageStore.selectBookTaskDetail[index].gptPrompt = value.data.prompt
|
reverseManageStore.selectBookTaskDetail[index].gptPrompt = value.data.prompt
|
||||||
|
// 这边也要修改进度
|
||||||
|
softwareStore.spin.tip = `翻译中 ... ${value.data.progress} / ${value.data.total}`
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* MJ反推返回数据
|
* MJ反推返回数据
|
||||||
*/
|
*/
|
||||||
function MJReverseResponse(value) {
|
function MJReverseResponse(value) {
|
||||||
console.log('MJReverseResponse', value)
|
|
||||||
if (value.data && value.data.progress == 100) {
|
if (value.data && value.data.progress == 100) {
|
||||||
debugger
|
|
||||||
let dataIndex = reverseManageStore.selectBookTaskDetail.findIndex(
|
let dataIndex = reverseManageStore.selectBookTaskDetail.findIndex(
|
||||||
(item) => item.id == value.data.id
|
(item) => item.id == value.data.id
|
||||||
)
|
)
|
||||||
|
|||||||
@ -101,7 +101,7 @@ async function TranslateSelect(key) {
|
|||||||
const element = reverseManageStore.selectBookTaskDetail[i]
|
const element = reverseManageStore.selectBookTaskDetail[i]
|
||||||
if (i >= props.index) {
|
if (i >= props.index) {
|
||||||
translateData.push({
|
translateData.push({
|
||||||
text: row.value.gptPrompt,
|
text: element.gptPrompt,
|
||||||
from: 'en',
|
from: 'en',
|
||||||
to: 'zh',
|
to: 'zh',
|
||||||
type: TranslateType.GPT_PROMPT_TRANSLATE,
|
type: TranslateType.GPT_PROMPT_TRANSLATE,
|
||||||
@ -116,7 +116,7 @@ async function TranslateSelect(key) {
|
|||||||
const element = reverseManageStore.selectBookTaskDetail[i]
|
const element = reverseManageStore.selectBookTaskDetail[i]
|
||||||
if (i >= props.index) {
|
if (i >= props.index) {
|
||||||
translateData.push({
|
translateData.push({
|
||||||
text: row.value.gptPrompt,
|
text: element.gptPrompt,
|
||||||
from: 'zh',
|
from: 'zh',
|
||||||
to: 'en',
|
to: 'en',
|
||||||
type: TranslateType.GPT_PROMPT_TRANSLATE,
|
type: TranslateType.GPT_PROMPT_TRANSLATE,
|
||||||
|
|||||||
@ -209,7 +209,7 @@ export default defineComponent({
|
|||||||
translation_app_id: window.config.translation_app_id,
|
translation_app_id: window.config.translation_app_id,
|
||||||
translation_secret: window.config.translation_secret,
|
translation_secret: window.config.translation_secret,
|
||||||
translation_auto: window.config.translation_auto,
|
translation_auto: window.config.translation_auto,
|
||||||
theme: softwareStore.softWare.theme,
|
theme: softwareStore.globalSetting.theme,
|
||||||
character_select_model: window.config.character_select_model,
|
character_select_model: window.config.character_select_model,
|
||||||
window_wh_bm_remember: window.config.window_wh_bm_remember,
|
window_wh_bm_remember: window.config.window_wh_bm_remember,
|
||||||
laiApiSelect: window.config.laiApiSelect ? window.config.laiApiSelect : LaiAPIType.MAIN
|
laiApiSelect: window.config.laiApiSelect ? window.config.laiApiSelect : LaiAPIType.MAIN
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user