{
  "id": "pu1WrbiPTjDJCIfY",
  "name": "Gork1.5",
  "tags": [],
  "nodes": [
    {
      "id": "dacff23a-b846-4c9e-8a5c-d91365d55a54",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        580,
        -880
      ],
      "parameters": {
        "width": 880,
        "height": 1968,
        "content": "## Generate AI Videos with Grok Imagine Video 1.5 API on Pollo API\n\n### Overview\nAutomate the creation of audio-rich AI videos using [Pollo API](https://api.pollo.ai)'s Grok Imagine Video 1.5 API through this intuitive n8n workflow. Powered by xAI's Aurora model, Grok Imagine Video 1.5 turns a source image into a moving video with synced audio, spatial sound, and fast 720p generation for rapid creative testing.\n\n**Key Benefits:**\n- \ud83c\udf9e\ufe0f Strong source-image consistency across subject, lighting, color, and style.\n- \ud83c\udfb5 Native synced audio with ambience, music, sound effects, and dialogue in one output.\n- \u26a1 Fast 720p video generation for rapid concept testing and creative iteration.\n- \ud83c\udfa7 Spatial audio that follows scene movement for more natural video results.\n\n### Perfect for\nPerformance marketers, ecommerce teams, social creators, indie filmmakers, and game designers who need fast image-to-video drafts with synced audio.\n\n### Prerequisites\n- [Pollo API account](https://api.pollo.ai) and API key ([Get your API key here](https://api.pollo.ai/api-keys)).\n- Active n8n instance with form submission capabilities.\n- AI prompts and source image URLs for video generation.\n\n### Quick Setup\n\n#### 1. **Get API Key**\nRegister at [api.pollo.ai](https://api.pollo.ai) and generate your API key.\n\n#### 2. **Configure Form Fields**\nSet up these fields in your \"On Form Submission\" node:\n- **`prompt`** (Required): Detailed text description of the video you want to generate.\n- **`image_url`** (Required): Publicly accessible source image URL used as the visual anchor for video generation.\n- **`model_path`** (Required): Enter `grok/grok-imagine-video-1-5` to route the request to the Grok Imagine Video 1.5 model.\n- **`api_key`** (Required): Your Pollo AI API key for authentication.\n\n#### 3. **Test & Use**\n- Execute the workflow.\n- Access the generated form URL.\n- Fill in your details and submit.\n- Wait for processing.\n- Results will be displayed automatically.\n\n### Usage Tips\n**Better Prompts:**\nMention the source image details that must stay consistent, then add camera movement, action, mood, and audio style.\n\n**Example:** \"Turn this skincare product photo into a premium 6-second video ad: slow macro push-in, soft morning light, water droplets on the glass bottle, calm spa ambience, gentle water sounds, no logo distortion.\"\n\n**Common Uses:**\n- Fast video ad concept tests\n- Product videos with built-in ambience and SFX\n- Character videos with stable identity and motion\n- Storyboard previews with mood, movement, and audio\n- Ecommerce video drafts before a full shoot\n\n### Troubleshooting\n- **API Key Invalid**: Ensure your API key is correct and active.\n- **Generation Fails**: Check whether your source image URLs are publicly accessible and not behind a login. Also, make sure your prompt follows safety guidelines.\n\n**Keywords:** Grok Imagine Video 1.5 API, Pollo API, Grok Imagine API, image-to-video API, AI video generator API, AI video with audio, synced audio generation, n8n template, AI video workflow"
      },
      "typeVersion": 1
    },
    {
      "id": "48da4fab-fe31-4e66-87ce-cd63ee821a4f",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1540,
        -80
      ],
      "parameters": {
        "color": 7,
        "width": 416,
        "height": 320,
        "content": "## Capture and submit prompt\n\nStarts the workflow from a form submission and sends the entered prompt and generation settings to the Pollo video generation API."
      },
      "typeVersion": 1
    },
    {
      "id": "c12996ed-49ef-46a9-b29f-5e9bba9370ac",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2020,
        -80
      ],
      "parameters": {
        "color": 7,
        "width": 400,
        "height": 544,
        "content": "## Poll generation status\n\nWaits for Pollo to process the video, queries the task status, and loops back to wait again until the generation is complete."
      },
      "typeVersion": 1
    },
    {
      "id": "8e3fd381-53de-4d52-8245-2276a4814fd8",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2460,
        100
      ],
      "parameters": {
        "color": 7,
        "height": 368,
        "content": "## Display generated video\n\nFormats the completed generation response for output, including task ID, status, video URL, and media type."
      },
      "typeVersion": 1
    },
    {
      "id": "462c0107-f882-44a3-ace0-ec433adc9c7b",
      "name": "When Prompt Submitted",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        1600,
        100
      ],
      "parameters": {
        "options": {},
        "formTitle": "Pollo AI video generator",
        "formFields": {
          "values": [
            {
              "fieldLabel": "prompt"
            },
            {
              "fieldLabel": "image_url"
            },
            {
              "fieldLabel": "model_path",
              "placeholder": "grok/grok-imagine-video-1-5"
            },
            {
              "fieldLabel": "api_key",
              "placeholder": "pollo_xxxxxxxx"
            }
          ]
        },
        "formDescription": "Fill in the following information to generate your video with the Pollo API"
      },
      "typeVersion": 2.2
    },
    {
      "id": "c668cf2a-86ff-41c3-a234-c81e1a859c4f",
      "name": "Post to Pollo API",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1820,
        100
      ],
      "parameters": {
        "url": "=https://pollo.ai/api/platform/generation/{{$json.model_path}}",
        "method": "POST",
        "options": {},
        "jsonBody": "={{ JSON.stringify({ input: $json.image_url ? { prompt: $json.prompt, image: $json.image_url } : { prompt: $json.prompt } }) }}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            },
            {
              "name": "x-api-key",
              "value": "={{$json.api_key}}"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "3dbaa830-aa90-410c-a278-8eac9f76ac59",
      "name": "Fetch Generation Status",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2260,
        100
      ],
      "parameters": {
        "url": "=https://pollo.ai/api/platform/generation/{{$node[\"Post to Pollo API\"].json[\"data\"][\"taskId\"]}}/status",
        "options": {},
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            },
            {
              "name": "x-api-key",
              "value": "={{$node[\"When Prompt Submitted\"].json[\"api_key\"]}}"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "5679079a-72d4-4ebd-81cf-25f40574b37d",
      "name": "If Generation Complete",
      "type": "n8n-nodes-base.if",
      "position": [
        2100,
        320
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "loose"
          },
          "combinator": "or",
          "conditions": [
            {
              "id": "66666666-+12345678900000001",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.data.generations[0].status }}",
              "rightValue": "succeed"
            },
            {
              "id": "b0fbecba-6705-4732-b33f-a4390f5329cb",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.data.generations[0].status }}",
              "rightValue": "failed"
            }
          ]
        },
        "looseTypeValidation": true
      },
      "typeVersion": 2.2
    },
    {
      "id": "50d2860c-7039-457b-8d1b-7ff278dffb34",
      "name": "Set Result Fields",
      "type": "n8n-nodes-base.set",
      "position": [
        2500,
        300
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "77777777-+12345678900000001",
              "name": "taskId",
              "type": "string",
              "value": "={{ $json.data.taskId }}"
            },
            {
              "id": "77777777-+12345678900000002",
              "name": "status",
              "type": "string",
              "value": "={{ $json.data.generations[0].status }}"
            },
            {
              "id": "77777777-+12345678900000003",
              "name": "url",
              "type": "string",
              "value": "={{ $json.data.generations[0].url }}"
            },
            {
              "id": "77777777-+12345678900000004",
              "name": "mediaType",
              "type": "string",
              "value": "={{ $json.data.generations[0].mediaType }}"
            },
            {
              "id": "77777777-+12345678900000005",
              "name": "credit",
              "type": "number",
              "value": "={{ ($json.data.generations[0].failMsg || '').includes('Credits refunded') ? 0 : $json.data.credit }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "49bba44b-556f-47ef-bca3-bf95fc7301c5",
      "name": "Wait 5 Seconds",
      "type": "n8n-nodes-base.wait",
      "position": [
        2060,
        100
      ],
      "parameters": {},
      "typeVersion": 1.1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "30d192d7-9530-4359-83d5-4e0ca214947f",
  "connections": {
    "Wait 5 Seconds": {
      "main": [
        [
          {
            "node": "Fetch Generation Status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Post to Pollo API": {
      "main": [
        [
          {
            "node": "Wait 5 Seconds",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When Prompt Submitted": {
      "main": [
        [
          {
            "node": "Post to Pollo API",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If Generation Complete": {
      "main": [
        [
          {
            "node": "Set Result Fields",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Wait 5 Seconds",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Generation Status": {
      "main": [
        [
          {
            "node": "If Generation Complete",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}