@ai-stack/payloadcms
Version:
<p align="center"> <img alt="Payload AI Plugin" src="assets/payload-ai-intro.gif" width="100%" /> </p>
32 lines (31 loc) • 1.14 kB
JavaScript
import { GoogleGenAI } from '@google/genai';
import { resolveProviderConfig } from '../../providers/resolveProviderConfig.js';
export const generateImage = async (prompt, { aspectRatio = '1:1', model = 'imagen-4.0-fast-generate-001', outputMimeType = 'image/png', providerConfig = resolveProviderConfig().google } = {})=>{
const ai = new GoogleGenAI({
apiKey: providerConfig.apiKey,
httpOptions: {
baseUrl: providerConfig.baseURL,
headers: providerConfig.headers
}
});
const response = await ai.models.generateImages({
config: {
aspectRatio,
numberOfImages: 1,
outputMimeType
},
model,
prompt
});
const generatedImage = response.generatedImages?.[0];
if (!generatedImage?.image?.imageBytes) {
throw new Error('No image generated');
}
const base64ImageBytes = generatedImage.image.imageBytes;
const buffer = Buffer.from(base64ImageBytes, 'base64');
return {
alt: generatedImage.enhancedPrompt || prompt,
buffer
};
};
//# sourceMappingURL=generateImage.js.map