import { uploadMedia } from './mediaUploader'; const API_BASE_URL = 'http://localhost:8000'; // Default port for the background-remover service export async function removeImageBackground(imageSrc: string | Blob): Promise { try { let sourceBlob: Blob; if (typeof imageSrc === 'string') { // Fetch the image as a Blob first const res = await fetch(imageSrc); if (!res.ok) throw new Error('Failed to fetch image source'); sourceBlob = await res.blob(); } else { sourceBlob = imageSrc; } const formData = new FormData(); formData.append('file', sourceBlob, 'image_to_process.png'); console.log('[AI Background Removal] Enviando imagen al servicio Python local...'); const response = await fetch(`${API_BASE_URL}/api/v1/remove-image-background`, { method: 'POST', body: formData, }); if (!response.ok) { throw new Error(`Error en el servicio de IA: ${response.statusText}`); } const imageBlob = await response.blob(); // Convertimos el blob devuelto por la IA en un archivo fĂ­sico virtual const file = new File([imageBlob], `removed-bg-${Date.now()}.png`, { type: 'image/png' }); // Subimos la imagen al servidor interno para tener una URL persistente (/api/media/...) const result = await uploadMedia(file); return result.url; } catch (error) { console.error('Error al remover el fondo con IA:', error); throw new Error('No se pudo remover el fondo de la imagen.'); } }