添加组加上时长,生成视频模式修改,切换时长更新组时长信息

This commit is contained in:
小帅 2026-04-08 17:32:55 +08:00
parent ff0887f9a1
commit cb1e338216
6 changed files with 178 additions and 209 deletions

View File

@ -1,4 +1,4 @@
// @routes-hash 6a0a137590b4aff78f9d1192fc4a5eed
// @routes-hash 5f94013d5d29facaed754713858ed40b
import { Express } from "express";
import route1 from "./routes/agents/clearMemory";
@ -58,88 +58,87 @@ import route54 from "./routes/production/editImage/getImageFlow";
import route55 from "./routes/production/editImage/saveImageFlow";
import route56 from "./routes/production/editImage/updateImageFlow";
import route57 from "./routes/production/editImage/uploadImage";
import route58 from "./routes/production/exportImage";
import route59 from "./routes/production/getFlowData";
import route60 from "./routes/production/getProductionData";
import route61 from "./routes/production/getStoryboardData";
import route62 from "./routes/production/saveFlowData";
import route63 from "./routes/production/storyboard/addStoryboard";
import route64 from "./routes/production/storyboard/batchAddStoryboardInfo";
import route65 from "./routes/production/storyboard/batchGenerateImage";
import route66 from "./routes/production/storyboard/downPreviewImage";
import route67 from "./routes/production/storyboard/editStoryboardInfo";
import route68 from "./routes/production/storyboard/getStoryboardData";
import route69 from "./routes/production/storyboard/pollingImage";
import route70 from "./routes/production/storyboard/previewImage";
import route71 from "./routes/production/storyboard/removeFrame";
import route72 from "./routes/production/storyboard/updateStoryboardUrl";
import route73 from "./routes/production/workbench/addTrack";
import route74 from "./routes/production/workbench/deleteTrack";
import route75 from "./routes/production/workbench/delVideo";
import route76 from "./routes/production/workbench/generateVideo";
import route77 from "./routes/production/workbench/generateVideoPrompt";
import route78 from "./routes/production/workbench/getGenerateData";
import route79 from "./routes/production/workbench/getVideoList";
import route80 from "./routes/production/workbench/getVideoModelDetail";
import route81 from "./routes/production/workbench/selectVideo";
import route82 from "./routes/production/workbench/updateVideoPrompt";
import route83 from "./routes/project/addDirectorManual";
import route84 from "./routes/project/addProject";
import route85 from "./routes/project/addVisualManual";
import route86 from "./routes/project/deleteDirectorManual";
import route87 from "./routes/project/deleteVisualManual";
import route88 from "./routes/project/delProject";
import route89 from "./routes/project/editDirectorlManual";
import route90 from "./routes/project/editProject";
import route91 from "./routes/project/editVisualManual";
import route92 from "./routes/project/getProject";
import route93 from "./routes/project/getVisualManual";
import route94 from "./routes/project/queryDirectorManual";
import route95 from "./routes/project/visualManual";
import route96 from "./routes/script/addScript";
import route97 from "./routes/script/batchAddScript";
import route98 from "./routes/script/delScript";
import route99 from "./routes/script/exportScript";
import route100 from "./routes/script/extractAssets";
import route101 from "./routes/script/getScrptApi";
import route102 from "./routes/script/pollScriptAssets";
import route103 from "./routes/script/updateScript";
import route104 from "./routes/scriptAgent/getPlanData";
import route105 from "./routes/scriptAgent/setPlanData";
import route106 from "./routes/scriptAgent/updateData";
import route107 from "./routes/setting/about/checkUpdate";
import route108 from "./routes/setting/about/downloadApp";
import route109 from "./routes/setting/agentDeploy/agentSetKey";
import route110 from "./routes/setting/agentDeploy/deployAgentModel";
import route111 from "./routes/setting/agentDeploy/getAgentDeploy";
import route112 from "./routes/setting/dbConfig/clearData";
import route113 from "./routes/setting/dev/getSwitchAiDevTool";
import route114 from "./routes/setting/dev/updateSwitchAiDevTool";
import route115 from "./routes/setting/fileManagement/openFolder";
import route116 from "./routes/setting/getTextModel";
import route117 from "./routes/setting/loginConfig/getUser";
import route118 from "./routes/setting/loginConfig/updateUserPwd";
import route119 from "./routes/setting/memoryConfig/delAllMemory";
import route120 from "./routes/setting/memoryConfig/getMemory";
import route121 from "./routes/setting/memoryConfig/sureMemory";
import route122 from "./routes/setting/promptManage/getPrompt";
import route123 from "./routes/setting/promptManage/updatePrompt";
import route124 from "./routes/setting/skillManagement/getSkillContent";
import route125 from "./routes/setting/skillManagement/getSkillList";
import route126 from "./routes/setting/skillManagement/saveSkillContent";
import route127 from "./routes/setting/vendorConfig/addVendor";
import route128 from "./routes/setting/vendorConfig/deleteVendor";
import route129 from "./routes/setting/vendorConfig/enableVendor";
import route130 from "./routes/setting/vendorConfig/getCodeByLink";
import route131 from "./routes/setting/vendorConfig/getVendorList";
import route132 from "./routes/setting/vendorConfig/modelTest";
import route133 from "./routes/setting/vendorConfig/updateCode";
import route134 from "./routes/setting/vendorConfig/updateVendor";
import route135 from "./routes/task/getProject";
import route136 from "./routes/task/getTaskApi";
import route137 from "./routes/task/getTaskCategories";
import route138 from "./routes/task/taskDetails";
import route139 from "./routes/test/test";
import route58 from "./routes/production/getFlowData";
import route59 from "./routes/production/getProductionData";
import route60 from "./routes/production/getStoryboardData";
import route61 from "./routes/production/saveFlowData";
import route62 from "./routes/production/storyboard/addStoryboard";
import route63 from "./routes/production/storyboard/batchAddStoryboardInfo";
import route64 from "./routes/production/storyboard/batchGenerateImage";
import route65 from "./routes/production/storyboard/downPreviewImage";
import route66 from "./routes/production/storyboard/editStoryboardInfo";
import route67 from "./routes/production/storyboard/getStoryboardData";
import route68 from "./routes/production/storyboard/pollingImage";
import route69 from "./routes/production/storyboard/previewImage";
import route70 from "./routes/production/storyboard/removeFrame";
import route71 from "./routes/production/storyboard/updateStoryboardUrl";
import route72 from "./routes/production/workbench/addTrack";
import route73 from "./routes/production/workbench/deleteTrack";
import route74 from "./routes/production/workbench/delVideo";
import route75 from "./routes/production/workbench/generateVideo";
import route76 from "./routes/production/workbench/generateVideoPrompt";
import route77 from "./routes/production/workbench/getGenerateData";
import route78 from "./routes/production/workbench/getVideoList";
import route79 from "./routes/production/workbench/getVideoModelDetail";
import route80 from "./routes/production/workbench/selectVideo";
import route81 from "./routes/production/workbench/updateVideoPrompt";
import route82 from "./routes/project/addDirectorManual";
import route83 from "./routes/project/addProject";
import route84 from "./routes/project/addVisualManual";
import route85 from "./routes/project/deleteDirectorManual";
import route86 from "./routes/project/deleteVisualManual";
import route87 from "./routes/project/delProject";
import route88 from "./routes/project/editDirectorlManual";
import route89 from "./routes/project/editProject";
import route90 from "./routes/project/editVisualManual";
import route91 from "./routes/project/getProject";
import route92 from "./routes/project/getVisualManual";
import route93 from "./routes/project/queryDirectorManual";
import route94 from "./routes/project/visualManual";
import route95 from "./routes/script/addScript";
import route96 from "./routes/script/batchAddScript";
import route97 from "./routes/script/delScript";
import route98 from "./routes/script/exportScript";
import route99 from "./routes/script/extractAssets";
import route100 from "./routes/script/getScrptApi";
import route101 from "./routes/script/pollScriptAssets";
import route102 from "./routes/script/updateScript";
import route103 from "./routes/scriptAgent/getPlanData";
import route104 from "./routes/scriptAgent/setPlanData";
import route105 from "./routes/scriptAgent/updateData";
import route106 from "./routes/setting/about/checkUpdate";
import route107 from "./routes/setting/about/downloadApp";
import route108 from "./routes/setting/agentDeploy/agentSetKey";
import route109 from "./routes/setting/agentDeploy/deployAgentModel";
import route110 from "./routes/setting/agentDeploy/getAgentDeploy";
import route111 from "./routes/setting/dbConfig/clearData";
import route112 from "./routes/setting/dev/getSwitchAiDevTool";
import route113 from "./routes/setting/dev/updateSwitchAiDevTool";
import route114 from "./routes/setting/fileManagement/openFolder";
import route115 from "./routes/setting/getTextModel";
import route116 from "./routes/setting/loginConfig/getUser";
import route117 from "./routes/setting/loginConfig/updateUserPwd";
import route118 from "./routes/setting/memoryConfig/delAllMemory";
import route119 from "./routes/setting/memoryConfig/getMemory";
import route120 from "./routes/setting/memoryConfig/sureMemory";
import route121 from "./routes/setting/promptManage/getPrompt";
import route122 from "./routes/setting/promptManage/updatePrompt";
import route123 from "./routes/setting/skillManagement/getSkillContent";
import route124 from "./routes/setting/skillManagement/getSkillList";
import route125 from "./routes/setting/skillManagement/saveSkillContent";
import route126 from "./routes/setting/vendorConfig/addVendor";
import route127 from "./routes/setting/vendorConfig/deleteVendor";
import route128 from "./routes/setting/vendorConfig/enableVendor";
import route129 from "./routes/setting/vendorConfig/getCodeByLink";
import route130 from "./routes/setting/vendorConfig/getVendorList";
import route131 from "./routes/setting/vendorConfig/modelTest";
import route132 from "./routes/setting/vendorConfig/updateCode";
import route133 from "./routes/setting/vendorConfig/updateVendor";
import route134 from "./routes/task/getProject";
import route135 from "./routes/task/getTaskApi";
import route136 from "./routes/task/getTaskCategories";
import route137 from "./routes/task/taskDetails";
import route138 from "./routes/test/test";
export default async (app: Express) => {
app.use("/api/agents/clearMemory", route1);
@ -199,86 +198,85 @@ export default async (app: Express) => {
app.use("/api/production/editImage/saveImageFlow", route55);
app.use("/api/production/editImage/updateImageFlow", route56);
app.use("/api/production/editImage/uploadImage", route57);
app.use("/api/production/exportImage", route58);
app.use("/api/production/getFlowData", route59);
app.use("/api/production/getProductionData", route60);
app.use("/api/production/getStoryboardData", route61);
app.use("/api/production/saveFlowData", route62);
app.use("/api/production/storyboard/addStoryboard", route63);
app.use("/api/production/storyboard/batchAddStoryboardInfo", route64);
app.use("/api/production/storyboard/batchGenerateImage", route65);
app.use("/api/production/storyboard/downPreviewImage", route66);
app.use("/api/production/storyboard/editStoryboardInfo", route67);
app.use("/api/production/storyboard/getStoryboardData", route68);
app.use("/api/production/storyboard/pollingImage", route69);
app.use("/api/production/storyboard/previewImage", route70);
app.use("/api/production/storyboard/removeFrame", route71);
app.use("/api/production/storyboard/updateStoryboardUrl", route72);
app.use("/api/production/workbench/addTrack", route73);
app.use("/api/production/workbench/deleteTrack", route74);
app.use("/api/production/workbench/delVideo", route75);
app.use("/api/production/workbench/generateVideo", route76);
app.use("/api/production/workbench/generateVideoPrompt", route77);
app.use("/api/production/workbench/getGenerateData", route78);
app.use("/api/production/workbench/getVideoList", route79);
app.use("/api/production/workbench/getVideoModelDetail", route80);
app.use("/api/production/workbench/selectVideo", route81);
app.use("/api/production/workbench/updateVideoPrompt", route82);
app.use("/api/project/addDirectorManual", route83);
app.use("/api/project/addProject", route84);
app.use("/api/project/addVisualManual", route85);
app.use("/api/project/deleteDirectorManual", route86);
app.use("/api/project/deleteVisualManual", route87);
app.use("/api/project/delProject", route88);
app.use("/api/project/editDirectorlManual", route89);
app.use("/api/project/editProject", route90);
app.use("/api/project/editVisualManual", route91);
app.use("/api/project/getProject", route92);
app.use("/api/project/getVisualManual", route93);
app.use("/api/project/queryDirectorManual", route94);
app.use("/api/project/visualManual", route95);
app.use("/api/script/addScript", route96);
app.use("/api/script/batchAddScript", route97);
app.use("/api/script/delScript", route98);
app.use("/api/script/exportScript", route99);
app.use("/api/script/extractAssets", route100);
app.use("/api/script/getScrptApi", route101);
app.use("/api/script/pollScriptAssets", route102);
app.use("/api/script/updateScript", route103);
app.use("/api/scriptAgent/getPlanData", route104);
app.use("/api/scriptAgent/setPlanData", route105);
app.use("/api/scriptAgent/updateData", route106);
app.use("/api/setting/about/checkUpdate", route107);
app.use("/api/setting/about/downloadApp", route108);
app.use("/api/setting/agentDeploy/agentSetKey", route109);
app.use("/api/setting/agentDeploy/deployAgentModel", route110);
app.use("/api/setting/agentDeploy/getAgentDeploy", route111);
app.use("/api/setting/dbConfig/clearData", route112);
app.use("/api/setting/dev/getSwitchAiDevTool", route113);
app.use("/api/setting/dev/updateSwitchAiDevTool", route114);
app.use("/api/setting/fileManagement/openFolder", route115);
app.use("/api/setting/getTextModel", route116);
app.use("/api/setting/loginConfig/getUser", route117);
app.use("/api/setting/loginConfig/updateUserPwd", route118);
app.use("/api/setting/memoryConfig/delAllMemory", route119);
app.use("/api/setting/memoryConfig/getMemory", route120);
app.use("/api/setting/memoryConfig/sureMemory", route121);
app.use("/api/setting/promptManage/getPrompt", route122);
app.use("/api/setting/promptManage/updatePrompt", route123);
app.use("/api/setting/skillManagement/getSkillContent", route124);
app.use("/api/setting/skillManagement/getSkillList", route125);
app.use("/api/setting/skillManagement/saveSkillContent", route126);
app.use("/api/setting/vendorConfig/addVendor", route127);
app.use("/api/setting/vendorConfig/deleteVendor", route128);
app.use("/api/setting/vendorConfig/enableVendor", route129);
app.use("/api/setting/vendorConfig/getCodeByLink", route130);
app.use("/api/setting/vendorConfig/getVendorList", route131);
app.use("/api/setting/vendorConfig/modelTest", route132);
app.use("/api/setting/vendorConfig/updateCode", route133);
app.use("/api/setting/vendorConfig/updateVendor", route134);
app.use("/api/task/getProject", route135);
app.use("/api/task/getTaskApi", route136);
app.use("/api/task/getTaskCategories", route137);
app.use("/api/task/taskDetails", route138);
app.use("/api/test/test", route139);
app.use("/api/production/getFlowData", route58);
app.use("/api/production/getProductionData", route59);
app.use("/api/production/getStoryboardData", route60);
app.use("/api/production/saveFlowData", route61);
app.use("/api/production/storyboard/addStoryboard", route62);
app.use("/api/production/storyboard/batchAddStoryboardInfo", route63);
app.use("/api/production/storyboard/batchGenerateImage", route64);
app.use("/api/production/storyboard/downPreviewImage", route65);
app.use("/api/production/storyboard/editStoryboardInfo", route66);
app.use("/api/production/storyboard/getStoryboardData", route67);
app.use("/api/production/storyboard/pollingImage", route68);
app.use("/api/production/storyboard/previewImage", route69);
app.use("/api/production/storyboard/removeFrame", route70);
app.use("/api/production/storyboard/updateStoryboardUrl", route71);
app.use("/api/production/workbench/addTrack", route72);
app.use("/api/production/workbench/deleteTrack", route73);
app.use("/api/production/workbench/delVideo", route74);
app.use("/api/production/workbench/generateVideo", route75);
app.use("/api/production/workbench/generateVideoPrompt", route76);
app.use("/api/production/workbench/getGenerateData", route77);
app.use("/api/production/workbench/getVideoList", route78);
app.use("/api/production/workbench/getVideoModelDetail", route79);
app.use("/api/production/workbench/selectVideo", route80);
app.use("/api/production/workbench/updateVideoPrompt", route81);
app.use("/api/project/addDirectorManual", route82);
app.use("/api/project/addProject", route83);
app.use("/api/project/addVisualManual", route84);
app.use("/api/project/deleteDirectorManual", route85);
app.use("/api/project/deleteVisualManual", route86);
app.use("/api/project/delProject", route87);
app.use("/api/project/editDirectorlManual", route88);
app.use("/api/project/editProject", route89);
app.use("/api/project/editVisualManual", route90);
app.use("/api/project/getProject", route91);
app.use("/api/project/getVisualManual", route92);
app.use("/api/project/queryDirectorManual", route93);
app.use("/api/project/visualManual", route94);
app.use("/api/script/addScript", route95);
app.use("/api/script/batchAddScript", route96);
app.use("/api/script/delScript", route97);
app.use("/api/script/exportScript", route98);
app.use("/api/script/extractAssets", route99);
app.use("/api/script/getScrptApi", route100);
app.use("/api/script/pollScriptAssets", route101);
app.use("/api/script/updateScript", route102);
app.use("/api/scriptAgent/getPlanData", route103);
app.use("/api/scriptAgent/setPlanData", route104);
app.use("/api/scriptAgent/updateData", route105);
app.use("/api/setting/about/checkUpdate", route106);
app.use("/api/setting/about/downloadApp", route107);
app.use("/api/setting/agentDeploy/agentSetKey", route108);
app.use("/api/setting/agentDeploy/deployAgentModel", route109);
app.use("/api/setting/agentDeploy/getAgentDeploy", route110);
app.use("/api/setting/dbConfig/clearData", route111);
app.use("/api/setting/dev/getSwitchAiDevTool", route112);
app.use("/api/setting/dev/updateSwitchAiDevTool", route113);
app.use("/api/setting/fileManagement/openFolder", route114);
app.use("/api/setting/getTextModel", route115);
app.use("/api/setting/loginConfig/getUser", route116);
app.use("/api/setting/loginConfig/updateUserPwd", route117);
app.use("/api/setting/memoryConfig/delAllMemory", route118);
app.use("/api/setting/memoryConfig/getMemory", route119);
app.use("/api/setting/memoryConfig/sureMemory", route120);
app.use("/api/setting/promptManage/getPrompt", route121);
app.use("/api/setting/promptManage/updatePrompt", route122);
app.use("/api/setting/skillManagement/getSkillContent", route123);
app.use("/api/setting/skillManagement/getSkillList", route124);
app.use("/api/setting/skillManagement/saveSkillContent", route125);
app.use("/api/setting/vendorConfig/addVendor", route126);
app.use("/api/setting/vendorConfig/deleteVendor", route127);
app.use("/api/setting/vendorConfig/enableVendor", route128);
app.use("/api/setting/vendorConfig/getCodeByLink", route129);
app.use("/api/setting/vendorConfig/getVendorList", route130);
app.use("/api/setting/vendorConfig/modelTest", route131);
app.use("/api/setting/vendorConfig/updateCode", route132);
app.use("/api/setting/vendorConfig/updateVendor", route133);
app.use("/api/task/getProject", route134);
app.use("/api/task/getTaskApi", route135);
app.use("/api/task/getTaskCategories", route136);
app.use("/api/task/taskDetails", route137);
app.use("/api/test/test", route138);
}

View File

@ -1,40 +0,0 @@
import express from "express";
import u from "@/utils";
import { z } from "zod";
import { success } from "@/lib/responseFormat";
import { validateFields } from "@/middleware/middleware";
const router = express.Router();
import compressing from "compressing";
import path from "path";
import getPath from "@/utils/getPath";
export default router.post(
"/",
validateFields({
shotId: z.array(
z.object({
id: z.string(),
}),
),
}),
async (req, res) => {
const { shotId } = req.body;
const id = shotId.map((item: { id: string }) => item.id);
const data = await u.db("o_storyboard").whereIn("id", id);
const result = await Promise.all(
data.map(async (item) => {
const url = await u.oss.getFileUrl(item.filePath!);
return { ...item, url };
}),
);
const zipStream = new compressing.zip.Stream();
result.forEach((item, index) => {
const ext = (item.filePath?.split(".").pop() || "png").toLowerCase();
const absPath = path.join(getPath("oss"), item.filePath!);
zipStream.addEntry(absPath, { relativePath: `${index}.${ext}` });
});
res.setHeader("Content-Type", "application/zip");
res.setHeader("Content-Disposition", "attachment; filename=export.zip");
zipStream.pipe(res);
},
);

View File

@ -9,12 +9,14 @@ export default router.post(
validateFields({
projectId: z.number(),
scriptId: z.number(),
duration: z.number().optional(),
}),
async (req, res) => {
const { projectId, scriptId } = req.body;
const { projectId, scriptId, duration } = req.body;
const [id] = await u.db("o_videoTrack").insert({
projectId,
scriptId,
duration,
});
res.status(200).send(success(id));
},

View File

@ -38,6 +38,13 @@ export default router.post(
}),
async (req, res) => {
const { scriptId, projectId, prompt, uploadData, model, duration, resolution, audio, mode, trackId } = req.body;
let modeData = [];
if (Array.isArray(mode)) {
} else if (typeof mode === "string" && mode.startsWith('["') && mode.endsWith('"]')) {
try {
modeData = JSON.parse(mode);
} catch (e) {}
}
//获取生成视频比例
const ratio = await u.db("o_project").select("videoRatio").where("id", projectId).first();
const videoPath = `/${projectId}/video/${uuidv4()}.mp4`; //视频保存路径
@ -89,7 +96,7 @@ export default router.post(
{
prompt,
imageBase64: base64.filter((item) => item !== null) as string[],
mode,
mode: modeData.length > 0 ? modeData : mode,
duration,
aspectRatio: (ratio?.videoRatio as `${number}:${number}`) || "16:9",
resolution,

View File

@ -138,7 +138,7 @@ export default router.post(
.map(async (v) => ({
id: v.id!,
src: v.filePath ? await u.oss.getFileUrl(v.filePath) : "",
state: v.state === "done" ? "已完成" : v.state === "generating" ? "生成中" : v.state === "error" ? "生成失败" : "未生成",
state: v.state === "已完成" ? "已完成" : v.state === "生成中" ? "生成中" : v.state === "生成失败" ? "生成失败" : "未生成",
})),
),
});

View File

@ -9,11 +9,13 @@ export default router.post(
validateFields({
id: z.number(),
prompt: z.string().optional(),
duration: z.number().optional(),
}),
async (req, res) => {
const { id, prompt } = req.body;
const { id, prompt, duration } = req.body;
await u.db("o_videoTrack").where("id", id).update({
prompt,
duration,
});
res.status(200).send(success("更新成功"));
},