diff --git a/apps/web/src/lib/og/image-generator.ts b/apps/web/src/lib/og/image-generator.ts index 2f5273d..8e5a945 100644 --- a/apps/web/src/lib/og/image-generator.ts +++ b/apps/web/src/lib/og/image-generator.ts @@ -24,33 +24,32 @@ function getOpenAIClient(): OpenAI { export async function generateOGImage(prompt: string): Promise { try { const client = getOpenAIClient(); + console.log('[OG] Calling OpenAI image generation...'); + const response = await client.images.generate({ model: 'gpt-image-1-mini', prompt, n: 1, - size: '1536x1024', // Closest aspect ratio to 1200x630, will serve as-is - quality: 'low', // Use low for faster generation and lower cost + size: '1024x1024', + quality: 'low', }); + console.log('[OG] OpenAI response received'); + if (!response.data || response.data.length === 0) { throw new Error('No data returned from OpenAI'); } - const imageUrl = response.data[0]?.url; - if (!imageUrl) { - throw new Error('No image URL returned from OpenAI'); + // gpt-image-1-mini returns base64 encoded image + const b64 = response.data[0]?.b64_json; + if (!b64) { + throw new Error('No base64 image data returned from OpenAI'); } - // Fetch the image - const imageResponse = await fetch(imageUrl); - if (!imageResponse.ok) { - throw new Error(`Failed to fetch generated image: ${imageResponse.status}`); - } - - const arrayBuffer = await imageResponse.arrayBuffer(); - return Buffer.from(arrayBuffer); + console.log(`[OG] Got base64 image (${b64.length} chars)`); + return Buffer.from(b64, 'base64'); } catch (error) { - console.error('OpenAI image generation failed:', error); + console.error('[OG] OpenAI image generation failed:', error); throw error; } }