From 106ee43171475d456adee27e10ea651ade8bc3b7 Mon Sep 17 00:00:00 2001 From: jialin Date: Thu, 6 Mar 2025 20:23:33 +0800 Subject: [PATCH] fix: base64 convert to file for all image type --- .../playground/components/image-edit.tsx | 28 ++++++++----------- src/utils/index.ts | 2 +- 2 files changed, 13 insertions(+), 17 deletions(-) diff --git a/src/pages/playground/components/image-edit.tsx b/src/pages/playground/components/image-edit.tsx index 3ee9a0fd..627ed3a7 100644 --- a/src/pages/playground/components/image-edit.tsx +++ b/src/pages/playground/components/image-edit.tsx @@ -113,21 +113,12 @@ const GroundImages: React.FC = forwardRef((props, ref) => { }; }); - const imageFile = useMemo(() => { - return base64ToFile(uploadList[0]?.dataUrl, 'image'); - }, [uploadList]); - - const maskFile = useMemo(() => { - if (!mask) return null; - return base64ToFile(mask, 'mask'); - }, [mask]); - const finalParameters = useMemo(() => { if (parameters.size === 'custom') { return { ..._.omit(parameters, ['width', 'height', 'preview', 'random_seed']), - image: base64ToFile(image, 'image'), - mask: maskFile, + image: null, + mask: null, size: parameters.width && parameters.height ? `${parameters.width}x${parameters.height}` @@ -135,11 +126,11 @@ const GroundImages: React.FC = forwardRef((props, ref) => { }; } return { - image: imageFile, - mask: maskFile, + image: null, + mask: null, ..._.omit(parameters, ['width', 'height', 'random_seed', 'preview']) }; - }, [parameters, maskFile, imageFile]); + }, [parameters]); const viewCodeContent = useMemo(() => { if (isOpenaiCompatible) { @@ -211,9 +202,14 @@ const GroundImages: React.FC = forwardRef((props, ref) => { }); form.current?.form?.setFieldValue('seed', params.seed); - console.log('params:', params, parameters); + setRouteCache(routeCachekey['/playground/text-to-image'], true); - await submitMessage(params); + + await submitMessage({ + ...params, + image: base64ToFile(_.get(uploadList, '0.dataUrl'), 'image'), + mask: mask ? base64ToFile(mask, 'mask') : null + }); } catch (error) { // console.log('error:', error); } finally { diff --git a/src/utils/index.ts b/src/utils/index.ts index 716a450e..e031b4ac 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -153,7 +153,7 @@ export const generateRandomNumber = () => { function base64ToBlob(base64: string, contentType = '', sliceSize = 512) { try { - const base64Content = base64.replace(/^data:image\/(png|jpg);base64,/, ''); + const base64Content = base64.replace(/^data:image\/[^;]+;base64,/, ''); const byteCharacters = atob(base64Content); const byteArrays = [];