import axios from 'axios';
const API_KEY = 'AIzaSyCUV7n63Ds8qFYmjtwSrgfRzxajZ0zF83Y';
async function testImageGeneration() {
try {
const listModelsResponse = await axios.get(
`https://generativelanguage.googleapis.com/v1beta/models?key=${API_KEY}`
);
const models = listModelsResponse.data.models.map((m: any) => m.name);
console.log('All Models Count:', models.length);
const imageModels = models.filter((m: string) => m.includes('imagen') || m.includes('image'));
console.log('Image Generation Models:', imageModels);
// Testing generation with the first found imagen model or specific one
const targetModel = imageModels.find((m: string) => m.includes('imagen-3.0-generate-001')) || 'models/imagen-3.0-generate-001';
console.log('Testing generation with:', targetModel);
// Try Vertex-style 'predict' payload typically used for Imagen
// URL: .../models/...:predict
// Payload: { instances: [{ prompt: "A banana" }] }
try {
console.log('Trying predict endpoint...');
const response = await axios.post(
`https://generativelanguage.googleapis.com/v1beta/${targetModel}:predict?key=${API_KEY}`,
{
instances: [
{ prompt: 'A banana' }
],
parameters: {
sampleCount: 1
}
}
);
console.log('Predict Success! Response keys:', Object.keys(response.data));
if (response.data.predictions) {
console.log('Got predictions!');
}
} catch (e: any) {
console.log('Predict endpoint failed:', e.response ? e.response.data : e.message);
// Try generateContent (Gemini style)
try {
console.log('Trying generateContent endpoint...');
const response2 = await axios.post(
`https://generativelanguage.googleapis.com/v1beta/${targetModel}:generateContent?key=${API_KEY}`,
{
contents: [{ parts: [{ text: "A banana" }] }]
}
);
console.log('GenerateContent Success!', Object.keys(response2.data));
} catch (e2: any) {
console.log('GenerateContent failed:', e2.response ? e2.response.data : e2.message);
}
}
} catch (error: any) {
console.error('Error listing models:', error.response ? error.response.data : error.message);
}
}
testImageGeneration();