Gestisci i template e le configurazioni dei flussi project-based
Impostazioni e archivio generazioni
Lista completa delle richieste registrate
Archivio delle immagini generate (ultimi 30 giorni)
Le immagini rimangono in archivio 30 giorni, poi vengono eliminate dal server in modo definitivo. Le immagini pinned non vengono cancellate
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