Compare commits

..

No commits in common. "cb7d0dd23e842df83f5c1a62b18300c6ddc5ac62" and "82ec437b5d46412336d272b3d0e4125f80ebb83a" have entirely different histories.

8 changed files with 27 additions and 29 deletions

View File

@ -1,6 +1,6 @@
{
"name": "laitool",
"version": "3.4.3",
"version": "3.4.2",
"description": "An AI tool for image processing, video processing, and other functions.",
"main": "./out/main/index.js",
"author": "laitool.cn",

Binary file not shown.

View File

@ -1,10 +1,24 @@
export const SoftwareData = {
"version": "V3.4.3",
"date": "2025-08-16",
"version": "V3.4.2",
"date": "2025-08-08",
"notes": [
"1. 导出剪映草稿,字幕自动换行",
"2. 修复一键导出草稿保存数据",
"3. 修复 一拆四 无效",
"4. 适配 按主题下的导出草稿界面"
"1. 新增图/文转视频菜单界面,专注实现图/文转视频(目前只集成了 MJ VIDEO",
" • 全新的界面排列,小说列表和批次任务更加分明",
" • 添加转视频进度,在主界面即可看到转视频的比例",
" • 单独的界面去处理图转视频,避免表格数据过多繁琐",
" • 新增分页显示,界面加载更快,也可切换不分页",
" • 单独操作面板,参数修改处理更加清晰,支持多种模式显示",
" • 批量设置转视频配置,可以批量修改分类",
" • 友好的选择视频界面",
"2. 重写软件导出剪映,修复若干草稿导出问题",
" • 修复导出剪映文案和图片对齐问题,解决时长越长越明显的对不上问题",
" • 修复导出草稿关键帧部分问题",
" • 导出的文案通过分镜自动导入不再需要手动选择SRT",
"3. 美化生成草稿界面弹窗,优化部分逻辑",
" • 删除选择SRT文件SRT根据聚合推文中导入的SRT自动生成草稿",
" • 只需选择配音文件即可配音文件和导入的SRT请自行对应",
" • 背景音乐不在内部设置自行选择文件夹或者是MP3、WAV文件",
" • 背景音乐选择文件夹则读取文件夹,随机获取一个",
" • 背景音乐选择指定的音乐文件则使用选择的"
]
}

View File

@ -138,7 +138,7 @@ export class BookTask {
}
}
if (!isEmpty(bookTask.videoCategory)) {
if(!isEmpty(bookTask.videoCategory)){
videoCategory = bookTask.videoCategory;
}
@ -163,7 +163,7 @@ export class BookTask {
prefixPrompt: addNewBookTask.prefixPrompt ??= undefined,
suffixPrompt: addNewBookTask.suffixPrompt ?? undefined,
imageCategory: imageCategory,
videoCategory: videoCategory,
videoCategory : videoCategory,
subImageFolder: [],
draftSrtStyle: undefined,
backgroundMusic: bookTask.backgroundMusic ??= undefined,
@ -417,7 +417,6 @@ export class BookTask {
suffixPrompt: sourceBookTask.suffixPrompt,
version: sourceBookTask.version,
imageCategory: sourceBookTask.imageCategory,
videoCategory: sourceBookTask.videoCategory ?? ImageToVideoModels.MJ_VIDEO,
openVideoGenerate: sourceBookTask.openVideoGenerate == null ? false : sourceBookTask.openVideoGenerate,
} as Book.SelectBookTask

View File

@ -15,10 +15,10 @@ import { define } from "../../../define/define";
import { ValidateJson } from "../../../define/Tools/validate";
import BookSetting from "@/main/setting/bookSetting";
import util from 'util';
import { spawn, exec } from 'child_process';
import { SendMessageToRenderer } from "../globalService";
import { TaskModal } from "@/model/task";
import compressing from "compressing";
import { spawn, exec } from 'child_process';
const execAsync = util.promisify(exec);
export class BookVideo {

View File

@ -311,6 +311,7 @@ async function UseBookVideoDataToBookTask() {
* 保存数据
*/
async function SaveVideoData() {
console.log('SaveVideoData', bookTask.value)
if (props.type == 'book') {
let res = await window.db.UpdateBookData(bookTask.value.id, {
srtPath: bookTask.value.srtPath,
@ -325,23 +326,6 @@ async function SaveVideoData() {
} else {
message.success('保存小说数据成功')
}
for (let i = 0; i < props.selectBookTask.length; i++) {
const element = props.selectBookTask[i]
let res = await window.db.UpdateBookTaskData(element, {
srtPath: bookTask.value.srtPath,
audioPath: bookTask.value.audioPath,
backgroundMusic: bookTask.value.backgroundMusic,
friendlyReminder: bookTask.value.friendlyReminder,
draftSrtStyle: bookTask.value.draftSrtStyle,
draftDepend: bookTask.value.draftDepend
})
if (res.code == 0) {
message.error(res.message)
} else {
message.success('保存小说批次数据成功')
}
}
} else if (props.type == 'bookTask') {
let res = await window.db.UpdateBookTaskData(bookTask.value.id, {
srtPath: bookTask.value.srtPath,
@ -405,7 +389,7 @@ async function AddGenerateVideoTask() {
async function AddJianyingDraft() {
softwareStore.spin.spinning = true
softwareStore.spin.tip = '正在生成剪映草稿。。。'
try {
let res = undefined
if (props.type == 'book') {
@ -453,6 +437,7 @@ const rules = ref({
border-radius: 16px;
border: none;
backdrop-filter: blur(10px);
background: rgba(255, 255, 255, 0.95);
animation: fadeInUp 0.6s ease-out;
}