From 77ee38d3023202f144a8cc9c3bcf4176cccf778e Mon Sep 17 00:00:00 2001 From: lq1405 <2769838458@qq.com> Date: Wed, 26 Feb 2025 12:03:01 +0800 Subject: [PATCH] =?UTF-8?q?V=203.2.5=EF=BC=882025.02.26=EF=BC=89=201.=20?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=96=B0=E7=94=A8=E6=88=B7=E5=90=88=E5=B9=B6?= =?UTF-8?q?MJ=E8=AE=BE=E7=BD=AE=E5=88=9D=E5=A7=8B=E5=8C=96=E9=97=AE?= =?UTF-8?q?=E9=A2=98=202.=20=E4=BF=AE=E5=A4=8D=E5=8E=9F=E5=88=9BMJ?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E6=95=B0=E6=8D=AE=E7=BC=BA=E5=A4=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- resources/scripts/db/book.realm.lock | Bin 1416 -> 1416 bytes resources/scripts/db/software.realm.lock | Bin 1416 -> 1416 bytes .../db/service/SoftWare/mjSettingService.ts | 54 +++++++++++------- src/main/Service/MJ/mj.ts | 23 ++++++-- src/main/Service/MJ/mjApi.ts | 10 ++-- .../ServiceBasic/softwareServiceBasic.ts | 13 +---- src/main/setting/autoSync.js | 2 +- src/main/setting/mjSetting.js | 2 +- .../Original/Components/PromptSetting.vue | 45 ++++++++------- 10 files changed, 85 insertions(+), 66 deletions(-) diff --git a/package.json b/package.json index 02c8e6c..7963d34 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "laitool", - "version": "3.2.4", + "version": "3.2.5", "description": "An AI tool for image processing, video processing, and other functions.", "main": "./out/main/index.js", "author": "laitool.cn", diff --git a/resources/scripts/db/book.realm.lock b/resources/scripts/db/book.realm.lock index 8d081895be7b2ea677beab57f50eac7a99865c4f..dec7719aeede7956993128ea8f70bde11305cc24 100644 GIT binary patch literal 1416 zcmZQ%Dgaf0FgBooCWx@N8Z6`Sf&)y0+=L7S a;O>K{E6C75mL6q~hQMeDjE2CF3jqL#3k4wn literal 1416 zcmZQ%-8}9!3iT)qyZJpa2wPg<_Dr5QqQ+i0%X< zWFAxsNO8lN5Op`yv8xkAQ&(V!T^+)G5c2|zv8$6oGw(tGTmXfE2tTMlf+5mOD5^#| OqaiRF0;3^-2mt_!Ck4F# literal 1416 zcmZQ% { - return { - ...mjSetting + let mjSetting: OptionModel.OptionItem | null = null; + if (res.length > 0) { + let resData = Array.from(res).map((item) => { + let resObj = { + ...item + } + return cloneDeep(resObj) + }) + mjSetting = resData[0] as OptionModel.OptionItem + + if (!ValidateJson(mjSetting.value)) { + throw new Error('MJ设置的数据格式不正确,请检查数据格式') } - }) + return JSON.parse(mjSetting.value)?.mj_simpleSetting - return successMessage(resMjSetting, '获取MJ基础设置成功', 'MJSettingService_getMjSetting') + } else { + throw new Error('没有找到MJ的设置信息,请检查') + } } catch (error) { throw error } @@ -582,11 +589,14 @@ export class MJSettingService extends BaseSoftWareService { GetMJSettingTreeData() { try { // 获取MJ的基础配置信息 - let mjSettings = this.GetMjSetting(null) - if (mjSettings.data.length <= 0) { - this.InitData(); - mjSettings = this.GetMjSetting(null) + let mjSettings = this.GetMjSetting() + // if (mjSettings.data.length <= 0) { + // this.InitData(); + // mjSettings = this.GetMjSetting(null) + // } + if (mjSettings == null) { + throw new Error('未找到MJ的设置信息,请检查'); } // 获取API的配置信息 let apiSettings = this.GetAPIMjSetting(null) @@ -594,7 +604,7 @@ export class MJSettingService extends BaseSoftWareService { let remoteSettings = this.GetRemoteMJSettings(null) // 获取浏览器模式的配置信息 let browserSettings = this.GetBrowserMJSetting(null) - let mjSetting = mjSettings.data[0] + let mjSetting = mjSettings mjSetting.apiSetting = apiSettings.data.length > 0 ? apiSettings.data[0] : null mjSetting.remoteSetting = remoteSettings.data.length > 0 ? remoteSettings.data[0] : null mjSetting.browserSetting = browserSettings.data.length > 0 ? browserSettings.data[0] : null diff --git a/src/main/Service/MJ/mj.ts b/src/main/Service/MJ/mj.ts index 15e501d..dd9028b 100644 --- a/src/main/Service/MJ/mj.ts +++ b/src/main/Service/MJ/mj.ts @@ -23,6 +23,9 @@ import path from "path" const { v4: uuidv4 } = require('uuid') import fs from "fs" import { TaskModal } from "@/model/task"; +import { OptionServices } from "../Options/optionServices"; +import { OptionKeyName } from "@/define/enum/option"; +import { ValidateJson } from "@/define/Tools/validate"; const fspromise = fs.promises export class MJOpt { @@ -34,6 +37,8 @@ export class MJOpt { bookServiceBasic: BookServiceBasic presetService: PresetService softWareServiceBasic: SoftWareServiceBasic + mj_globalSetting: MJSettingModel.MJ_GlobalSettingModel + constructor() { this.imageStyle = new ImageStyle() this.logScheduler = new LogScheduler() @@ -48,9 +53,20 @@ export class MJOpt { * 获取MJ设置 */ async GetMJSetting() { - if (!this.mjSimpleSetting) { - this.mjSimpleSetting = await this.softWareServiceBasic.GetMjSetting() + let optionServices = new OptionServices() + let mjSettingData = await optionServices.GetOptionByKey(OptionKeyName.MJ_GlobalSetting); + if (mjSettingData.code == 0) { + throw new Error("加载MJ设置失败,失败原因如下:" + mjSettingData.message) } + if (mjSettingData.data == null) { + throw new Error("加载MJ设置失败,失败原因如下:没有找到对应的MJ设置,请先去MJ设置中设置") + } + if (!ValidateJson(mjSettingData.data.value)) { + throw new Error("MJ设置的数据格式不正确,请检查数据格式") + } + + this.mj_globalSetting = JSON.parse(mjSettingData.data.value) as MJSettingModel.MJ_GlobalSettingModel + this.mjSimpleSetting = this.mj_globalSetting.mj_simpleSetting } @@ -378,8 +394,7 @@ export class MJOpt { } // let suffixParam = imageBaseSetting.mj_config.image_suffix ; // 没有就直接报错 - let mjSettingDb = await this.softWareServiceBasic.GetMjSetting() - let suffixParam = mjSettingDb.imageSuffix + let suffixParam = this.mjSimpleSetting.imageSuffix // let styleString = ''; // 拿到所有的风格 diff --git a/src/main/Service/MJ/mjApi.ts b/src/main/Service/MJ/mjApi.ts index 0874030..84ec4cc 100644 --- a/src/main/Service/MJ/mjApi.ts +++ b/src/main/Service/MJ/mjApi.ts @@ -36,11 +36,11 @@ class MJApi { */ async InitMJSetting(): Promise { // 获取MJ配置,从数据库中 - let _mjSettingService = await MJSettingService.getInstance() - let mjSettings = _mjSettingService.GetMJSettingTreeData() - if (mjSettings.code == 0) { - throw new Error(mjSettings.message) - } + // let _mjSettingService = await MJSettingService.getInstance() + // let mjSettings = _mjSettingService.GetMJSettingTreeData() + // if (mjSettings.code == 0) { + // throw new Error(mjSettings.message) + // } let mjSettingData = await this.optionServices.GetOptionByKey(OptionKeyName.MJ_GlobalSetting); diff --git a/src/main/Service/ServiceBasic/softwareServiceBasic.ts b/src/main/Service/ServiceBasic/softwareServiceBasic.ts index 500f17b..235b3f8 100644 --- a/src/main/Service/ServiceBasic/softwareServiceBasic.ts +++ b/src/main/Service/ServiceBasic/softwareServiceBasic.ts @@ -87,16 +87,9 @@ export class SoftWareServiceBasic { */ async GetMjSetting(): Promise { await this.InitService(); - let mjSetting = this.mjSettingService.GetMjSetting({}) - if (mjSetting.code == 1) { - if (mjSetting.data.length <= 0) { - throw new Error("未找到MJ的设置信息,请检查"); - } - // 这边只是返回第一个 - return mjSetting.data[0] - } else { - throw new Error(mjSetting.message) - } + let mjSetting = this.mjSettingService.GetMjSetting() + + return mjSetting } //#endregion diff --git a/src/main/setting/autoSync.js b/src/main/setting/autoSync.js index 89b779a..f172246 100644 --- a/src/main/setting/autoSync.js +++ b/src/main/setting/autoSync.js @@ -142,7 +142,7 @@ async function AutoSyncMJConfig2210() { } // 判断基础数据,不存在同步 - let mjSetting = _mjSettingService.GetMjSetting(null) + let mjSetting = _mjSettingService.GetMjSetting() if (mjSetting.code == 1 && mjSetting.data.length <= 0) { //判断数据然后选择同步 if ( diff --git a/src/main/setting/mjSetting.js b/src/main/setting/mjSetting.js index 7306146..f9d328f 100644 --- a/src/main/setting/mjSetting.js +++ b/src/main/setting/mjSetting.js @@ -93,7 +93,7 @@ export class MJSetting { async GetMJSetting(mjSettingQuery) { try { let _mjSetting = await MJSettingService.getInstance() - let res = _mjSetting.GetMjSetting(mjSettingQuery) + let res = _mjSetting.GetMjSetting() return res } catch (error) { return errorMessage( diff --git a/src/renderer/src/components/Original/Components/PromptSetting.vue b/src/renderer/src/components/Original/Components/PromptSetting.vue index 61b17d0..3a9ac44 100644 --- a/src/renderer/src/components/Original/Components/PromptSetting.vue +++ b/src/renderer/src/components/Original/Components/PromptSetting.vue @@ -157,6 +157,9 @@ import { import { DEFINE_STRING } from '../../../../../define/define_string' import InputDialogContent from './InputDialogContent.vue' import { v4 as uuidv4 } from 'uuid' +import MJDefine from '@/main/Service/MJ/mjDefine' +import { OptionKeyName, OptionType } from '@/define/enum/option' +import { ValidateJson } from '@/define/Tools/validate' export default defineComponent({ components: { @@ -230,35 +233,28 @@ export default defineComponent({ character_select_model_options.value = value.data }) } - + let mj_globalSetting /** * 初始化MJ的option */ async function InitMjOptions() { - // 获取当前mj配置信息,加载基础信息 - let res = await window.setting.GetMjSetting() - if (res.code == 0) { - message.error(res.message) - return + let mjSettingData = await window.options.GetOptionByKey(OptionKeyName.MJ_GlobalSetting) + if (mjSettingData.code == 0) { + throw new Error('加载MJ设置失败,失败原因如下:' + mjSettingData.message) + } + if (mjSettingData.data == null) { + throw new Error('加载MJ设置失败,失败原因如下:没有找到对应的MJ设置,请先去MJ设置中设置') + } + if (!ValidateJson(mjSettingData.data.value)) { + throw new Error('MJ设置的数据格式不正确,请检查数据格式') } - if (res.data.length <= 0) { - message.error('当前没有MJ配置信息,请先配置MJ信息') - return - } + mj_globalSetting = JSON.parse(mjSettingData.data.value) + let mjSimpleSetting = mj_globalSetting.mj_simpleSetting - mjSetting.value = Object.assign(mjSetting.value, res.data[0]) + mjSetting.value = Object.assign(mjSetting.value, mjSimpleSetting) - await window.mj.GetMJGenerateCategory((value) => { - if (value.code == 0) { - message.error(value.message) - return - } - request_model_options.value = value.data.filter((item) => !item.disable) - if (request_model_options.value.length > 0 && mjSetting.value.request_model == null) { - mjSetting.value.request_model = request_model_options.value[0].value - } - }) + request_model_options.value = MJDefine.GetMJRequestModelOptions() mj_speed_options.value = [ { @@ -324,8 +320,13 @@ export default defineComponent({ } }) + debugger // 保存MJ的基础设置 - let saveMjRes = await window.setting.UpdateMJSetting(toRaw(mjSetting.value)) + let saveMjRes = await window.options.ModifyOptionByKey( + OptionKeyName.MJ_GlobalSetting, + JSON.stringify({ ...mj_globalSetting, mj_simpleSetting: mjSetting.value }), + OptionType.JSON + ) if (saveMjRes.code == 0) { throw new Error(saveMjRes.message) }