Compare commits

...

2 Commits

Author SHA1 Message Date
cb7d0dd23e V 3.4.3(2025.08.16)
1. 导出剪映草稿,字幕自动换行
2. 修复一键导出草稿保存数据
3. 修复 一拆四 无效
4. 适配 按主题下的导出草稿界面
2025-08-16 14:50:55 +08:00
683087d15e v 3.4.2.1 修复 一拆四 2025-08-11 14:29:58 +08:00
8 changed files with 29 additions and 27 deletions

View File

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

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,6 +417,7 @@ 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,7 +311,6 @@ 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,
@ -326,6 +325,23 @@ 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,
@ -389,7 +405,7 @@ async function AddGenerateVideoTask() {
async function AddJianyingDraft() {
softwareStore.spin.spinning = true
softwareStore.spin.tip = '正在生成剪映草稿。。。'
try {
let res = undefined
if (props.type == 'book') {
@ -437,7 +453,6 @@ 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;
}