v 3.4.2
1. 新增 图/文转视频 菜单界面,专注实现图/文转视频(目前只集成了 MJ VIDEO) 1. 全新的界面排列,小说列表和批次任务更加分明 2. 添加转视频进度,在主界面即可看到转视频的比例 3. 单独的界面去处理图转视频,避免表格数据过多繁琐 4. 新增分页显示,界面加载更快,也可切换不分页,需要更多的事件等待加载 5. 单独操作面板,参数修改处理更加清晰,支持多种模式显示,右侧固定或抽屉模式 6. 批量设置转视频配置,可以批量修改分类 7. 友好的选择视频界面 2. 重写 软件导出剪映,修复若干草稿导出问题 1. 修复导出剪映文案和图片对齐会有些许对不上,时长越长越明显 2. 修复导出草稿关键帧部分问题 3. 导出的文案通过分镜自动导入,不再需要手动选择SRT 3. 美化 生成草稿界面 弹窗,优化部分逻辑 1. 删除选择SRT文件,SRT根据聚合推文中导入的SRT自动生成草稿 2. 只需选择配音文件即可,配音文件和导入的SRT请自行对应 3. 背景音乐不在内部设置,自行选择文件夹或者是MP3、WAV文件 4. 背景音乐选择文件夹则读取文件夹,随机获取一个 5. 背景音乐选择指定的音乐文件则使用选择的
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
import { errorMessage, successMessage } from "@/main/Public/generalTools";
|
||||
import { BookBasicHandle } from "../bookBasicHandle";
|
||||
import { ImageToVideoModels } from "@/define/enum/video";
|
||||
import { MJVideoService } from "../../video/mjVideo";
|
||||
import { isEmpty } from "lodash";
|
||||
import { GeneralResponse } from "@/model/generalResponse";
|
||||
|
||||
|
||||
export class BookImageTextToVideoCategory extends BookBasicHandle {
|
||||
mjVideoService: MJVideoService
|
||||
constructor() {
|
||||
super();
|
||||
this.mjVideoService = new MJVideoService();
|
||||
}
|
||||
|
||||
/**
|
||||
* 重新加载视频任务信息
|
||||
*
|
||||
* 根据小说分镜的ID重新获取视频任务的信息。该方法会检查小说分镜数据是否存在,
|
||||
* 视频消息数据是否存在,视频任务ID是否存在,然后根据视频类型调用相应的服务
|
||||
* 重新加载视频任务。
|
||||
*
|
||||
* @param bookTaskDetailId - 小说分镜的ID
|
||||
* @returns 成功时返回任务信息,失败时返回错误信息
|
||||
* @throws 如果重新加载过程中发生错误
|
||||
*/
|
||||
async ReloadVideoTaskInfo(bookTaskDetailId: string) {
|
||||
try {
|
||||
await this.InitBookBasicHandle()
|
||||
let bookTaskDetail = this.bookTaskDetailService.GetBookTaskDetailDataById(bookTaskDetailId);
|
||||
if (bookTaskDetail == null) {
|
||||
return errorMessage('没有找到对应的小说分镜数据,请先添加小说分镜', 'BookImageTextToVideoCategory_ReloadVideoTaskInfo');
|
||||
}
|
||||
|
||||
let videoMessage = bookTaskDetail.videoMessage;
|
||||
if (videoMessage == null) {
|
||||
return errorMessage('没有找到对应的小说分镜的视频消息数据,请先添加视频消息', 'BookImageTextToVideoCategory_ReloadVideoTaskInfo');
|
||||
}
|
||||
|
||||
if (isEmpty(videoMessage.taskId)) {
|
||||
return errorMessage('没有找到对应的小说分镜的视频任务ID,请先添加视频任务', 'BookImageTextToVideoCategory_ReloadVideoTaskInfo');
|
||||
}
|
||||
|
||||
let res: GeneralResponse.ErrorItem | GeneralResponse.SuccessItem;
|
||||
switch (videoMessage.videoType) {
|
||||
case ImageToVideoModels.MJ_VIDEO:
|
||||
res = await this.mjVideoService.ReloadMJVideoTask(bookTaskDetail, videoMessage.taskId);
|
||||
break;
|
||||
default:
|
||||
return errorMessage('不支持的视频类型,请检查视频类型', 'BookImageTextToVideoCategory_ReloadVideoTaskInfo');
|
||||
}
|
||||
|
||||
// 检查返回结果
|
||||
if (res.code != 1) {
|
||||
return errorMessage(res.message, 'BookImageTextToVideoCategory_ReloadVideoTaskInfo');
|
||||
}
|
||||
return successMessage(res.data, res.message, 'BookImageTextToVideoCategory_ReloadVideoTaskInfo');
|
||||
|
||||
} catch (error) {
|
||||
return errorMessage('重新下载视频任务失败,错误信息:' + error.message, 'BookImageTextToVideoCategory_ReloadVideoTaskInfo');
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,12 +1,15 @@
|
||||
import { BookImageTextToVideoInfo } from "./bookImageTextToVideoInfo";
|
||||
import { BookImageTextToVideoCategory } from "./bookImageTextToVideoCategory";
|
||||
|
||||
|
||||
export class BookImageTextToVideoIndex {
|
||||
|
||||
bookImageTextToVideoInfo: BookImageTextToVideoInfo;
|
||||
bookImageTextToVideoCategory: BookImageTextToVideoCategory
|
||||
|
||||
constructor() {
|
||||
this.bookImageTextToVideoInfo = new BookImageTextToVideoInfo();
|
||||
this.bookImageTextToVideoCategory = new BookImageTextToVideoCategory();
|
||||
}
|
||||
|
||||
//#region Info
|
||||
@@ -14,9 +17,16 @@ export class BookImageTextToVideoIndex {
|
||||
/** 获取用于视频生成的小说信息列表 根据查询条件返回小说数据,如果指定了bookTaskId,则返回对应小说的单个任务数据 否则返回所有启用了视频生成功能的小说及其任务数据 */
|
||||
GetVideoBookInfoList = async (condition: BookVideo.BookVideoInfoListQuertCondition) => await this.bookImageTextToVideoInfo.GetVideoBookInfoList(condition)
|
||||
|
||||
|
||||
|
||||
/** 获取小说图片和视频生成的进度信息 根据提供的参数查询指定小说或小说任务的图片和视频生成进度 */
|
||||
GetBookImageAndVideoProgress = async (bookId?: string, bookTaskId?: string) => await this.bookImageTextToVideoInfo.GetBookImageAndVideoProgress(bookId, bookTaskId);
|
||||
|
||||
//#endregion
|
||||
|
||||
//#region Category
|
||||
|
||||
ReloadVideoTaskInfo = async (bookTaskDetailId: string) => await this.bookImageTextToVideoCategory.ReloadVideoTaskInfo(bookTaskDetailId);
|
||||
|
||||
//#endregion
|
||||
|
||||
}
|
||||
@@ -234,7 +234,7 @@ export class BookImageTextToVideoInfo extends BookBasicHandle {
|
||||
imageProgress += 1;
|
||||
}
|
||||
// 检查视频信息
|
||||
if (!isEmpty(bookTaskDetail.videoPath) && await CheckFileOrDirExist(bookTaskDetail.videoPath)) {
|
||||
if (!isEmpty(bookTaskDetail.generateVideoPath) && await CheckFileOrDirExist(bookTaskDetail.generateVideoPath)) {
|
||||
videoProgress += 1;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user