n8n × PopNow

Genera immagini e video con l’IA in n8n

Niente da installare: il nodo HTTP Request integrato in n8n chiama direttamente l’API di PopNow, sia su n8n Cloud sia in self-hosting. Incolla il workflow, aggiungi la chiave e avvialo.

Configuralo in quattro passi

  1. In n8n aggiungi una credenziale Header Auth. Name: Authorization. Value: Bearer, uno spazio e poi la tua chiave sk-popnow-.
  2. Copia il workflow qui sotto e incollalo su un canvas vuoto con Ctrl + V (Cmd + V su Mac).
  3. Apri il nodo Create task, scegli la credenziale, poi cambia modello e prompt.
  4. Avvialo. L’ultimo nodo restituisce l’URL del file; aggiungi dopo un nodo Google Drive, Slack o S3 per conservarlo.

Il workflow

Crea il task, aspetta, controllalo, ripeti finché è pronto, poi passa il link del file al nodo successivo.

  1. Start
  2. Create task
  3. Wait 5 seconds
  4. Check task
  5. Done?
  6. File URL

↺ Done? → Wait 5 seconds

popnow-workflow.json
{
  "name": "PopNow: generate and get the file",
  "nodes": [
    {
      "id": "b1f0c1a2-0001-4c55-9a10-000000000001",
      "name": "Start",
      "type": "n8n-nodes-base.manualTrigger",
      "typeVersion": 1,
      "position": [
        0,
        0
      ],
      "parameters": {}
    },
    {
      "id": "b1f0c1a2-0002-4c55-9a10-000000000002",
      "name": "Create task",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        220,
        0
      ],
      "parameters": {
        "method": "POST",
        "url": "https://api.popnow.ai/api/v1/jobs/createTask",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Idempotency-Key",
              "value": "={{ $execution.id }}"
            }
          ]
        },
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "{\n  \"model\": \"google/nano-banana-2.1/text-to-image\",\n  \"input\": {\n    \"prompt\": \"A ceramic teapot on a linen cloth, soft window light, muted palette\",\n    \"aspect_ratio\": \"16:9\",\n    \"resolution\": \"1k\",\n    \"output_format\": \"png\"\n  }\n}",
        "options": {}
      }
    },
    {
      "id": "b1f0c1a2-0003-4c55-9a10-000000000003",
      "name": "Wait 5 seconds",
      "type": "n8n-nodes-base.wait",
      "typeVersion": 1.1,
      "position": [
        440,
        0
      ],
      "parameters": {
        "amount": 5
      },
      "webhookId": "4d3c2b1a-5e6f-4a7b-8c9d-0e1f2a3b4c5d"
    },
    {
      "id": "b1f0c1a2-0004-4c55-9a10-000000000004",
      "name": "Check task",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        660,
        0
      ],
      "parameters": {
        "url": "https://api.popnow.ai/api/v1/jobs/recordInfo",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "sendQuery": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "taskId",
              "value": "={{ $('Create task').item.json.data.taskId }}"
            }
          ]
        },
        "options": {}
      }
    },
    {
      "id": "b1f0c1a2-0005-4c55-9a10-000000000005",
      "name": "Done?",
      "type": "n8n-nodes-base.if",
      "typeVersion": 2,
      "position": [
        880,
        0
      ],
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "loose"
          },
          "conditions": [
            {
              "id": "c0ffee00-0000-4000-8000-000000000001",
              "leftValue": "={{ ['succeeded','failed','canceled','expired'].includes($json.data.state) && !($json.data.output?.assets ?? []).some(a => a.pending && !a.unavailable) }}",
              "rightValue": "",
              "operator": {
                "type": "boolean",
                "operation": "true",
                "singleValue": true
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      }
    },
    {
      "id": "b1f0c1a2-0006-4c55-9a10-000000000006",
      "name": "File URL",
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        1100,
        -100
      ],
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "c0ffee00-0000-4000-8000-000000000002",
              "name": "state",
              "value": "={{ $json.data.state }}",
              "type": "string"
            },
            {
              "id": "c0ffee00-0000-4000-8000-000000000003",
              "name": "fileUrl",
              "value": "={{ $json.data.output?.assets?.[0]?.url ?? '' }}",
              "type": "string"
            },
            {
              "id": "c0ffee00-0000-4000-8000-000000000004",
              "name": "error",
              "value": "={{ $json.data.errorMessage ?? '' }}",
              "type": "string"
            }
          ]
        },
        "options": {}
      }
    }
  ],
  "connections": {
    "Start": {
      "main": [
        [
          {
            "node": "Create task",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create task": {
      "main": [
        [
          {
            "node": "Wait 5 seconds",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait 5 seconds": {
      "main": [
        [
          {
            "node": "Check task",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check task": {
      "main": [
        [
          {
            "node": "Done?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Done?": {
      "main": [
        [
          {
            "node": "File URL",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Wait 5 seconds",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1"
  }
}

JSON di n8n puro. Modello e input vengono da questa pagina, quindi superano la verifica così come sono.

Cosa cambiare

Tieni sotto controllo la spesa. Nella console dai alla chiave di n8n un suo limite giornaliero e i modelli consentiti. Un ciclo fuori controllo si ferma al limite invece di prosciugare il saldo.

model
Il nome del modello. Ogni pagina di modello nella sezione API lo mostra, con un pulsante per copiarlo.
input
Prompt e opzioni di quel modello. La sua pagina API elenca ogni campo, con intervallo e valore predefinito.
callBackUrl
Facoltativa. Puntala a un nodo Webhook di n8n ed elimina il ciclo di attesa: ti inviamo lì il task completato.
Idempotency-Key
È già impostata sull’id dell’esecuzione, così un nodo ritentato non paga mai due volte la stessa esecuzione.

Buoni modelli per cominciare

Scelte veloci e a buon prezzo per le automazioni. Ogni link mostra nome del modello, parametri e prezzo.

Domande su n8n

Mi serve un nodo community di PopNow?

No. Il workflow usa solo nodi inclusi in n8n: Manual Trigger, HTTP Request, Wait, If ed Edit Fields. Funziona su n8n Cloud e in self-hosting.

Come uso le immagini dei nodi precedenti?

Passa un link https pubblico nel campo immagine. Se il file esiste solo dentro n8n, caricalo prima tramite l’API e usa il riferimento popnow:// che ricevi.

Quanto costa un’esecuzione?

Gli stessi crediti del sito, a chiamata. Un’immagine Nano Banana costa pochi crediti; il video si paga al secondo. I task falliti vengono rimborsati.

Quanto dura un’esecuzione?

Le immagini di solito sono pronte in meno di un minuto, i video in pochi minuti. Il ciclo di attesa controlla ogni cinque secondi; con una callBackUrl non devi aspettare affatto.