From 8bbd3d319cbd46dac94a825c22107b0b6a6cec54 Mon Sep 17 00:00:00 2001
From: zhishi <1951671751@qq.com>
Date: Wed, 1 Apr 2026 00:40:37 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=83=A8=E5=88=86bug?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
data/skills/production_agent_decision.md | 16 +-
data/skills/production_agent_execution.md | 10 +-
src/agents/productionAgent/tools.ts | 13 +-
src/router.ts | 312 +++++++++---------
.../batchGenerateImageAssets.ts | 2 +-
.../production/editImage/getDefaultProject.ts | 19 ++
src/routes/production/exportImage.ts | 4 +-
src/routes/production/saveFlowData.ts | 2 +-
8 files changed, 201 insertions(+), 177 deletions(-)
create mode 100644 src/routes/production/editImage/getDefaultProject.ts
diff --git a/data/skills/production_agent_decision.md b/data/skills/production_agent_decision.md
index 6c23eaa..055f210 100644
--- a/data/skills/production_agent_decision.md
+++ b/data/skills/production_agent_decision.md
@@ -104,17 +104,27 @@
---
-### 阶段5:生成分镜
+### 阶段5:构建分镜面板
+
+| 项 | 说明 |
+|----|------|
+| 派发 | 执行层调将分镜表拆分生成分镜面板 |
+| 输出 | 生成的分镜面板 |
+| 前置条件 | 阶段4完成且用户确认 |
+| 审核 | 不需要 |
+
+
+### 阶段6:生成分镜
| 项 | 说明 |
|----|------|
| 派发 | 执行层调用图片生成接口生成分镜图片 |
| 输出 | 生成的分镜图片 |
-| 前置条件 | 阶段4完成且用户确认 |
+| 前置条件 | 阶段5完成且用户确认 |
| 审核 | 不需要 |
+**阶段特有约束:** `generate_storyboard_images({ ids: [真实分镜ID列表] })` 中的 ids参数 必须指向分镜面板中实际存在的分镜Id。
**决策层行为:** 执行层返回确认后,告知用户图片生成已启动,流程结束。
-
---
## 调度与派发规范
diff --git a/data/skills/production_agent_execution.md b/data/skills/production_agent_execution.md
index e4dd8ac..6b3f39f 100644
--- a/data/skills/production_agent_execution.md
+++ b/data/skills/production_agent_execution.md
@@ -386,14 +386,18 @@ add_deriveAsset({
| 操作 | 调用 |
|------|------|
| 读取剧本 | `get_flowData("script")` |
-| 生成图片 | `generate_storyboard_images({ script: 剧本文本 })` |
+| 读取分镜表 | `get_flowData("stoaryTable")` |
+| 读取分镜面板 | `get_flowData("storyboard")` |
+| 生成图片 | `generate_storyboard_images({ ids: [分镜ID列表] })` |
### 执行流程
-1. 获取 `script`
-2. 调用 `generate_storyboard_images({ script: 剧本文本 })` 生成分镜图片(异步,发起即返回)
+1. 获取 `script` 、`stoaryTable`
+2. 使用XML格式写入工作区分镜面板:
+3. 先获取 `storyboard`数据 再调用 `generate_storyboard_images({ ids: [真实分镜ID列表] })` 生成分镜图片(异步,发起即返回)
### 约束
- 前置条件:分镜表已构建完成且用户已确认
- 图片必须与分镜描述匹配
+- 你必须使用XML格式写入工作区分镜面板:
\ No newline at end of file
diff --git a/src/agents/productionAgent/tools.ts b/src/agents/productionAgent/tools.ts
index 96e1888..8ab625a 100644
--- a/src/agents/productionAgent/tools.ts
+++ b/src/agents/productionAgent/tools.ts
@@ -24,22 +24,11 @@ export const assetItemSchema = z.object({
});
const storyboardSchema = z.object({
id: z.number().describe("分镜ID,必须为真实id"),
- title: z.string().describe("分镜标题"),
- description: z.string().describe("分镜描述"),
- camera: z.string().describe("镜头信息"),
duration: z.number().describe("持续时长(秒)"),
- frameMode: z.enum(["firstFrame", "endFrame", "linesSoundEffects"]).describe("帧模式: 首帧/尾帧/台词音效"),
prompt: z.string().describe("生成提示词"),
- lines: z.string().nullable().describe("台词内容"),
- sound: z.string().nullable().describe("音效内容"),
- mode: z
- .union([
- z.enum(["singleImage", "multiImage", "gridImage", "startEndRequired", "endFrameOptional", "startFrameOptional", "text"]),
- z.array(z.enum(["video", "image", "audio", "text"])),
- ])
- .describe("视频模式"),
associateAssetsIds: z.array(z.number()).describe("关联资产ID列表"),
src: z.string().nullable().describe("分镜资源路径"),
+ index: z.number().nullable().optional().describe("分镜排序字段"),
});
const workbenchDataSchema = z.object({
name: z.string().describe("项目名称"),
diff --git a/src/router.ts b/src/router.ts
index c8ad382..474e684 100644
--- a/src/router.ts
+++ b/src/router.ts
@@ -1,4 +1,4 @@
-// @routes-hash 980d27529637eef85c489c16b08c445a
+// @routes-hash 39d27430eb844d91284da0877818f52f
import { Express } from "express";
import route1 from "./routes/agents/clearMemory";
@@ -49,83 +49,84 @@ import route45 from "./routes/production/assets/batchGenerateAssetsImage";
import route46 from "./routes/production/assets/getAssetsData";
import route47 from "./routes/production/assets/pollingImage";
import route48 from "./routes/production/editImage/generateFlowImage";
-import route49 from "./routes/production/editImage/getImageFlow";
-import route50 from "./routes/production/editImage/saveImageFlow";
-import route51 from "./routes/production/editImage/updateImageFlow";
-import route52 from "./routes/production/exportImage";
-import route53 from "./routes/production/getFlowData";
-import route54 from "./routes/production/getProductionData";
-import route55 from "./routes/production/getStoryboardData";
-import route56 from "./routes/production/saveFlowData";
-import route57 from "./routes/production/storyboard/addStoryboard";
-import route58 from "./routes/production/storyboard/batchAddStoryboardInfo";
-import route59 from "./routes/production/storyboard/batchGenerateImage";
-import route60 from "./routes/production/storyboard/downPreviewImage";
-import route61 from "./routes/production/storyboard/editStoryboardInfo";
-import route62 from "./routes/production/storyboard/getStoryboardData";
-import route63 from "./routes/production/storyboard/pollingImage";
-import route64 from "./routes/production/storyboard/previewImage";
-import route65 from "./routes/production/storyboard/removeFrame";
-import route66 from "./routes/production/storyboard/updateStoryboardUrl";
-import route67 from "./routes/production/workbench/addTrack";
-import route68 from "./routes/production/workbench/confirmSelection";
-import route69 from "./routes/production/workbench/delVideo";
-import route70 from "./routes/production/workbench/generateVideo";
-import route71 from "./routes/production/workbench/generateVideoPrompt";
-import route72 from "./routes/production/workbench/getGenerateData";
-import route73 from "./routes/production/workbench/getVideoModelDetail";
-import route74 from "./routes/production/workbench/videoPolling";
-import route75 from "./routes/project/addProject";
-import route76 from "./routes/project/addVisual";
-import route77 from "./routes/project/addVisualManual";
-import route78 from "./routes/project/deleteVisualManual";
-import route79 from "./routes/project/delProject";
-import route80 from "./routes/project/editProject";
-import route81 from "./routes/project/editVisualManual";
-import route82 from "./routes/project/getProject";
-import route83 from "./routes/project/getVisualManual";
-import route84 from "./routes/project/visualManual";
-import route85 from "./routes/script/addScript";
-import route86 from "./routes/script/delScript";
-import route87 from "./routes/script/exportScript";
-import route88 from "./routes/script/extractAssets";
-import route89 from "./routes/script/getScrptApi";
-import route90 from "./routes/script/pollScriptAssets";
-import route91 from "./routes/script/updateScript";
-import route92 from "./routes/scriptAgent/getPlanData";
-import route93 from "./routes/scriptAgent/setPlanData";
-import route94 from "./routes/scriptAgent/updateData";
-import route95 from "./routes/setting/about/checkUpdate";
-import route96 from "./routes/setting/about/downloadApp";
-import route97 from "./routes/setting/agentDeploy/agentSetKey";
-import route98 from "./routes/setting/agentDeploy/deployAgentModel";
-import route99 from "./routes/setting/agentDeploy/getAgentDeploy";
-import route100 from "./routes/setting/dbConfig/clearData";
-import route101 from "./routes/setting/dev/getSwitchAiDevTool";
-import route102 from "./routes/setting/dev/updateSwitchAiDevTool";
-import route103 from "./routes/setting/fileManagement/openFolder";
-import route104 from "./routes/setting/getTextModel";
-import route105 from "./routes/setting/loginConfig/getUser";
-import route106 from "./routes/setting/loginConfig/updateUserPwd";
-import route107 from "./routes/setting/memoryConfig/delAllMemory";
-import route108 from "./routes/setting/memoryConfig/getMemory";
-import route109 from "./routes/setting/memoryConfig/sureMemory";
-import route110 from "./routes/setting/promptManage/getPrompt";
-import route111 from "./routes/setting/promptManage/updatePrompt";
-import route112 from "./routes/setting/skillManagement/getSkillContent";
-import route113 from "./routes/setting/skillManagement/getSkillList";
-import route114 from "./routes/setting/skillManagement/saveSkillContent";
-import route115 from "./routes/setting/vendorConfig/addVendor";
-import route116 from "./routes/setting/vendorConfig/deleteVendor";
-import route117 from "./routes/setting/vendorConfig/getVendorList";
-import route118 from "./routes/setting/vendorConfig/modelTest";
-import route119 from "./routes/setting/vendorConfig/updateCode";
-import route120 from "./routes/setting/vendorConfig/updateVendor";
-import route121 from "./routes/task/getProject";
-import route122 from "./routes/task/getTaskApi";
-import route123 from "./routes/task/getTaskCategories";
-import route124 from "./routes/task/taskDetails";
-import route125 from "./routes/test/test";
+import route49 from "./routes/production/editImage/getDefaultProject";
+import route50 from "./routes/production/editImage/getImageFlow";
+import route51 from "./routes/production/editImage/saveImageFlow";
+import route52 from "./routes/production/editImage/updateImageFlow";
+import route53 from "./routes/production/exportImage";
+import route54 from "./routes/production/getFlowData";
+import route55 from "./routes/production/getProductionData";
+import route56 from "./routes/production/getStoryboardData";
+import route57 from "./routes/production/saveFlowData";
+import route58 from "./routes/production/storyboard/addStoryboard";
+import route59 from "./routes/production/storyboard/batchAddStoryboardInfo";
+import route60 from "./routes/production/storyboard/batchGenerateImage";
+import route61 from "./routes/production/storyboard/downPreviewImage";
+import route62 from "./routes/production/storyboard/editStoryboardInfo";
+import route63 from "./routes/production/storyboard/getStoryboardData";
+import route64 from "./routes/production/storyboard/pollingImage";
+import route65 from "./routes/production/storyboard/previewImage";
+import route66 from "./routes/production/storyboard/removeFrame";
+import route67 from "./routes/production/storyboard/updateStoryboardUrl";
+import route68 from "./routes/production/workbench/addTrack";
+import route69 from "./routes/production/workbench/confirmSelection";
+import route70 from "./routes/production/workbench/delVideo";
+import route71 from "./routes/production/workbench/generateVideo";
+import route72 from "./routes/production/workbench/generateVideoPrompt";
+import route73 from "./routes/production/workbench/getGenerateData";
+import route74 from "./routes/production/workbench/getVideoModelDetail";
+import route75 from "./routes/production/workbench/videoPolling";
+import route76 from "./routes/project/addProject";
+import route77 from "./routes/project/addVisual";
+import route78 from "./routes/project/addVisualManual";
+import route79 from "./routes/project/deleteVisualManual";
+import route80 from "./routes/project/delProject";
+import route81 from "./routes/project/editProject";
+import route82 from "./routes/project/editVisualManual";
+import route83 from "./routes/project/getProject";
+import route84 from "./routes/project/getVisualManual";
+import route85 from "./routes/project/visualManual";
+import route86 from "./routes/script/addScript";
+import route87 from "./routes/script/delScript";
+import route88 from "./routes/script/exportScript";
+import route89 from "./routes/script/extractAssets";
+import route90 from "./routes/script/getScrptApi";
+import route91 from "./routes/script/pollScriptAssets";
+import route92 from "./routes/script/updateScript";
+import route93 from "./routes/scriptAgent/getPlanData";
+import route94 from "./routes/scriptAgent/setPlanData";
+import route95 from "./routes/scriptAgent/updateData";
+import route96 from "./routes/setting/about/checkUpdate";
+import route97 from "./routes/setting/about/downloadApp";
+import route98 from "./routes/setting/agentDeploy/agentSetKey";
+import route99 from "./routes/setting/agentDeploy/deployAgentModel";
+import route100 from "./routes/setting/agentDeploy/getAgentDeploy";
+import route101 from "./routes/setting/dbConfig/clearData";
+import route102 from "./routes/setting/dev/getSwitchAiDevTool";
+import route103 from "./routes/setting/dev/updateSwitchAiDevTool";
+import route104 from "./routes/setting/fileManagement/openFolder";
+import route105 from "./routes/setting/getTextModel";
+import route106 from "./routes/setting/loginConfig/getUser";
+import route107 from "./routes/setting/loginConfig/updateUserPwd";
+import route108 from "./routes/setting/memoryConfig/delAllMemory";
+import route109 from "./routes/setting/memoryConfig/getMemory";
+import route110 from "./routes/setting/memoryConfig/sureMemory";
+import route111 from "./routes/setting/promptManage/getPrompt";
+import route112 from "./routes/setting/promptManage/updatePrompt";
+import route113 from "./routes/setting/skillManagement/getSkillContent";
+import route114 from "./routes/setting/skillManagement/getSkillList";
+import route115 from "./routes/setting/skillManagement/saveSkillContent";
+import route116 from "./routes/setting/vendorConfig/addVendor";
+import route117 from "./routes/setting/vendorConfig/deleteVendor";
+import route118 from "./routes/setting/vendorConfig/getVendorList";
+import route119 from "./routes/setting/vendorConfig/modelTest";
+import route120 from "./routes/setting/vendorConfig/updateCode";
+import route121 from "./routes/setting/vendorConfig/updateVendor";
+import route122 from "./routes/task/getProject";
+import route123 from "./routes/task/getTaskApi";
+import route124 from "./routes/task/getTaskCategories";
+import route125 from "./routes/task/taskDetails";
+import route126 from "./routes/test/test";
export default async (app: Express) => {
app.use("/api/agents/clearMemory", route1);
@@ -176,81 +177,82 @@ export default async (app: Express) => {
app.use("/api/production/assets/getAssetsData", route46);
app.use("/api/production/assets/pollingImage", route47);
app.use("/api/production/editImage/generateFlowImage", route48);
- app.use("/api/production/editImage/getImageFlow", route49);
- app.use("/api/production/editImage/saveImageFlow", route50);
- app.use("/api/production/editImage/updateImageFlow", route51);
- app.use("/api/production/exportImage", route52);
- app.use("/api/production/getFlowData", route53);
- app.use("/api/production/getProductionData", route54);
- app.use("/api/production/getStoryboardData", route55);
- app.use("/api/production/saveFlowData", route56);
- app.use("/api/production/storyboard/addStoryboard", route57);
- app.use("/api/production/storyboard/batchAddStoryboardInfo", route58);
- app.use("/api/production/storyboard/batchGenerateImage", route59);
- app.use("/api/production/storyboard/downPreviewImage", route60);
- app.use("/api/production/storyboard/editStoryboardInfo", route61);
- app.use("/api/production/storyboard/getStoryboardData", route62);
- app.use("/api/production/storyboard/pollingImage", route63);
- app.use("/api/production/storyboard/previewImage", route64);
- app.use("/api/production/storyboard/removeFrame", route65);
- app.use("/api/production/storyboard/updateStoryboardUrl", route66);
- app.use("/api/production/workbench/addTrack", route67);
- app.use("/api/production/workbench/confirmSelection", route68);
- app.use("/api/production/workbench/delVideo", route69);
- app.use("/api/production/workbench/generateVideo", route70);
- app.use("/api/production/workbench/generateVideoPrompt", route71);
- app.use("/api/production/workbench/getGenerateData", route72);
- app.use("/api/production/workbench/getVideoModelDetail", route73);
- app.use("/api/production/workbench/videoPolling", route74);
- app.use("/api/project/addProject", route75);
- app.use("/api/project/addVisual", route76);
- app.use("/api/project/addVisualManual", route77);
- app.use("/api/project/deleteVisualManual", route78);
- app.use("/api/project/delProject", route79);
- app.use("/api/project/editProject", route80);
- app.use("/api/project/editVisualManual", route81);
- app.use("/api/project/getProject", route82);
- app.use("/api/project/getVisualManual", route83);
- app.use("/api/project/visualManual", route84);
- app.use("/api/script/addScript", route85);
- app.use("/api/script/delScript", route86);
- app.use("/api/script/exportScript", route87);
- app.use("/api/script/extractAssets", route88);
- app.use("/api/script/getScrptApi", route89);
- app.use("/api/script/pollScriptAssets", route90);
- app.use("/api/script/updateScript", route91);
- app.use("/api/scriptAgent/getPlanData", route92);
- app.use("/api/scriptAgent/setPlanData", route93);
- app.use("/api/scriptAgent/updateData", route94);
- app.use("/api/setting/about/checkUpdate", route95);
- app.use("/api/setting/about/downloadApp", route96);
- app.use("/api/setting/agentDeploy/agentSetKey", route97);
- app.use("/api/setting/agentDeploy/deployAgentModel", route98);
- app.use("/api/setting/agentDeploy/getAgentDeploy", route99);
- app.use("/api/setting/dbConfig/clearData", route100);
- app.use("/api/setting/dev/getSwitchAiDevTool", route101);
- app.use("/api/setting/dev/updateSwitchAiDevTool", route102);
- app.use("/api/setting/fileManagement/openFolder", route103);
- app.use("/api/setting/getTextModel", route104);
- app.use("/api/setting/loginConfig/getUser", route105);
- app.use("/api/setting/loginConfig/updateUserPwd", route106);
- app.use("/api/setting/memoryConfig/delAllMemory", route107);
- app.use("/api/setting/memoryConfig/getMemory", route108);
- app.use("/api/setting/memoryConfig/sureMemory", route109);
- app.use("/api/setting/promptManage/getPrompt", route110);
- app.use("/api/setting/promptManage/updatePrompt", route111);
- app.use("/api/setting/skillManagement/getSkillContent", route112);
- app.use("/api/setting/skillManagement/getSkillList", route113);
- app.use("/api/setting/skillManagement/saveSkillContent", route114);
- app.use("/api/setting/vendorConfig/addVendor", route115);
- app.use("/api/setting/vendorConfig/deleteVendor", route116);
- app.use("/api/setting/vendorConfig/getVendorList", route117);
- app.use("/api/setting/vendorConfig/modelTest", route118);
- app.use("/api/setting/vendorConfig/updateCode", route119);
- app.use("/api/setting/vendorConfig/updateVendor", route120);
- app.use("/api/task/getProject", route121);
- app.use("/api/task/getTaskApi", route122);
- app.use("/api/task/getTaskCategories", route123);
- app.use("/api/task/taskDetails", route124);
- app.use("/api/test/test", route125);
+ app.use("/api/production/editImage/getDefaultProject", route49);
+ app.use("/api/production/editImage/getImageFlow", route50);
+ app.use("/api/production/editImage/saveImageFlow", route51);
+ app.use("/api/production/editImage/updateImageFlow", route52);
+ app.use("/api/production/exportImage", route53);
+ app.use("/api/production/getFlowData", route54);
+ app.use("/api/production/getProductionData", route55);
+ app.use("/api/production/getStoryboardData", route56);
+ app.use("/api/production/saveFlowData", route57);
+ app.use("/api/production/storyboard/addStoryboard", route58);
+ app.use("/api/production/storyboard/batchAddStoryboardInfo", route59);
+ app.use("/api/production/storyboard/batchGenerateImage", route60);
+ app.use("/api/production/storyboard/downPreviewImage", route61);
+ app.use("/api/production/storyboard/editStoryboardInfo", route62);
+ app.use("/api/production/storyboard/getStoryboardData", route63);
+ app.use("/api/production/storyboard/pollingImage", route64);
+ app.use("/api/production/storyboard/previewImage", route65);
+ app.use("/api/production/storyboard/removeFrame", route66);
+ app.use("/api/production/storyboard/updateStoryboardUrl", route67);
+ app.use("/api/production/workbench/addTrack", route68);
+ app.use("/api/production/workbench/confirmSelection", route69);
+ app.use("/api/production/workbench/delVideo", route70);
+ app.use("/api/production/workbench/generateVideo", route71);
+ app.use("/api/production/workbench/generateVideoPrompt", route72);
+ app.use("/api/production/workbench/getGenerateData", route73);
+ app.use("/api/production/workbench/getVideoModelDetail", route74);
+ app.use("/api/production/workbench/videoPolling", route75);
+ app.use("/api/project/addProject", route76);
+ app.use("/api/project/addVisual", route77);
+ app.use("/api/project/addVisualManual", route78);
+ app.use("/api/project/deleteVisualManual", route79);
+ app.use("/api/project/delProject", route80);
+ app.use("/api/project/editProject", route81);
+ app.use("/api/project/editVisualManual", route82);
+ app.use("/api/project/getProject", route83);
+ app.use("/api/project/getVisualManual", route84);
+ app.use("/api/project/visualManual", route85);
+ app.use("/api/script/addScript", route86);
+ app.use("/api/script/delScript", route87);
+ app.use("/api/script/exportScript", route88);
+ app.use("/api/script/extractAssets", route89);
+ app.use("/api/script/getScrptApi", route90);
+ app.use("/api/script/pollScriptAssets", route91);
+ app.use("/api/script/updateScript", route92);
+ app.use("/api/scriptAgent/getPlanData", route93);
+ app.use("/api/scriptAgent/setPlanData", route94);
+ app.use("/api/scriptAgent/updateData", route95);
+ app.use("/api/setting/about/checkUpdate", route96);
+ app.use("/api/setting/about/downloadApp", route97);
+ app.use("/api/setting/agentDeploy/agentSetKey", route98);
+ app.use("/api/setting/agentDeploy/deployAgentModel", route99);
+ app.use("/api/setting/agentDeploy/getAgentDeploy", route100);
+ app.use("/api/setting/dbConfig/clearData", route101);
+ app.use("/api/setting/dev/getSwitchAiDevTool", route102);
+ app.use("/api/setting/dev/updateSwitchAiDevTool", route103);
+ app.use("/api/setting/fileManagement/openFolder", route104);
+ app.use("/api/setting/getTextModel", route105);
+ app.use("/api/setting/loginConfig/getUser", route106);
+ app.use("/api/setting/loginConfig/updateUserPwd", route107);
+ app.use("/api/setting/memoryConfig/delAllMemory", route108);
+ app.use("/api/setting/memoryConfig/getMemory", route109);
+ app.use("/api/setting/memoryConfig/sureMemory", route110);
+ app.use("/api/setting/promptManage/getPrompt", route111);
+ app.use("/api/setting/promptManage/updatePrompt", route112);
+ app.use("/api/setting/skillManagement/getSkillContent", route113);
+ app.use("/api/setting/skillManagement/getSkillList", route114);
+ app.use("/api/setting/skillManagement/saveSkillContent", route115);
+ app.use("/api/setting/vendorConfig/addVendor", route116);
+ app.use("/api/setting/vendorConfig/deleteVendor", route117);
+ app.use("/api/setting/vendorConfig/getVendorList", route118);
+ app.use("/api/setting/vendorConfig/modelTest", route119);
+ app.use("/api/setting/vendorConfig/updateCode", route120);
+ app.use("/api/setting/vendorConfig/updateVendor", route121);
+ app.use("/api/task/getProject", route122);
+ app.use("/api/task/getTaskApi", route123);
+ app.use("/api/task/getTaskCategories", route124);
+ app.use("/api/task/taskDetails", route125);
+ app.use("/api/test/test", route126);
}
diff --git a/src/routes/assetsGenerate/batchGenerateImageAssets.ts b/src/routes/assetsGenerate/batchGenerateImageAssets.ts
index 9cd1094..c6e180d 100644
--- a/src/routes/assetsGenerate/batchGenerateImageAssets.ts
+++ b/src/routes/assetsGenerate/batchGenerateImageAssets.ts
@@ -145,7 +145,7 @@ export default router.post("/", validateFields(requestSchema), async (req, res)
await u
.db("o_image")
.where("id", imageId)
- .update({ state: "生成失败", errorReason: u.error(e).message });
+ .update({ state: "生成失败", reason: u.error(e).message });
}
}),
);
diff --git a/src/routes/production/editImage/getDefaultProject.ts b/src/routes/production/editImage/getDefaultProject.ts
new file mode 100644
index 0000000..6395cd2
--- /dev/null
+++ b/src/routes/production/editImage/getDefaultProject.ts
@@ -0,0 +1,19 @@
+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();
+
+export default router.post(
+ "/",
+ validateFields({
+ projectId: z.number(),
+ }),
+ async (req, res) => {
+ const { projectId } = req.body;
+ const imageFlowData = await u.db("o_project").where("id", projectId).select("imageModel", "imageQuality").first();
+
+ return res.status(200).send(success(imageFlowData));
+ },
+);
diff --git a/src/routes/production/exportImage.ts b/src/routes/production/exportImage.ts
index cd61be6..8789b0f 100644
--- a/src/routes/production/exportImage.ts
+++ b/src/routes/production/exportImage.ts
@@ -28,10 +28,10 @@ export default router.post(
}),
);
const zipStream = new compressing.zip.Stream();
- result.forEach((item) => {
+ result.forEach((item, index) => {
const ext = (item.filePath?.split(".").pop() || "png").toLowerCase();
const absPath = path.join(getPath("oss"), item.filePath!);
- zipStream.addEntry(absPath, { relativePath: `${item.title}.${ext}` });
+ zipStream.addEntry(absPath, { relativePath: `${index}.${ext}` });
});
const fileName = `分镜.zip`;
diff --git a/src/routes/production/saveFlowData.ts b/src/routes/production/saveFlowData.ts
index deea792..021021f 100644
--- a/src/routes/production/saveFlowData.ts
+++ b/src/routes/production/saveFlowData.ts
@@ -11,7 +11,7 @@ export default router.post(
validateFields({
projectId: z.number(),
episodesId: z.number(),
- data: flowDataSchema,
+ data: z.any(),
}),
async (req, res) => {
const {