From 59bb3e130b56d2d8381b475273fcab1e50692481 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E5=B8=85?= <2944435683> Date: Fri, 3 Apr 2026 17:58:51 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=EF=BC=8C=E5=88=A0=E9=99=A4=E8=B5=84=E4=BA=A7?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=88=A0=E9=99=A4=E4=B8=8D=E5=85=A8=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/routes/assets/delAssets.ts | 1 + src/routes/production/workbench/delVideo.ts | 3 ++ src/routes/project/delProject.ts | 42 ++++++++++++--------- 3 files changed, 29 insertions(+), 17 deletions(-) diff --git a/src/routes/assets/delAssets.ts b/src/routes/assets/delAssets.ts index 162e55b..d5195df 100644 --- a/src/routes/assets/delAssets.ts +++ b/src/routes/assets/delAssets.ts @@ -14,6 +14,7 @@ export default router.post( const { id } = req.body; const assetsData = await u.db("o_image").where("assetsId", id); await Promise.all(assetsData.map((i) => i.filePath && u.oss.deleteFile(i.filePath))); + await u.db("o_image").where({ assetsId: id }).delete(); await u.db("o_assets").where({ id }).delete(); res.status(200).send(success({ message: "删除资产成功" })); }, diff --git a/src/routes/production/workbench/delVideo.ts b/src/routes/production/workbench/delVideo.ts index 4b87855..dd1c300 100644 --- a/src/routes/production/workbench/delVideo.ts +++ b/src/routes/production/workbench/delVideo.ts @@ -13,6 +13,9 @@ export default router.post( async (req, res) => { const { id } = req.body; await u.db("o_video").where("id", id).delete(); + await u.db("o_videoTrack").where("videoId", id).update({ + videoId: null, + }); res.status(200).send(success({ message: "视频删除成功" })); }, ); diff --git a/src/routes/project/delProject.ts b/src/routes/project/delProject.ts index 4ceed7c..68ec155 100644 --- a/src/routes/project/delProject.ts +++ b/src/routes/project/delProject.ts @@ -13,27 +13,35 @@ export default router.post( }), async (req, res) => { const { id } = req.body; - - const scriptData = await u.db("o_script").where("projectId", id).select("id"); - const scriptIds = scriptData.map((item: any) => item.id); - + //删除项目 + await u.db("o_project").where("id", id).delete(); + //删除项目下的原文 + await u.db("o_novel").where("projectId", id).delete(); + // 删除项目下的剧本信息 + await u.db("o_script").where("projectId", id).delete(); + await u.db("o_outline").where("projectId", id).delete(); + // 删除项目下的任务 + await u.db("o_tasks").where("projectId", id).delete(); + // 删除项目下的分镜 + await u.db("o_storyboard").where("projectId", id).delete(); + // 删除项目下的资产 + await u.db("o_assets").where("projectId", id).delete(); + //删除需要删除资产的归属图片 const assetsData = await u.db("o_assets").where("projectId", id).select("id"); const assetsIds = assetsData.map((item: any) => item.id); - - await u.db("o_project").where("id", id).delete(); - await u.db("o_novel").where("projectId", id).delete(); - await u.db("o_outline").where("projectId", id).delete(); - await u.db("o_tasks").where("projectId", id).delete(); - - await u.db("o_script").where("projectId", id).delete(); - await u.db("o_assets").where("projectId", id).delete(); - if (assetsIds.length > 0) { - await u.db("o_image").where("projectId", id).orWhereIn("assetsId", assetsIds).delete(); + await u.db("o_image").orWhereIn("assetsId", assetsIds).delete(); } - - await u.db("o_video").whereIn("scriptId", scriptIds).delete(); - + //删除项目下的视频 + const videoData = await u.db("o_video").where("projectId", id).select("id"); + const videoIds = videoData.map((item: any) => item.id); + if (videoIds.length > 0) { + await u.db("o_videoTrack").whereIn("videoId", videoIds).update({ + videoId: null, + }); + } + await u.db("o_video").where("projectId", id).delete(); + //删除项目下的资源 try { await u.oss.deleteDirectory(`${id}/`); console.log(`项目 ${id} 的OSS文件夹删除成功`); From 6e8d8c00293640244fe39e9a3c69dad00b4a80d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E5=B8=85?= <2944435683> Date: Fri, 3 Apr 2026 18:35:08 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=EF=BC=8C=E5=85=B3=E9=97=AD=E4=BE=9B=E5=BA=94?= =?UTF-8?q?=E5=95=86=EF=BC=8C=E4=BF=AE=E5=A4=8D=E4=BE=9B=E5=BA=94=E5=95=86?= =?UTF-8?q?=E5=BC=80=E5=90=AF=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/routes/setting/vendorConfig/enableVendor.ts | 1 + src/routes/setting/vendorConfig/updateCode.ts | 1 - src/routes/setting/vendorConfig/updateVendor.ts | 1 - 3 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/routes/setting/vendorConfig/enableVendor.ts b/src/routes/setting/vendorConfig/enableVendor.ts index fc8be90..8536504 100644 --- a/src/routes/setting/vendorConfig/enableVendor.ts +++ b/src/routes/setting/vendorConfig/enableVendor.ts @@ -8,6 +8,7 @@ export default router.post( "/", validateFields({ id: z.string(), + enable: z.number(), }), async (req, res) => { const { id, enable } = req.body; diff --git a/src/routes/setting/vendorConfig/updateCode.ts b/src/routes/setting/vendorConfig/updateCode.ts index 58b6ca7..d0ab2c1 100644 --- a/src/routes/setting/vendorConfig/updateCode.ts +++ b/src/routes/setting/vendorConfig/updateCode.ts @@ -95,7 +95,6 @@ export default router.post( inputValues: JSON.stringify(vendor.inputValues ?? {}), models: JSON.stringify(vendor.models ?? []), code: tsCode, - enable: 0, createTime: Date.now(), }); res.status(200).send(success(result.data)); diff --git a/src/routes/setting/vendorConfig/updateVendor.ts b/src/routes/setting/vendorConfig/updateVendor.ts index 6313450..0d066b8 100644 --- a/src/routes/setting/vendorConfig/updateVendor.ts +++ b/src/routes/setting/vendorConfig/updateVendor.ts @@ -67,7 +67,6 @@ export default router.post( inputs: JSON.stringify(inputs), inputValues: JSON.stringify(inputValues), models: JSON.stringify(models), - enable: id == "toonflow" ? 1 : 0, }); res.status(200).send(success("更新成功")); }, From 1ed3fcd5dad16444b6bdb48ea9014635f82561cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E5=B8=85?= <2944435683> Date: Fri, 3 Apr 2026 23:08:12 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dskills=E5=91=BD=E5=90=8D?= =?UTF-8?q?=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../art_prompt/{art_character_flat.md => art_character.md} | 0 ...acter_derivative_flat.md => art_character_derivative.md} | 0 .../art_prompt/{art_prop_flat.md => art_prop.md} | 0 .../{art_prop_derivative_flat.md => art_prop_derivative.md} | 0 .../art_prompt/{art_scene_flat.md => art_scene.md} | 0 ...art_scene_derivative_flat.md => art_scene_derivative.md} | 0 .../{art_character_modern.md => art_character.md} | 0 ...ter_derivative_modern.md => art_character_derivative.md} | 0 .../art_prompt/{art_prop_modern.md => art_prop.md} | 0 ...art_prop_derivative_modern.md => art_prop_derivative.md} | 0 .../art_prompt/{art_scene_modern.md => art_scene.md} | 0 ...t_scene_derivative_modern.md => art_scene_derivative.md} | 0 .../{director_planning.md => director_planning_style.md} | 0 ...oryboard_table.md => director_storyboard_table_style.md} | 0 src/routes/production/workbench/generateVideoPrompt.ts | 2 +- src/routes/project/addVisualManual.ts | 6 +++--- src/routes/project/editVisualManual.ts | 6 +++--- src/routes/project/getVisualManual.ts | 6 +++--- 18 files changed, 10 insertions(+), 10 deletions(-) rename data/skills/art_skills/2D_flat_design/art_prompt/{art_character_flat.md => art_character.md} (100%) rename data/skills/art_skills/2D_flat_design/art_prompt/{art_character_derivative_flat.md => art_character_derivative.md} (100%) rename data/skills/art_skills/2D_flat_design/art_prompt/{art_prop_flat.md => art_prop.md} (100%) rename data/skills/art_skills/2D_flat_design/art_prompt/{art_prop_derivative_flat.md => art_prop_derivative.md} (100%) rename data/skills/art_skills/2D_flat_design/art_prompt/{art_scene_flat.md => art_scene.md} (100%) rename data/skills/art_skills/2D_flat_design/art_prompt/{art_scene_derivative_flat.md => art_scene_derivative.md} (100%) rename data/skills/art_skills/realpeople_urban_modern/art_prompt/{art_character_modern.md => art_character.md} (100%) rename data/skills/art_skills/realpeople_urban_modern/art_prompt/{art_character_derivative_modern.md => art_character_derivative.md} (100%) rename data/skills/art_skills/realpeople_urban_modern/art_prompt/{art_prop_modern.md => art_prop.md} (100%) rename data/skills/art_skills/realpeople_urban_modern/art_prompt/{art_prop_derivative_modern.md => art_prop_derivative.md} (100%) rename data/skills/art_skills/realpeople_urban_modern/art_prompt/{art_scene_modern.md => art_scene.md} (100%) rename data/skills/art_skills/realpeople_urban_modern/art_prompt/{art_scene_derivative_modern.md => art_scene_derivative.md} (100%) rename data/skills/art_skills/realpeople_urban_modern/driector_skills/{director_planning.md => director_planning_style.md} (100%) rename data/skills/art_skills/realpeople_urban_modern/driector_skills/{director_storyboard_table.md => director_storyboard_table_style.md} (100%) diff --git a/data/skills/art_skills/2D_flat_design/art_prompt/art_character_flat.md b/data/skills/art_skills/2D_flat_design/art_prompt/art_character.md similarity index 100% rename from data/skills/art_skills/2D_flat_design/art_prompt/art_character_flat.md rename to data/skills/art_skills/2D_flat_design/art_prompt/art_character.md diff --git a/data/skills/art_skills/2D_flat_design/art_prompt/art_character_derivative_flat.md b/data/skills/art_skills/2D_flat_design/art_prompt/art_character_derivative.md similarity index 100% rename from data/skills/art_skills/2D_flat_design/art_prompt/art_character_derivative_flat.md rename to data/skills/art_skills/2D_flat_design/art_prompt/art_character_derivative.md diff --git a/data/skills/art_skills/2D_flat_design/art_prompt/art_prop_flat.md b/data/skills/art_skills/2D_flat_design/art_prompt/art_prop.md similarity index 100% rename from data/skills/art_skills/2D_flat_design/art_prompt/art_prop_flat.md rename to data/skills/art_skills/2D_flat_design/art_prompt/art_prop.md diff --git a/data/skills/art_skills/2D_flat_design/art_prompt/art_prop_derivative_flat.md b/data/skills/art_skills/2D_flat_design/art_prompt/art_prop_derivative.md similarity index 100% rename from data/skills/art_skills/2D_flat_design/art_prompt/art_prop_derivative_flat.md rename to data/skills/art_skills/2D_flat_design/art_prompt/art_prop_derivative.md diff --git a/data/skills/art_skills/2D_flat_design/art_prompt/art_scene_flat.md b/data/skills/art_skills/2D_flat_design/art_prompt/art_scene.md similarity index 100% rename from data/skills/art_skills/2D_flat_design/art_prompt/art_scene_flat.md rename to data/skills/art_skills/2D_flat_design/art_prompt/art_scene.md diff --git a/data/skills/art_skills/2D_flat_design/art_prompt/art_scene_derivative_flat.md b/data/skills/art_skills/2D_flat_design/art_prompt/art_scene_derivative.md similarity index 100% rename from data/skills/art_skills/2D_flat_design/art_prompt/art_scene_derivative_flat.md rename to data/skills/art_skills/2D_flat_design/art_prompt/art_scene_derivative.md diff --git a/data/skills/art_skills/realpeople_urban_modern/art_prompt/art_character_modern.md b/data/skills/art_skills/realpeople_urban_modern/art_prompt/art_character.md similarity index 100% rename from data/skills/art_skills/realpeople_urban_modern/art_prompt/art_character_modern.md rename to data/skills/art_skills/realpeople_urban_modern/art_prompt/art_character.md diff --git a/data/skills/art_skills/realpeople_urban_modern/art_prompt/art_character_derivative_modern.md b/data/skills/art_skills/realpeople_urban_modern/art_prompt/art_character_derivative.md similarity index 100% rename from data/skills/art_skills/realpeople_urban_modern/art_prompt/art_character_derivative_modern.md rename to data/skills/art_skills/realpeople_urban_modern/art_prompt/art_character_derivative.md diff --git a/data/skills/art_skills/realpeople_urban_modern/art_prompt/art_prop_modern.md b/data/skills/art_skills/realpeople_urban_modern/art_prompt/art_prop.md similarity index 100% rename from data/skills/art_skills/realpeople_urban_modern/art_prompt/art_prop_modern.md rename to data/skills/art_skills/realpeople_urban_modern/art_prompt/art_prop.md diff --git a/data/skills/art_skills/realpeople_urban_modern/art_prompt/art_prop_derivative_modern.md b/data/skills/art_skills/realpeople_urban_modern/art_prompt/art_prop_derivative.md similarity index 100% rename from data/skills/art_skills/realpeople_urban_modern/art_prompt/art_prop_derivative_modern.md rename to data/skills/art_skills/realpeople_urban_modern/art_prompt/art_prop_derivative.md diff --git a/data/skills/art_skills/realpeople_urban_modern/art_prompt/art_scene_modern.md b/data/skills/art_skills/realpeople_urban_modern/art_prompt/art_scene.md similarity index 100% rename from data/skills/art_skills/realpeople_urban_modern/art_prompt/art_scene_modern.md rename to data/skills/art_skills/realpeople_urban_modern/art_prompt/art_scene.md diff --git a/data/skills/art_skills/realpeople_urban_modern/art_prompt/art_scene_derivative_modern.md b/data/skills/art_skills/realpeople_urban_modern/art_prompt/art_scene_derivative.md similarity index 100% rename from data/skills/art_skills/realpeople_urban_modern/art_prompt/art_scene_derivative_modern.md rename to data/skills/art_skills/realpeople_urban_modern/art_prompt/art_scene_derivative.md diff --git a/data/skills/art_skills/realpeople_urban_modern/driector_skills/director_planning.md b/data/skills/art_skills/realpeople_urban_modern/driector_skills/director_planning_style.md similarity index 100% rename from data/skills/art_skills/realpeople_urban_modern/driector_skills/director_planning.md rename to data/skills/art_skills/realpeople_urban_modern/driector_skills/director_planning_style.md diff --git a/data/skills/art_skills/realpeople_urban_modern/driector_skills/director_storyboard_table.md b/data/skills/art_skills/realpeople_urban_modern/driector_skills/director_storyboard_table_style.md similarity index 100% rename from data/skills/art_skills/realpeople_urban_modern/driector_skills/director_storyboard_table.md rename to data/skills/art_skills/realpeople_urban_modern/driector_skills/director_storyboard_table_style.md diff --git a/src/routes/production/workbench/generateVideoPrompt.ts b/src/routes/production/workbench/generateVideoPrompt.ts index d3fd0f2..d391bd1 100644 --- a/src/routes/production/workbench/generateVideoPrompt.ts +++ b/src/routes/production/workbench/generateVideoPrompt.ts @@ -78,7 +78,7 @@ export default router.post( const artStyle = projectData?.artStyle || "无"; const data = projectData?.directorManual || "无"; const visualManual = u.getArtPrompt(artStyle, "art_skills", "art_storyboard_video"); - const directorManual = u.getArtPrompt(data, "story_skills", "narrative_sweet_romance"); + const directorManual = u.getArtPrompt(data, "story_skills", "director_planning_narrative"); const content = ` **模型名称**:${modelData}, **资产信息**(角色、场景、道具):${assets.map((i) => `[id:${i.id},type:${i.type},name:${i.name}]`).join(",")}, diff --git a/src/routes/project/addVisualManual.ts b/src/routes/project/addVisualManual.ts index b185614..65a2170 100644 --- a/src/routes/project/addVisualManual.ts +++ b/src/routes/project/addVisualManual.ts @@ -50,10 +50,10 @@ export default router.post( { value: "art_prop_derivative", subDir: "art_prompt" }, { value: "art_scene", subDir: "art_prompt" }, { value: "art_scene_derivative", subDir: "art_prompt" }, - { value: "art_storyboard", subDir: "art_prompt" }, + { value: "director_storyboard", subDir: "driector_skills" }, { value: "art_storyboard_video", subDir: "art_prompt" }, - { value: "director_planning", subDir: "driector_skills" }, - { value: "director_storyboard_table", subDir: "driector_skills" }, + { value: "director_planning_style", subDir: "driector_skills" }, + { value: "director_storyboard_table_style", subDir: "driector_skills" }, ]; // 根据 DATA_MAP 构建 value -> subDir 的映射 diff --git a/src/routes/project/editVisualManual.ts b/src/routes/project/editVisualManual.ts index efbaa09..27bab04 100644 --- a/src/routes/project/editVisualManual.ts +++ b/src/routes/project/editVisualManual.ts @@ -51,10 +51,10 @@ export default router.post( { value: "art_prop_derivative", subDir: "art_prompt" }, { value: "art_scene", subDir: "art_prompt" }, { value: "art_scene_derivative", subDir: "art_prompt" }, - { value: "art_storyboard", subDir: "art_prompt" }, + { value: "director_storyboard", subDir: "driector_skills" }, { value: "art_storyboard_video", subDir: "art_prompt" }, - { value: "director_planning", subDir: "driector_skills" }, - { value: "director_storyboard_table", subDir: "driector_skills" }, + { value: "director_planning_style", subDir: "driector_skills" }, + { value: "director_storyboard_table_style", subDir: "driector_skills" }, ]; // 根据 DATA_MAP 构建 value -> subDir 的映射 diff --git a/src/routes/project/getVisualManual.ts b/src/routes/project/getVisualManual.ts index 9d13410..72e27cb 100644 --- a/src/routes/project/getVisualManual.ts +++ b/src/routes/project/getVisualManual.ts @@ -15,10 +15,10 @@ const DATA_MAP: { label: string; value: string; subDir?: string }[] = [ { label: "道具衍生", value: "art_prop_derivative", subDir: "art_prompt" }, { label: "场景", value: "art_scene", subDir: "art_prompt" }, { label: "场景衍生", value: "art_scene_derivative", subDir: "art_prompt" }, - { label: "分镜", value: "art_storyboard", subDir: "art_prompt" }, + { label: "分镜", value: "director_storyboard", subDir: "driector_skills" }, { label: "分镜视频", value: "art_storyboard_video", subDir: "art_prompt" }, - { label: "技法-导演规划", value: "director_planning", subDir: "driector_skills" }, - { label: "技法-分镜表设计", value: "director_storyboard_table", subDir: "driector_skills" }, + { label: "技法-导演规划", value: "director_planning_style", subDir: "driector_skills" }, + { label: "技法-分镜表设计", value: "director_storyboard_table_style", subDir: "driector_skills" }, ]; // 读取 md 文件内容,文件不存在时返回空字符串 From 16520a12f7f2801336056fa7e2e0509ad15dfff5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E5=B8=85?= <2944435683> Date: Fri, 3 Apr 2026 23:21:55 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=94=9F=E6=88=90?= =?UTF-8?q?=E8=A7=86=E9=A2=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/routes/production/workbench/generateVideoPrompt.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/routes/production/workbench/generateVideoPrompt.ts b/src/routes/production/workbench/generateVideoPrompt.ts index d391bd1..74a1deb 100644 --- a/src/routes/production/workbench/generateVideoPrompt.ts +++ b/src/routes/production/workbench/generateVideoPrompt.ts @@ -76,9 +76,7 @@ export default router.post( const projectData = await u.db("o_project").select("*").where({ id: projectId }).first(); const videoPrompt = await u.db("o_prompt").where("type", "videoPromptGeneration").first(); const artStyle = projectData?.artStyle || "无"; - const data = projectData?.directorManual || "无"; const visualManual = u.getArtPrompt(artStyle, "art_skills", "art_storyboard_video"); - const directorManual = u.getArtPrompt(data, "story_skills", "director_planning_narrative"); const content = ` **模型名称**:${modelData}, **资产信息**(角色、场景、道具):${assets.map((i) => `[id:${i.id},type:${i.type},name:${i.name}]`).join(",")}, @@ -99,7 +97,7 @@ export default router.post( messages: [ { role: "assistant", - content: `${visualManual}\n${directorManual}`, + content: `${visualManual}`, }, { role: "user",