import { contextBridge, ipcRenderer } from 'electron' import { electronAPI } from '@electron-toolkit/preload' import { DEFINE_STRING } from '../define/define_string.js'; // Custom APIs for renderer let events = []; const api = { //#region 基础状态 // 获取版本信息 GetVersion: async (callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.GET_VERSION)), //#endregion // 保存通用设置 ModifySampleSetting: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.MODIFY_SAMPLE_SETTING, value)), //保存SD配置 SaveSDConfig: async (value, callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.SAVE_SD_CONFIG, value); callback(res); }, // 保存生成时间的普通设置 SaveGeneralSetting: async (value, callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.SAVE_GENERAL_SETTING, value); callback(res); }, // 获取视频的配置信息设置 GetVideoConfigMessage: async (callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.GET_VIDEO_CONFIG_MESSAGE); callback(res); }, // 加载SD设置 InitSDConfig: async (callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.INIT_SD_CONFIG); callback(res); }, // 保存任务列表信息 AddImageTask: async (value, callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.ADD_IMAGE_TASK_LIST, value); callback(res); }, // 修改任务队列信息(修改的数据是一个数组。可以添加多个和单个) ModifyImageTaskList: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.MODIFY_IMAGE_TASK_LIST, value)), // 开始自动话任务 ActionAutoVideoTask: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.ACTION_AUTO_VIDEO_TASK, value)), // 获取生成图片的队列任务 GetGenerateTaskList: async (callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.GET_GENERATE_TASK_LIST); callback(res); }, // 删除生成图片列表的消息 DeleteImageTaskList: async (value, callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.DELETE_IMAGE_TASK_LIST, value); callback(res); }, // 分镜语音识别消息 StartStoryboarding: async (value) => { let res = await ipcRenderer.invoke(DEFINE_STRING.START_STORY_BOARDING, value); }, // 获取设置的初始数据 getSettingDafultData: async (callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.GET_SETTING_Dafault_DATA)), // 获取草稿地址 getDraftFileList: async (callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.GET_DRAFT_FILE_LIST) callback(res); }, // 选择文件夹 selectFolder: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.SELECT_FOLDER, value)), // 选择指定拓展名的文件 SelectFile: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.SELECT_FILE, value)), getDraftTextStyle: async (value, callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.GET_DRAFT_TEXT_STYLE, value); callback(res); }, getTextStyleList: async (callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.GET_TEXT_STYLE_LIST); callback(res); }, deleteDraftTextStyle: async (value, callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.DELETE_DRAFT_TEXT_STYLE, value); callback(res); }, deleteClipSetting: async (value, callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.DELETE_CLIP_SETTING, value); callback(res); }, deleteClipStettingFriendlyReminder: async (value, callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.DELETE_FRIENDLY_REMINDER, value); callback(res); }, // 添加草稿 addDraft: async (value, callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.ADD_DRAFT, value); callback(res); }, // 自动合成视频 AutoGenerateVideo: async (value, callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.AUTO_GENERATION_VIDEO, value); callback(res); }, // 获取项目地址项目的所有的输出文件地址 getSubFolderList: async (value, callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.GET_SUBFOLDER_LIST, value); callback(res); }, // 提取草稿的温馨提示内容 GetFriendlyReminder: async (value, callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.GET_FRIENDLY_REMINDER_DRAFT, value); callback(res); }, // 获取温馨提示列表 getFriendlyReminderList: async (callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.GET_FRIENDLY_REMINDER_LIST); callback(res); }, // 获取剪映背景音乐配置 GetBackgroundMusicConfigList: async (callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.GET_BACKGROUND_MUSIC_CONFIG_LIST)), // 添加背景音乐文件夹 AddBackgroundMusicFolder: async (value, callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.ADD_BACKGROUND_MUSIC_FOLDER, value) callback(res); }, // 反写json文件的数据 ModifyInpurCropJson: async (value, callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.MODIFY_INPUT_CROP_JSON, value); callback(res); }, // AI 洗稿 AIModifyOneWord: async (value, callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.AIMODIFY_ONE_WORD, value) callback(res); }, // 导入字幕。对齐显示 ImportSrtAndGetTime: async (value, callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.IMPORT_SRT_AND_GET_TIME, value); callback(res); }, // 获取本地安装的字体 GetSystemInstallFontName: async (callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.GET_SYSTEM_INSTALL_FONTNAME); callback(res); }, // 保存字幕设置 SaveAssConfig: async (value, callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.SAVE_ASS_CONFIG, value); callback(res); }, // 删除字幕设置 DeleteVideoConfig: async (value, callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.DELETE_VIDEO_CONFIG, value); callback(res); }, // 保存洗稿后的文案 SaveNewWord: async (value, callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.SAVE_NEW_WORD, value); callback(res); }, // 监听分镜的时间信息 SaveCopywritingInformation: async (value, callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.SAVE_COPYWRITING_INFOMATION, value); callback(res); }, // 获取不想要的提示词 GetBadPrompt: async (callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.GET_BAD_PROMPT); callback(res); }, /** * 保存不想要的提示词 */ SaveBadPrompt: async (value, callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.SAVE_BAD_PROMPT, value); callback(res); }, /** * 一键删除不想要的值 */ DeleteBadPrompt: async (callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.DELETE_BAD_PROMPT); callback(res); }, // 一次反推 GenerateImageInSelectTask: async (value, callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.GENERATE_IMAGWE_IN_SELECT_TASK, value); callback(res); }, // 显示新的窗口 showNewWindow: (value) => { ipcRenderer.send(DEFINE_STRING.SHOW_NEW_WINDOW, value); }, // 获取机械码 GetMachineId: async (callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.GET_MACHINE_ID); callback(res); }, // 获取ADetalier配置列表 GetADetailerList: async (callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.GET_ADETAILER_LIST); callback(res); }, // 保存 ADetailer 数据 SaveADetailerConfig: async (value, callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.SAVE_DETAILER_CONFIG, value); callback(res); }, // 抽帧 getFrame: async (value, callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.GET_FRAME, value) callback(res); }, //反推提示词 PushBackPrompt: async (callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.PUSH_BACK_PROMPT) callback(res) }, // 打开指定的url,在默认浏览器中 OpenUrl: (value) => ipcRenderer.send(DEFINE_STRING.OPEN_URL, value), // 生成json文件 AddWebuiJson: async (callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.ADD_WEBUI_JSON); callback(res); }, ReGenerateImage: async (value, callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.RE_GENERATE_IAMGE_ONE, value); callback(res); }, ImproveResolution: async (value, callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.IMPROVE_IMAGE_RESOULTION, value); callback(res); }, alginDraftImg: (value, callback) => { ipcRenderer.send(DEFINE_STRING.ALIGN_DRAFT_IMG, value) ipcRenderer.on(DEFINE_STRING.PYTHON_OUTPUT, (event, value) => { callback(DEFINE_STRING.PYTHON_OUTPUT, value) }) ipcRenderer.on(DEFINE_STRING.PYTHON_CLOSE, (event, value) => { callback(DEFINE_STRING.PYTHON_CLOSE, value) }) }, alginDraftImgToText: async (value, callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.ALIGN_DRAFT_IMG_TO_TEXT, value) callback(res); }, getImagePromptList: async (callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.GET_IAMGE_PROMPT_LIST); callback(res); }, RefreshImageData: async (value, callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.REFRASH_IMAGWE_DATA, value); callback(res); }, GetProjectWord: async (callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.GET_PROJECT_WORD); callback(res); }, // 获取当前的主页使用界面信息 GetShowMessage: async (callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.GET_SHOW_MESSAGE)), // 立即返回的翻译任务 TranslateReturnNow: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.TRANSLATE_RETURN_NOW, value)), // 添加翻译添加翻译任务到队列中 TranslatePrompt: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.TRANSLATE_PROMPT, value)), // 添加事件监听 setEventListen: (value, callback) => { ipcRenderer.on(value[0], (event, value) => { callback(value); }) }, // 打开discord窗口 OpenDiscordWindow: async (callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.MAIN.OPEN_DISCORD_WINDOW)), // 获取设置的GPT提示词的咒语 GetCustomizeGptPrompt: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.GET_CUSTOMIZE_GPT_PROMPT, value)), // 生成GPT自定义提示词的案例输出 GenerateGptExampleOut: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.GENERATE_GPT_EXAMPLE_OUT, value)), //GetPermission 获取机器的权限 GetPermission: async (callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.GET_PERMISSION)), // 保存图片到指定的文件夹 SaveImageToOtherFolder: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.SAVE_IMAGE_TO_OTHER_FOLDER, value)), // 获取当前的自动保存图片的设置 GetImageAutoSaveSetting: async (callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.GET_IMAGE_AUTO_SAVE_SETTING)), // 保存图片自动保存设置 SaveImageAutoSaveSetting: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.SAVE_IMAGE_AUTO_SAVE_SETTING, value)), // 获取当前自动保存图片的方式 GetAutoSaveImageClassifyOptions: async (callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.GET_AUTO_SAVE_IMAGE_CLASSIFY_OPTIONS)), // 修改生图任务状态 ModifyGenerateTaskStatus: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.MODIFY_GENERATE_TASK_STATUS, value)), // 删除指定的后台任务 DeleteBackTask: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.DELETE_BACK_TASK, value)), // 保存生成视频的基础配置(srt地址,配音,背景音乐文件夹等) SaveVideoSrtAndAudioMessage: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.SAVE_VIDEO_SRT_AND_AUDIO_MESSAGE, value)), // 保存关键帧配置 SaveKeyFrameSetting: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.SAVE_KEY_FRAME_SETTING, value)), // 获取关键帧打帧方式列表 GetKeyFrameOptions: async (callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.GET_KEYFRAME_OPTIONS)), // 获取关键帧的配置文件 GetKeyFrameConfigData: async (callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.GET_KEY_FRAME_CONFIG_DATA)), // 保存文案数组到指定的文件 saveWordTxt: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.SAVE_WORD_TXT, value)), // 判断该当前的是否可以链接成功 TestGPTConnection: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.TEST_GPT_CONNECTION, value)), // 删除自定义的GPT服务商设置 DeleteDynamicGptOption: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.DELETE_DYNAMIC_GPT_OPTION, value)), // 保存自定义的GPT服务商设置 SaveDynamicGptOption: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.SAVE_DYNAMIC_GPT_OPTION, value)), // 获取当前默认的推理模式或者是自定义的推理模式 getGptAutoInferenceOptions: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.GET_GPT_AUTO_INFERENCE_OPTIONS, value)), // 获取当前的GPT和自定义的GPT模型 getGptModelOption: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.GET_GPT_MODEL_OPTION, value)), // 获取默认的GPT和自定义的GPT getGptBusinessOption: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.GET_GPT_BUSINESS_OPTION, value)), // 获取指定的风格菜单 GetImageStyleMenu: async (callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.GET_IMAGE_STYLE_MENU)), // 获取指定的风格ID对应的数据 GetImageStyleInfomation: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.GET_IMAGE_STYLE_INFOMATION, value)), // 获取指定的图片风格下面的图片数据 getStyleImageSubList: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.GET_STYLE_IMAGE_SUB_LIST, value)), // SD 原创生成单个图片 OriginalSDImageGenerate: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.ORIGINAL_SD_SINGLE_IMAGE_GENERATE, value)), // 自动保存数据到json文件事件 AutoSaveDataJson: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.AUTO_SAVE_DATA_JSON, value)), // GPT推理 GPTPrompt: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.GPT_PROMPT, value)), // 获取 prompt 的json配置文件 GetPromptJson: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.GET_PROMPT_JSON, value)), // SD原创添加配置文件 OriginalAddWebuiJson: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.ORIGINAL_ADD_WEBUI_JSON, value)), //获取文件的配置文件 GetConfigJson: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.GET_CONFIG_JSON, value)), // 自动分析人物事件 AutoAnalyzeCharacter: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.AUTO_ANALYZE_CHARACTER, value)), // 获取生成视频的基础设置 GetVideoGenerateConfig: async (callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.GET_VIDEO_GENERATE_CONFIG)), // 移除事件 removeEventListen: (eventName) => ipcRenderer.removeAllListeners(eventName), // 一键自动化的条件检测 AutoConditionCheck: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.AUTO_CONDITION_CHECK, value)), // 下载文件到指定的文件夹 DownloadImageFile: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.DOWNLOAD_IMAGE_FILE, value)), // 检查机器码是不是存在 CheckMachineId: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.CHECK_MACHINE_ID, value)), // 保存试用结束 SaveTrialEndTime: (value) => ipcRenderer.send(DEFINE_STRING.SAVE_TRIAL_END_TIME, value), // 打开购买GPT地址 openGptBuyUrl: (value) => ipcRenderer.send(DEFINE_STRING.OPEN_GPT_BUY_URL, value), // 打开指定的文件夹 OpenFolder: (value) => ipcRenderer.send(DEFINE_STRING.OPEN_FOLDER, value), // 退出软件 QuitApp: () => ipcRenderer.send(DEFINE_STRING.QUIT_APP), // 获取当前的生图方式,包含sd,mj,d3等 GetImageGenerateCategory: async (callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.GET_IMAGE_GENERATE_CATEGORY)), // 获取指定的配置文件里面指定的属性的数据 GetDefineConfigJsonByProperty: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.GET_DEFINE_CONFIG_JSON_BY_PROPERTY, value)), // 保存指定的配置文件里指定的属性的数据 SaveDefineConfigJsonByProperty: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.SAVE_DEFINE_CONFIG_JSON_BY_PROPERTY, value)), // 打开全局提示框 showGlobalMessageDialog: (value) => ipcRenderer.send(DEFINE_STRING.SHOW_GLOABAL_MESSAGE_DIALOG, value), // 打开全局通知框 showGlobalNotificationDialog: (value) => ipcRenderer.send(DEFINE_STRING.SHOW_MAIN_NOTIFICATION, value), } const mj = { // 保存文案信息到mj的配置文件 SvaeMJWordSrt: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.MJ.SAVE_WORD_SRT, value)), // 获取MJ配置文件的字幕信息 GetMJConfigSrtInformation: async (callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.MJ.GET_MJ_CONFIG_SRT_INFORMATION)), // 获取标签集的基础信息 GetTagDataByTypeAndProperty: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.MJ.GET_TAG_DATA_BY_TYPE_AND_PROPERTY, value)), // 保存数据到标签集中 SaveTagPropertyData: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.MJ.SAVE_TAG_PROPERTY_DATA, value)), // 删除指定的标签数据 DeleteTagPropertyData: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.MJ.DELETE_TAG_PROPERTY_DATA, value)), // 获取选择标签的模式option列表 GetTagSelectModel: async (callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.MJ.GET_TAG_SELECT_MODEL)), // 将翻译任务添加到后台队列中 TranslateReturnNowTask: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.MJ.TRANSLATE_RETURN_NOW_TASK, value)), // MJ原创生图 OriginalMJImageGenerate: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.MJ.ORIGINAL_MJ_IMAGE_GENERATE, value)), // 获取当前对话频道的机器人列表 GetChannelRobots: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.MJ.GET_CHANNEL_ROBOTS, value)), // 获取MJ生图的方式 GetMJGenerateCategory: async (callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.MJ.GET_MJ_GENERATE_CATEGORY)), // MJ生成的图片分割 ImageSplit: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.MJ.IMAGE_SPLIT, value)), // 添加MJ敏感词 AddMjBadPrompt: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.MJ.ADD_MJ_BAD_PROMPT, value)), // 添加MJ敏感词检查 MJBadPromptCheck: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.MJ.MJ_BAD_PROMPT_CHECK, value)), // 获取已经生图完成的数据,并获取图片 GetGeneratedMJImageAndSplit: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.MJ.GET_GENERATED_MJ_IMAGE_AND_SPLIT, value)), // 给图片链接,下载指定的图片并分割保存 DownloadImageUrlAndSplit : async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.MJ.DOWNLOAD_IMAGE_URL_AND_SPLIT, value)), } const discord = { // 创建MJ消息 CreateMessage: (value) => ipcRenderer.send(DEFINE_STRING.DISCORD.CREATE_MESSAGE, value), // MJ消息更新 UpdateMessage: (value) => ipcRenderer.send(DEFINE_STRING.DISCORD.UPDATE_MESSAGE, value), // MJ消息删除 DeleteMessage: (value) => ipcRenderer.send(DEFINE_STRING.DISCORD.DELETE_MESSAGE, value), } // Use `contextBridge` APIs to expose Electron APIs to // renderer only if context isolation is enabled, otherwise // just add to the DOM global. if (process.contextIsolated) { try { contextBridge.exposeInMainWorld('electron', electronAPI) contextBridge.exposeInMainWorld('api', api) contextBridge.exposeInMainWorld('mj', mj) contextBridge.exposeInMainWorld('discord', discord) contextBridge.exposeInMainWorld('darkMode', { toggle: (value) => ipcRenderer.invoke('dark-mode:toggle', value), }) } catch (error) { console.error(error) } } else { window.electron = electronAPI window.api = api; window.mj = mj; window.discord = discord; }