fix: use base64 response format for gpt-image-1-mini
This commit is contained in:
parent
afc97c89a3
commit
fb8cce3b38
1 changed files with 13 additions and 14 deletions
|
|
@ -24,33 +24,32 @@ function getOpenAIClient(): OpenAI {
|
|||
export async function generateOGImage(prompt: string): Promise<Buffer> {
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue