From 7486c419f115907b27c47e62daedcc2e2980fbad Mon Sep 17 00:00:00 2001 From: a12110 Date: Fri, 10 Apr 2026 17:23:24 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9:=20=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E5=9B=BE=E5=83=8F=E5=A4=84=E7=90=86=E9=80=BB=E8=BE=91=EF=BC=8C?= =?UTF-8?q?=E7=A7=BB=E9=99=A4=E4=B8=8D=E5=BF=85=E8=A6=81=E7=9A=84urlToBase?= =?UTF-8?q?64=E5=87=BD=E6=95=B0=E8=B0=83=E7=94=A8=EF=BC=8C=E7=9B=B4?= =?UTF-8?q?=E6=8E=A5=E4=BD=BF=E7=94=A8getImageBase64=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../production/assets/batchGenerateAssetsImage.ts | 15 +++------------ .../production/editImage/generateFlowImage.ts | 3 +++ .../production/storyboard/batchGenerateImage.ts | 3 +-- 3 files changed, 7 insertions(+), 14 deletions(-) diff --git a/src/routes/production/assets/batchGenerateAssetsImage.ts b/src/routes/production/assets/batchGenerateAssetsImage.ts index d7ec5d8..6178ee1 100644 --- a/src/routes/production/assets/batchGenerateAssetsImage.ts +++ b/src/routes/production/assets/batchGenerateAssetsImage.ts @@ -5,7 +5,6 @@ import sharp from "sharp"; import { success } from "@/lib/responseFormat"; import { validateFields } from "@/middleware/middleware"; import { Output } from "ai"; -import { urlToBase64 } from "@/utils/vm"; const router = express.Router(); export default router.post( @@ -28,14 +27,6 @@ export default router.post( .leftJoin("o_image", "o_assets.imageId", "o_image.id") .whereIn("o_assets.id", parentIds as number[]) .select("o_assets.id", "o_image.filePath", "o_assets.describe"); - const assetsSrcArr = await Promise.all( - parentAssetsData.map(async (item) => { - return { - src: await u.oss.getFileUrl(item.filePath), - id: item.id, - }; - }), - ); assetsDataArr.forEach((i: any) => { const parent = parentAssetsData.find((item) => item.id === i.assetsId); if (parent) { @@ -43,8 +34,8 @@ export default router.post( } }); const imageUrlRecord: Record = {}; - assetsSrcArr.forEach((item) => { - imageUrlRecord[item.id] = item.src; + parentAssetsData.forEach((item) => { + if (item.filePath) imageUrlRecord[item.id] = item.filePath; }); const rolePrompt = u.getArtPrompt(projectSettingData!.artStyle!, "art_skills", "art_character_derivative"); const toolPrompt = u.getArtPrompt(projectSettingData!.artStyle!, "art_skills", "art_prop_derivative"); @@ -92,7 +83,7 @@ export default router.post( ], }); - const imageBase64 = imageUrlRecord[item.assetsId!] ? await urlToBase64(imageUrlRecord[item.assetsId!]) : null; + const imageBase64 = imageUrlRecord[item.assetsId!] ? await u.oss.getImageBase64(imageUrlRecord[item.assetsId!]) : null; try { const repeloadObj = { prompt: text, diff --git a/src/routes/production/editImage/generateFlowImage.ts b/src/routes/production/editImage/generateFlowImage.ts index 3c4a1b5..c05937b 100644 --- a/src/routes/production/editImage/generateFlowImage.ts +++ b/src/routes/production/editImage/generateFlowImage.ts @@ -7,6 +7,9 @@ import axios from "axios"; const router = express.Router(); async function urlToBase64(imageUrl: string): Promise { + if (imageUrl.startsWith("/oss/")) { + return await u.oss.getImageBase64(u.replaceUrl(imageUrl)); + } const response = await axios.get(imageUrl, { responseType: "arraybuffer" }); const contentType = response.headers["content-type"] || "image/png"; const base64 = Buffer.from(response.data, "binary").toString("base64"); diff --git a/src/routes/production/storyboard/batchGenerateImage.ts b/src/routes/production/storyboard/batchGenerateImage.ts index cf19a06..d75fa6d 100644 --- a/src/routes/production/storyboard/batchGenerateImage.ts +++ b/src/routes/production/storyboard/batchGenerateImage.ts @@ -5,7 +5,6 @@ import sharp from "sharp"; import { error, success } from "@/lib/responseFormat"; import { validateFields } from "@/middleware/middleware"; import { Output, tool } from "ai"; -import { urlToBase64 } from "@/utils/vm"; import { assetItemSchema } from "@/agents/productionAgent/tools"; const router = express.Router(); export type AssetData = z.infer; @@ -143,7 +142,7 @@ async function getAssetsImageBase64(imageIds: number[]) { const filePath = id2Path.get(id); if (filePath) { try { - return await urlToBase64(await u.oss.getFileUrl(filePath)); + return await u.oss.getImageBase64(filePath); } catch { return null; }