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; }