LaiTool V3.0.1-preview.2
This commit is contained in:
parent
7312053a20
commit
f3a25e9474
4
package-lock.json
generated
4
package-lock.json
generated
@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "laitool",
|
||||
"version": "3.0.1-preview.1",
|
||||
"version": "3.0.1-preview.2",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "laitool",
|
||||
"version": "3.0.1-preview.1",
|
||||
"version": "3.0.1-preview.2",
|
||||
"hasInstallScript": true,
|
||||
"dependencies": {
|
||||
"@alicloud/alimt20181012": "^1.2.0",
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "laitool",
|
||||
"version": "3.0.1-preview.1",
|
||||
"version": "3.0.1-preview.2",
|
||||
"description": "An AI tool for image processing, video processing, and other functions.",
|
||||
"main": "./out/main/index.js",
|
||||
"author": "laitool.cn",
|
||||
|
||||
BIN
resources/image/c_s/e314a26a-dc61-4776-b8da-921d5c3544ff.png
Normal file
BIN
resources/image/c_s/e314a26a-dc61-4776-b8da-921d5c3544ff.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 44 KiB |
Binary file not shown.
BIN
resources/scripts/db/software - 副本.realm
Normal file
BIN
resources/scripts/db/software - 副本.realm
Normal file
Binary file not shown.
BIN
resources/scripts/db/software - 副本.realm.lock
Normal file
BIN
resources/scripts/db/software - 副本.realm.lock
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -16,7 +16,7 @@
|
||||
"customize_gpt_prompt": "a93b693e-bb3f-406d-9730-cba43a6585a2",
|
||||
"character_select_model": "drop",
|
||||
"image_generate_category": "mj",
|
||||
"window_wh_bm_remember": true,
|
||||
"window_wh_bm_remember": false,
|
||||
"window_wh_bm": {
|
||||
"x": 1699,
|
||||
"y": 230,
|
||||
|
||||
@ -10,6 +10,7 @@ import { isEmpty, isNumber } from 'lodash'
|
||||
const { v4: uuidv4 } = require('uuid')
|
||||
import { version } from '../../../../../package.json'
|
||||
import { GeneralResponse } from '../../../../model/generalResponse'
|
||||
import { MJCategroy } from '../../../enum/bookEnum'
|
||||
|
||||
export class MJSettingService extends BaseSoftWareService {
|
||||
static instance: MJSettingService | null = null
|
||||
@ -31,6 +32,58 @@ export class MJSettingService extends BaseSoftWareService {
|
||||
return MJSettingService.instance
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化数据
|
||||
*/
|
||||
InitData() {
|
||||
// 添加默认数据,然后重新获取
|
||||
this.transaction(() => {
|
||||
// 初始化MJ设置的数据
|
||||
this.realm.create('MjSetting', {
|
||||
id: uuidv4(),
|
||||
type: MJCategroy.API_MJ,
|
||||
selectRobot: 'niji',
|
||||
imageScale: '3e2772f2-041c-49c6-ba13-d0ed120310b8',
|
||||
imageSuffix: ' --niji 6 --ar 1:1',
|
||||
taskCount: 5,
|
||||
spaceTime: 5,
|
||||
createTime: new Date(),
|
||||
updateTime: new Date(),
|
||||
version: version,
|
||||
requestModel: MJCategroy.API_MJ,
|
||||
imageModel: "99377cad-c103-4cee-a958-86a104879328"
|
||||
})
|
||||
let apiSetting = this.realm.objects('APIMj');
|
||||
if (apiSetting.length <= 0) {
|
||||
this.realm.create('APIMj', {
|
||||
id: uuidv4(),
|
||||
mjApiUrl: 'b44c6f24-59e4-4a71-b2c7-3df0c4e35e65',
|
||||
mjSpeed: 'relaxed',
|
||||
apiKey: "自己的APIKey",
|
||||
createTime: new Date(),
|
||||
updateTime: new Date(),
|
||||
version: version
|
||||
})
|
||||
}
|
||||
let browserSetting = this.realm.objects('BrowserMJ');
|
||||
if (browserSetting.length <= 0) {
|
||||
this.realm.create('BrowserMJ', {
|
||||
id: uuidv4(),
|
||||
serviceId: "自己的服务ID",
|
||||
channelId: '自己的频道ID',
|
||||
mjBotId: '自己的MJ机器人ID',
|
||||
nijBotId: '自己的NIJI机器人ID',
|
||||
token: '自己的Token',
|
||||
userAgent: "自己的UserAgent",
|
||||
userAgentCustom: false,
|
||||
createTime: new Date(),
|
||||
updateTime: new Date(),
|
||||
version: version
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
//#region 览器模式的MJ设置
|
||||
|
||||
/**
|
||||
@ -525,7 +578,9 @@ export class MJSettingService extends BaseSoftWareService {
|
||||
// 获取MJ的基础配置信息
|
||||
let mjSettings = this.GetMjSetting(null)
|
||||
if (mjSettings.data.length <= 0) {
|
||||
throw new Error('没有找到MJ的配置信息,请先添加')
|
||||
this.InitData();
|
||||
mjSettings = this.GetMjSetting(null)
|
||||
|
||||
}
|
||||
// 获取API的配置信息
|
||||
let apiSettings = this.GetAPIMjSetting(null)
|
||||
|
||||
@ -371,6 +371,10 @@ export const gptDefine = {
|
||||
} else {
|
||||
let tmp_id = uuidv4()
|
||||
value.id = tmp_id
|
||||
|
||||
if (property == 'gpt_options') {
|
||||
value.value = tmp_id
|
||||
}
|
||||
gpt.push(value)
|
||||
}
|
||||
tmp_gpt[property] = gpt
|
||||
|
||||
@ -423,6 +423,9 @@ export class MJOriginalImageGenerate {
|
||||
// 获取当前的API url
|
||||
apiUrl = await this.InitMJAPIUrl(mjSetting.apiSetting.mjApiUrl)
|
||||
} else if (mjSetting.requestModel == MJImageType.REMOTE_MJ) {
|
||||
// 这边进行等待
|
||||
console.log(mjSetting)
|
||||
await this.tools.delay(mjSetting.spaceTime * 1000)
|
||||
apiUrl = {
|
||||
mj_url: {
|
||||
imagine: define.remotemj_api + 'mj/submit/imagine',
|
||||
@ -454,8 +457,8 @@ export class MJOriginalImageGenerate {
|
||||
throw new Error('提示词包含敏感词,请修改后重试')
|
||||
}
|
||||
} else if (
|
||||
imagine_url.includes('api.ephone.ai') ||
|
||||
imagine_url.includes('https://laitool.net')
|
||||
request_model == MJImageType.API_MJ &&
|
||||
(imagine_url.includes('api.ephone.ai') || imagine_url.includes('laitool'))
|
||||
) {
|
||||
// ePhoneAPI
|
||||
let headers = {
|
||||
|
||||
@ -11,7 +11,7 @@ const Util = require('@alicloud/tea-util')
|
||||
let fspromises = require('fs').promises
|
||||
import { SoftwareService } from '../../define/db/service/SoftWare/softwareService'
|
||||
import { isEmpty } from 'lodash'
|
||||
import {ValidateJson} from '../../define/Tools/validate'
|
||||
import { ValidateJson } from '../../define/Tools/validate'
|
||||
|
||||
let { Signer } = require('@volcengine/openapi')
|
||||
|
||||
@ -29,33 +29,31 @@ export class Translate {
|
||||
this.softwareService = await SoftwareService.getInstance()
|
||||
}
|
||||
// 获取翻译设置
|
||||
if (!this.translationBusiness || !this.translationAppId || !this.translationSecret) {
|
||||
let translateSetting = this.softwareService.GetSoftWarePropertyData('translationSetting')
|
||||
if (isEmpty(translateSetting)) {
|
||||
throw new Error('翻译设置为空,请先设置')
|
||||
}
|
||||
let tryParse = ValidateJson(translateSetting)
|
||||
if (!tryParse) {
|
||||
throw new Error('翻译设置的格式错误,请重置后重新添加')
|
||||
}
|
||||
let translateSettingData = JSON.parse(translateSetting)
|
||||
let selectModel = translateSettingData.selectModel
|
||||
let translateIndex = translateSettingData.translates.findIndex(
|
||||
(item) => item.name == selectModel
|
||||
)
|
||||
if (translateIndex < 0) {
|
||||
throw new Error('没有找到对应的翻译API设置')
|
||||
}
|
||||
let translateData = translateSettingData.translates[translateIndex]
|
||||
for (const key in translateData) {
|
||||
if (!translateData[key]) {
|
||||
throw new Error(`翻译设置中的 ${key} 不能为空`)
|
||||
}
|
||||
}
|
||||
this.translationBusiness = translateData.translation_business
|
||||
this.translationAppId = translateData.translation_app_id
|
||||
this.translationSecret = translateData.translation_secret
|
||||
let translateSetting = this.softwareService.GetSoftWarePropertyData('translationSetting')
|
||||
if (isEmpty(translateSetting)) {
|
||||
throw new Error('翻译设置为空,请先设置')
|
||||
}
|
||||
let tryParse = ValidateJson(translateSetting)
|
||||
if (!tryParse) {
|
||||
throw new Error('翻译设置的格式错误,请重置后重新添加')
|
||||
}
|
||||
let translateSettingData = JSON.parse(translateSetting)
|
||||
let selectModel = translateSettingData.selectModel
|
||||
let translateIndex = translateSettingData.translates.findIndex(
|
||||
(item) => item.name == selectModel
|
||||
)
|
||||
if (translateIndex < 0) {
|
||||
throw new Error('没有找到对应的翻译API设置')
|
||||
}
|
||||
let translateData = translateSettingData.translates[translateIndex]
|
||||
for (const key in translateData) {
|
||||
if (!translateData[key]) {
|
||||
throw new Error(`翻译设置中的 ${key} 不能为空`)
|
||||
}
|
||||
}
|
||||
this.translationBusiness = translateData.translation_business
|
||||
this.translationAppId = translateData.translation_app_id
|
||||
this.translationSecret = translateData.translation_secret
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -67,7 +67,6 @@ export class MJOpt {
|
||||
this.mjSettingService = await MJSettingService.getInstance()
|
||||
}
|
||||
this.mjSetting = await this.mjApi.InitMJSetting()
|
||||
|
||||
}
|
||||
/**
|
||||
* 返回MJ的数据到前端界面,前端界面做出相应的改变
|
||||
|
||||
@ -53,31 +53,31 @@ export class TranslateService {
|
||||
InitialTranslateSetting(): TranslateModel.TranslateModel {
|
||||
return {
|
||||
selectModel: TranslateAPIType.BAIDU,
|
||||
translation_auto: false,
|
||||
translation_auto: true,
|
||||
translates: [
|
||||
{
|
||||
name: TranslateAPIType.BAIDU,
|
||||
translation_business: "https://fanyi-api.baidu.com/api/trans/vip/translate",
|
||||
translation_app_id: undefined,
|
||||
translation_secret: undefined
|
||||
translation_app_id: "百度翻译的APP ID",
|
||||
translation_secret: "百度翻译的密钥"
|
||||
},
|
||||
{
|
||||
name: TranslateAPIType.TENCENT,
|
||||
translation_business: "https://tmt.tencentcloudapi.com",
|
||||
translation_app_id: undefined,
|
||||
translation_secret: undefined
|
||||
translation_app_id: '腾讯云的APP ID',
|
||||
translation_secret: "腾讯云的密钥"
|
||||
},
|
||||
{
|
||||
name: TranslateAPIType.VOLCENGINE,
|
||||
translation_business: "https://translate.volcengineapi.com?",
|
||||
translation_app_id: undefined,
|
||||
translation_secret: undefined
|
||||
translation_app_id: '火山引擎的APP ID',
|
||||
translation_secret: '火山引擎的密钥'
|
||||
},
|
||||
{
|
||||
name: TranslateAPIType.ALI,
|
||||
translation_business: "https://mt.cn-hangzhou.aliyuncs.com",
|
||||
translation_app_id: undefined,
|
||||
translation_secret: undefined
|
||||
translation_app_id: '阿里云的APP ID',
|
||||
translation_secret: '阿里云的密钥'
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -93,7 +93,10 @@ export class TranslateService {
|
||||
let translateSettingString = this.softwareService.GetSoftWarePropertyData('translationSetting');
|
||||
if (isEmpty(translateSettingString)) {
|
||||
// 初始化
|
||||
translateSetting = this.InitialTranslateSetting()
|
||||
translateSetting = this.InitialTranslateSetting();
|
||||
await this.ResetTranslateSetting();
|
||||
translateSettingString = this.softwareService.GetSoftWarePropertyData('translationSetting');
|
||||
translateSetting = JSON.parse(translateSettingString);
|
||||
} else {
|
||||
// 解析
|
||||
let tryParse = ValidateJson(translateSettingString)
|
||||
|
||||
@ -23,8 +23,8 @@ export class TTS {
|
||||
/**
|
||||
* 初始化TTS设置
|
||||
*/
|
||||
InitTTSSetting() {
|
||||
return {
|
||||
async InitTTSSetting() {
|
||||
let defaultData = {
|
||||
selectModel: 'edge-tts',
|
||||
edgeTTS: {
|
||||
value: 'zh-CN-XiaoxiaoNeural',
|
||||
@ -37,6 +37,8 @@ export class TTS {
|
||||
volumn: 0 // 音量
|
||||
}
|
||||
}
|
||||
await this.SaveTTSConfig(defaultData)
|
||||
return defaultData
|
||||
}
|
||||
|
||||
/**
|
||||
@ -50,7 +52,7 @@ export class TTS {
|
||||
let resObj = undefined
|
||||
if (isEmpty(res)) {
|
||||
// 没有数据,需要初始化
|
||||
resObj = this.InitTTSSetting()
|
||||
resObj = await this.InitTTSSetting()
|
||||
} else {
|
||||
let tryParse = ValidateJson(res)
|
||||
if (!tryParse) {
|
||||
|
||||
@ -36,13 +36,16 @@ export class Watermark {
|
||||
/**
|
||||
* 初始化水印设置
|
||||
*/
|
||||
InitWatermarkSetting() {
|
||||
return {
|
||||
private InitWatermarkSetting() {
|
||||
let defaultData = {
|
||||
selectModel: RemoveWatermarkType.LOCAL_LAMA,
|
||||
iopaint: {
|
||||
url: undefined
|
||||
url: "http://127.0.0.1:8080/"
|
||||
}
|
||||
} as ImageModel.RemoveWatermarkSetting
|
||||
|
||||
this.softwareService.SaveSoftwarePropertyData('watermarkSetting', JSON.stringify(defaultData))
|
||||
return defaultData;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -51,15 +54,17 @@ export class Watermark {
|
||||
async GetWatermarkSetting() {
|
||||
try {
|
||||
await this.InitService();
|
||||
let watermarkSetting = this.InitWatermarkSetting();
|
||||
let watermarkSetting = undefined;
|
||||
let setting = this.softwareService.GetSoftWarePropertyData("watermarkSetting");
|
||||
if (!isEmpty(setting)) {
|
||||
// 直接初始化
|
||||
// 初始化
|
||||
let tryP = ValidateJson(setting);
|
||||
if (!tryP) {
|
||||
throw new Error('解析去除水印的设置失败,数据格式不正确')
|
||||
}
|
||||
watermarkSetting = JSON.parse(setting);
|
||||
} else {
|
||||
watermarkSetting = this.InitWatermarkSetting()
|
||||
}
|
||||
return successMessage(watermarkSetting, '获取去除水印的设置成功', 'Image_GetWatermarkSetting')
|
||||
} catch (error) {
|
||||
|
||||
@ -27,6 +27,12 @@ export class Writing extends ServiceBase {
|
||||
axios.defaults.baseURL = define.serverUrl
|
||||
}
|
||||
|
||||
/**
|
||||
* 文案处理,GPT进行推理
|
||||
* @param {*} setting
|
||||
* @param {*} word
|
||||
* @returns
|
||||
*/
|
||||
async ActionStart(setting, word) {
|
||||
try {
|
||||
await this.InitService()
|
||||
|
||||
@ -144,16 +144,6 @@ app.whenReady().then(async () => {
|
||||
optimizer.watchWindowShortcuts(window)
|
||||
})
|
||||
|
||||
global.logger = new Logger(define.logger_path)
|
||||
// 同步数据
|
||||
await AutoSync()
|
||||
|
||||
global.newWindow = []
|
||||
mainWindow = await createWindow('ShowMessage', null)
|
||||
|
||||
global.requestQuene = new AsyncQueue(global, global.config.task_number)
|
||||
global.fileQueue = new AsyncQueue(global, 1)
|
||||
|
||||
//判断是不是又配置文件,没有的话,将temp中的基础配置加载
|
||||
// 判断文件夹是不是存在
|
||||
let config_p = path.dirname(define.config_path)
|
||||
@ -206,6 +196,16 @@ app.whenReady().then(async () => {
|
||||
mainWindow = createWindow('ShowMessage', null)
|
||||
}
|
||||
})
|
||||
|
||||
global.logger = new Logger(define.logger_path)
|
||||
// 同步数据
|
||||
await AutoSync()
|
||||
|
||||
global.newWindow = []
|
||||
mainWindow = await createWindow('ShowMessage', null)
|
||||
|
||||
global.requestQuene = new AsyncQueue(global, global.config.task_number)
|
||||
global.fileQueue = new AsyncQueue(global, 1)
|
||||
})
|
||||
|
||||
// Quit when all windows are closed, except on macOS. There, it's common
|
||||
|
||||
@ -34,7 +34,7 @@ async function GlobalAutoSync() {
|
||||
theme: 'light',
|
||||
reverse_display_show: false,
|
||||
reverse_show_book_striped: false,
|
||||
reverse_data_table_size: 'samll',
|
||||
reverse_data_table_size: 'small',
|
||||
globalSetting: initGlobalConfig
|
||||
})
|
||||
if (addSfotwareRes.code == 1) {
|
||||
@ -187,7 +187,7 @@ async function AutoSyncMJConfig2210() {
|
||||
theme: 'light',
|
||||
reverse_display_show: false,
|
||||
reverse_show_book_striped: false,
|
||||
reverse_data_table_size: 'samll'
|
||||
reverse_data_table_size: 'small'
|
||||
}
|
||||
let res = await _softwareService.AddSfotware(softData)
|
||||
if (res.code == 0) {
|
||||
|
||||
@ -13,6 +13,32 @@ export class GptSetting extends ServiceBase {
|
||||
axios.defaults.baseURL = define.serverUrl
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化数据
|
||||
* @returns
|
||||
*/
|
||||
async InitAISetting() {
|
||||
let defaultData = {
|
||||
laiapi: {
|
||||
gpt_url: 'https://laitool.net/v1/chat/completions',
|
||||
api_key: "请输入你的LAI API 的 Key",
|
||||
model: "请输入你的LAI API 的 Model名称"
|
||||
},
|
||||
kimi: {
|
||||
gpt_url: 'https://api.moonshot.cn/v1/chat/completions',
|
||||
api_key: "请输入你的Kimi API 的 Key",
|
||||
model: "请输入你的Kimi API 的 Model名称"
|
||||
},
|
||||
doubao: {
|
||||
gpt_url: 'https://ark.cn-beijing.volces.com/api/v3/chat/completions',
|
||||
api_key: "请输入你的Doubao API 的 Key",
|
||||
model: "请输入你的Doubao API 的 Model名称"
|
||||
}
|
||||
}
|
||||
await this.SaveAISetting(defaultData)
|
||||
return defaultData
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取服务强上面的提示词相关的数据
|
||||
*/
|
||||
@ -43,34 +69,18 @@ export class GptSetting extends ServiceBase {
|
||||
async GetAISetting() {
|
||||
try {
|
||||
await this.InitService()
|
||||
let aiSetting = undefined
|
||||
let res = this.softService.GetSoftWarePropertyData('aiSetting')
|
||||
if (isEmpty(res)) {
|
||||
// 没有数据需要额外初始化
|
||||
res.data = {
|
||||
laiapi: {
|
||||
gpt_url: 'https://laitool.net/v1/chat/completions',
|
||||
api_key: undefined,
|
||||
model: undefined
|
||||
},
|
||||
kimi: {
|
||||
gpt_url: 'https://api.moonshot.cn/v1/chat/completions',
|
||||
api_key: undefined,
|
||||
model: undefined
|
||||
},
|
||||
doubao: {
|
||||
gpt_url: 'https://ark.cn-beijing.volces.com/api/v3/chat/completions',
|
||||
api_key: undefined,
|
||||
model: undefined
|
||||
}
|
||||
}
|
||||
aiSetting = await this.InitAISetting();
|
||||
} else {
|
||||
let tryP = ValidateJson(res)
|
||||
if (!tryP) {
|
||||
throw new Error('AI设置的数据格式不正确')
|
||||
}
|
||||
res = JSON.parse(res)
|
||||
aiSetting = JSON.parse(res)
|
||||
}
|
||||
return successMessage(res, '请求成功', 'GptSetting_GetAISetting')
|
||||
return successMessage(aiSetting, '请求成功', 'GptSetting_GetAISetting')
|
||||
} catch (error) {
|
||||
return errorMessage(
|
||||
'获取软件设置里面的AI设置错误,错误信息如下:' + error.toString(),
|
||||
@ -15,6 +15,21 @@ export class WritingSetting {
|
||||
}
|
||||
}
|
||||
|
||||
async InitWritingConfig() {
|
||||
let defaultConfig = {
|
||||
split_char: '。,“”‘’!?【】《》()…—:;.,\'\'""!?[]<>()...-:;',
|
||||
mrege_count: 3,
|
||||
mrege_char: ',',
|
||||
end_char: '。',
|
||||
merge_count: 4,
|
||||
merge_char: ',',
|
||||
isRandom: true,
|
||||
randomCount: 0
|
||||
}
|
||||
await this.SaveWriteConfig(defaultConfig)
|
||||
return defaultConfig
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取文案的相关配置
|
||||
*/
|
||||
@ -23,16 +38,7 @@ export class WritingSetting {
|
||||
await this.InitService()
|
||||
let res = this.softService.GetSoftWarePropertyData('writeSetting')
|
||||
if (isEmpty(res)) {
|
||||
res.data = JSON.stringify({
|
||||
split_char: '。,“”‘’!?【】《》()…—:;.,\'\'""!?[]<>()...-:;',
|
||||
mrege_count: 3,
|
||||
mrege_char: ',',
|
||||
end_char: '。',
|
||||
merge_count: 4,
|
||||
merge_char: ',',
|
||||
isRandom: true,
|
||||
randomCount: 0
|
||||
})
|
||||
res = this.InitWritingConfig()
|
||||
} else {
|
||||
let tryP = ValidateJson(res)
|
||||
if (!tryP) {
|
||||
|
||||
@ -452,21 +452,21 @@ export default defineComponent({
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
label: () =>
|
||||
h(
|
||||
RouterLink,
|
||||
{
|
||||
to: {
|
||||
name: 'test_options'
|
||||
}
|
||||
},
|
||||
{
|
||||
default: () => '测试操作'
|
||||
}
|
||||
),
|
||||
key: 'test_options'
|
||||
},
|
||||
// {
|
||||
// label: () =>
|
||||
// h(
|
||||
// RouterLink,
|
||||
// {
|
||||
// to: {
|
||||
// name: 'test_options'
|
||||
// }
|
||||
// },
|
||||
// {
|
||||
// default: () => '测试操作'
|
||||
// }
|
||||
// ),
|
||||
// key: 'test_options'
|
||||
// },
|
||||
{
|
||||
label: () =>
|
||||
h(
|
||||
|
||||
@ -154,7 +154,6 @@ export default defineComponent({
|
||||
await window.mj.SaveTagPropertyData(
|
||||
[JSON.stringify(styleData.value), 'style_tags'],
|
||||
(value) => {
|
||||
|
||||
console.log(value)
|
||||
if (value.code == 0) {
|
||||
message.error(value.message)
|
||||
@ -217,8 +216,7 @@ export default defineComponent({
|
||||
]
|
||||
}
|
||||
let rules = {
|
||||
label: ruleObj('必填人物名称'),
|
||||
prompt: ruleObj('必填英文提示词')
|
||||
label: ruleObj('必填人物名称')
|
||||
}
|
||||
|
||||
/**
|
||||
@ -246,7 +244,6 @@ export default defineComponent({
|
||||
}
|
||||
imageLoading.value = true
|
||||
await window.sd.txt2img(JSON.stringify([d]), async (value) => {
|
||||
|
||||
if (value.code == 0) {
|
||||
message.error(value.message)
|
||||
imageLoading.value = false
|
||||
|
||||
@ -1016,7 +1016,9 @@ export default defineComponent({
|
||||
for (let i = 0; i < promptStore.GetSelectStyle.length; i++) {
|
||||
const element = promptStore.GetSelectStyle[i]
|
||||
if (element.type == 'style_main') {
|
||||
style_string += element.prompt + ', '
|
||||
if (element.prompt) {
|
||||
style_string += element.prompt + ', '
|
||||
}
|
||||
if (element.lora && element.lora != '无' && element.lora_weight) {
|
||||
style_string += `<lora:${element.lora}:${element.lora_weight}>, `
|
||||
}
|
||||
@ -1114,7 +1116,7 @@ export default defineComponent({
|
||||
}
|
||||
|
||||
console.log(prompt_str)
|
||||
prompt_str = prompt_str.replace('${style}', style_str)
|
||||
prompt_str = prompt_str.replace('${style}', style_str ? style_str : '')
|
||||
prompt_str = prompt_str.replace('${character}', character_string)
|
||||
prompt_str = prompt_str.replace('${scene}', scene_string)
|
||||
prompt_str = prompt_str.replace(
|
||||
@ -1139,7 +1141,9 @@ export default defineComponent({
|
||||
for (let i = 0; i < promptStore.GetSelectStyle.length; i++) {
|
||||
const element = promptStore.GetSelectStyle[i]
|
||||
if (element.type == 'style_main') {
|
||||
style_str += element.prompt + ', '
|
||||
if (element.prompt) {
|
||||
style_str += element.prompt + ', '
|
||||
}
|
||||
} else {
|
||||
style_str += element.english_style + ', '
|
||||
}
|
||||
|
||||
@ -91,6 +91,7 @@
|
||||
<n-input
|
||||
type="password"
|
||||
placeholder="请输入密钥"
|
||||
show-password-on="mousedown"
|
||||
v-model:value="mjSetting.apiSetting.apiKey"
|
||||
></n-input>
|
||||
</n-form-item>
|
||||
|
||||
@ -475,8 +475,8 @@ export default defineComponent({
|
||||
value: LaiAPIType.HK_PROXY
|
||||
},
|
||||
{
|
||||
label: '香港站点',
|
||||
value: LaiAPIType.HK_PROXY
|
||||
label: '备用主站点',
|
||||
value: LaiAPIType.BAK_MAIN
|
||||
}
|
||||
],
|
||||
translation_options: [
|
||||
|
||||
@ -125,7 +125,7 @@ export default defineComponent({
|
||||
// 判断当前选中的数据是不是设置完善
|
||||
let selectModel = translateSetting.value.selectModel
|
||||
let settingIndex = translateSetting.value.translates.findIndex(
|
||||
(item) => (item.name = selectModel)
|
||||
(item) => (item.name == selectModel)
|
||||
)
|
||||
if (settingIndex < 0) {
|
||||
message.error('未找到选中的数据,请检查')
|
||||
|
||||
@ -138,6 +138,7 @@ export default defineComponent({
|
||||
let audioUrl = ref(null)
|
||||
|
||||
onMounted(async () => {
|
||||
debugger
|
||||
ttsOptions.value = GetTTSSelect()
|
||||
|
||||
// 加载服务端的TTS配置(目前的TTS配置是全局的)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user