import type { NanoBananaRequest, NanoBananaResponse } from '@/types'; const NANO_BANANA_ENDPOINT = 'http://localhost:7879/v1/images/generations'; export async function generateImages( req: NanoBananaRequest, ): Promise { const response = await fetch(NANO_BANANA_ENDPOINT, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ model: 'nano-banana', n: 1, response_format: 'b64_json', ...req, }), }); if (!response.ok) { const text = await response.text().catch(() => ''); throw new Error(`Generation failed (${response.status}): ${text}`); } const data = (await response.json()) as NanoBananaResponse; if (!data.data || data.data.length === 0) { throw new Error('No images returned'); } return data; } export function b64ToDataUrl(b64: string, format: string = 'png'): string { const mime = format === 'jpeg' ? 'image/jpeg' : format === 'webp' ? 'image/webp' : 'image/png'; return `data:${mime};base64,${b64}`; }