Gestisci i template e le configurazioni dei flussi project-based
Impostazioni e archivio generazioni
Lista completa delle richieste registrate
Archivio delle immagini generate
Le immagini non pinned vengono spostate in Cestino dopo 30 giorni. I metadati restano disponibili per statistiche e audit.
Analytics e metriche sulle immagini generate
Endpoint REST per generazione e modifica immagini via Gemini. Tutte le chiamate sono POST JSON e richiedono l'header x-api-key (solo header, non query/body).
Questi campi sono disponibili nelle richieste dirette e (ove indicato) in quelle project-based
stats)In modalitร project, puoi includere un sotto-oggetto stats dentro data per tracciare metriche custom:
{ "stats": { "location": "Milano", "client": "ClienteA" } }API_BASE รจ il dominio dell'API: https://nanobanana.netizens.it.
Impostazioni opzionali per gli endpoint diretti. In modalitร project la config รจ letta dal progetto/prompt
Usa un prompt esplicito nel payload. Consigliato per chiamate singole o prototipi rapidi
Genera un'immagine da testo. prompt obbligatorio
Modifica un'immagine esistente. image + mimeType + prompt obbligatori
Il prompt viene risolto lato server in base a project e id. Puoi passare un oggetto data per sostituire i placeholder {{chiave}}
In caso di successo: { success: true, image, mimeType }. In caso di errore: { success: false, error }
const API_BASE = "https://nanobanana.netizens.it";
const API_KEY = "YOUR_API_KEY";
const headers = { "Content-Type": "application/json", "x-api-key": API_KEY };
const payload = {
prompt: "Descrivi l'immagine da generare",
config: { temperature: 0.6, aspectRatio: "auto", imageSize: "auto" }, // opzionale
referenceImages: [
{ image: "<BASE64_REF>", mimeType: "image/jpeg", label: "stile" }
] // opzionale
};
const res = await fetch(`${API_BASE}/api/image/generate`, {
method: "POST",
headers,
body: JSON.stringify(payload)
});
const data = await res.json();
if (!data.success) throw new Error(data.error);
console.log(data.image, data.mimeType);
const payload = {
image: "<BASE64_IMAGE>", // immagine principale
mimeType: "image/png",
prompt: "Rendi l'immagine in stile acquerello",
config: { temperature: 0.6, aspectRatio: "auto", imageSize: "auto" }, // opzionale
referenceImages: [
{ image: "<BASE64_REF>", mimeType: "image/jpeg", label: "palette" }
] // opzionale
};
const res = await fetch(`${API_BASE}/api/image/modify`, {
method: "POST",
headers,
body: JSON.stringify(payload)
});
const data = await res.json();
if (!data.success) throw new Error(data.error);
console.log(data.image, data.mimeType);
const payload = {
project: "bridge-monaco-26",
id: "1",
data: {
colore: "blu",
intensita: 0.7,
stats: { location: "Milano", client: "ClienteA" } // opzionale: analytics custom
},
provider: "google", // opzionale: "google" o "vertex"
referenceImages: [
{ image: "<BASE64_REF>", mimeType: "image/jpeg", label: "stile" }
] // opzionale
};
const res = await fetch(`${API_BASE}/api/image/project/generate`, {
method: "POST",
headers,
body: JSON.stringify(payload)
});
const data = await res.json();
if (!data.success) throw new Error(data.error);
console.log(data.image, data.mimeType);
const payload = {
project: "bridge-monaco-26",
id: "2",
data: {
stile: "noir",
stats: { location: "Cortina", campaign: "Winter2026" } // opzionale: analytics
},
image: "<BASE64_IMAGE>",
mimeType: "image/png",
provider: "vertex", // opzionale: "google" o "vertex"
mainImageLabel: "Immagine da modificare:", // opzionale: label custom
referenceImages: [
{ image: "<BASE64_REF>", mimeType: "image/jpeg", label: "texture" }
] // opzionale
};
const res = await fetch(`${API_BASE}/api/image/project/modify`, {
method: "POST",
headers,
body: JSON.stringify(payload)
});
const data = await res.json();
if (!data.success) throw new Error(data.error);
console.log(data.image, data.mimeType);
curl -X POST https://nanobanana.netizens.it/api/image/generate \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
"prompt": "Descrivi l immagine da generare",
"config": {
"temperature": 0.6,
"aspectRatio": "auto",
"imageSize": "auto"
},
"referenceImages": [
{
"image": "BASE64_REF",
"mimeType": "image/jpeg",
"label": "stile"
}
]
}'
curl -X POST https://nanobanana.netizens.it/api/image/modify \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
"image": "BASE64_IMAGE_HERE",
"mimeType": "image/png",
"prompt": "Rendi questa immagine in bianco e nero",
"config": {
"temperature": 0.6,
"aspectRatio": "auto",
"imageSize": "auto"
},
"referenceImages": [
{
"image": "BASE64_REF_IMAGE",
"mimeType": "image/jpeg",
"label": "stile"
}
]
}'
curl -X POST https://nanobanana.netizens.it/api/image/project/generate \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
"project": "bridge-monaco-26",
"id": "1",
"data": {
"colore": "blu",
"intensita": 0.7,
"stats": { "location": "Milano", "client": "ClienteA" }
},
"provider": "google",
"referenceImages": [
{
"image": "BASE64_REF_IMAGE",
"mimeType": "image/jpeg",
"label": "stile"
}
]
}'
curl -X POST https://nanobanana.netizens.it/api/image/project/modify \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
"project": "bridge-monaco-26",
"id": "2",
"data": {
"stile": "noir",
"stats": { "location": "Cortina", "campaign": "Winter2026" }
},
"image": "BASE64_IMAGE_HERE",
"mimeType": "image/png",
"provider": "vertex",
"mainImageLabel": "Immagine da modificare:",
"referenceImages": [
{
"image": "BASE64_REF_IMAGE",
"mimeType": "image/jpeg",
"label": "texture"
}
]
}'
Scegli cosa scaricare per le 0 immagini selezionate