fix: base64 convert to file for all image type

This commit is contained in:
jialin
2025-03-06 20:27:34 +08:00
parent 36d626c833
commit 106ee43171
2 changed files with 13 additions and 17 deletions
+12 -16
View File
@@ -113,21 +113,12 @@ const GroundImages: React.FC<MessageProps> = 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(() => { const finalParameters = useMemo(() => {
if (parameters.size === 'custom') { if (parameters.size === 'custom') {
return { return {
..._.omit(parameters, ['width', 'height', 'preview', 'random_seed']), ..._.omit(parameters, ['width', 'height', 'preview', 'random_seed']),
image: base64ToFile(image, 'image'), image: null,
mask: maskFile, mask: null,
size: size:
parameters.width && parameters.height parameters.width && parameters.height
? `${parameters.width}x${parameters.height}` ? `${parameters.width}x${parameters.height}`
@@ -135,11 +126,11 @@ const GroundImages: React.FC<MessageProps> = forwardRef((props, ref) => {
}; };
} }
return { return {
image: imageFile, image: null,
mask: maskFile, mask: null,
..._.omit(parameters, ['width', 'height', 'random_seed', 'preview']) ..._.omit(parameters, ['width', 'height', 'random_seed', 'preview'])
}; };
}, [parameters, maskFile, imageFile]); }, [parameters]);
const viewCodeContent = useMemo(() => { const viewCodeContent = useMemo(() => {
if (isOpenaiCompatible) { if (isOpenaiCompatible) {
@@ -211,9 +202,14 @@ const GroundImages: React.FC<MessageProps> = forwardRef((props, ref) => {
}); });
form.current?.form?.setFieldValue('seed', params.seed); form.current?.form?.setFieldValue('seed', params.seed);
console.log('params:', params, parameters);
setRouteCache(routeCachekey['/playground/text-to-image'], true); 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) { } catch (error) {
// console.log('error:', error); // console.log('error:', error);
} finally { } finally {
+1 -1
View File
@@ -153,7 +153,7 @@ export const generateRandomNumber = () => {
function base64ToBlob(base64: string, contentType = '', sliceSize = 512) { function base64ToBlob(base64: string, contentType = '', sliceSize = 512) {
try { try {
const base64Content = base64.replace(/^data:image\/(png|jpg);base64,/, ''); const base64Content = base64.replace(/^data:image\/[^;]+;base64,/, '');
const byteCharacters = atob(base64Content); const byteCharacters = atob(base64Content);
const byteArrays = []; const byteArrays = [];