Workflow to n8n Workflow to Animate A Product Photo With Magic Hour
Workflow to n8n Workflow to Animate A Product Photo With Magic Hour is a verified WORKFLOW blueprint on Promptally in n8n Automation Blueprints optimized for leading AI models. Multi-step automated node blueprint for n8n Workflow to Animate A Product Photo With Magic Hour. Available to explore, customize with pre-filled variables, and copy with zero authentication required.
Technical Specifications
| Specification | Value |
|---|---|
| Artifact type | WORKFLOW (n8n Automation Blueprints) |
| Compatible engines | Universal / Model Agnostic |
| Input variables | None (pre-filled) |
| Approximate tokens | 1,154 |
| Source file | Animate a product photo with Magic Hour.json |
| Access tier | Free public (MIT) |
Pre-Filled Template
{
"name": "Animate a product photo with Magic Hour",
"nodes": [
{
"id": "1",
"name": "Run manually",
"type": "n8n-nodes-base.manualTrigger",
"typeVersion": 1,
"position": [
0,
300
],
"parameters": {}
},
{
"id": "2",
"name": "Magic Hour",
"type": "@gladiator1st/n8n-nodes-magichour.magicHour",
"typeVersion": 1,
"position": [
250,
300
],
"parameters": {
"resource": "video",
"operation": "imageToVideo",
"imageFilePath": "REPLACE_WITH_DIRECT_IMAGE_URL_OR_UPLOADED_FILE_PATH",
"imageToVideoPrompt": "A slow camera push toward the product on the studio background.",
"videoModel": "ltx-2.3",
"resolution": "480p",
"endSeconds": 1,
"audio": false,
"videoName": "Product animation",
"waitForCompletion": true,
"additionalOptions": {
"pollingInterval": 10,
"maxWaitTime": 600
}
},
"credentials": {
"magicHourApi": {
"id": "MAGIC_HOUR_CREDENTIAL_ID",
"name": "Magic Hour API"
}
}
},
{
"id": "3",
"name": "Require complete",
"type": "n8n-nodes-base.if",
"typeVersion": 2.2,
"position": [
500,
300
],
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "status-complete",
"leftValue": "={{ $json.status }}",
"rightValue": "complete",
"operator": {
"type": "string",
"operation": "equals"
}
}
],
"combinator": "and"
},
"options": {}
}
},
{
"id": "4",
"name": "Download result",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
750,
300
],
"parameters": {
"url": "={{ $json.downloads[0].url }}",
"options": {
"response": {
"response": {
"responseFormat": "file",
"outputPropertyName": "data"
}
}
}
}
},
{
"id": "5",
"name": "Stop incomplete job",
"type": "n8n-nodes-base.stopAndError",
"typeVersion": 1,
"position": [
750,
500
],
"parameters": {
"errorMessage": "={{ \"Generation is \" + $json.status + \". Keep project ID \" + $json.id + \" and resume with Get Details. Do not create another generation to retrieve it.\" }}"
}
},
{
"id": "6",
"name": "Setup",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
100,
-60
],
"parameters": {
"content": "## Setup\nSelect your API credential and replace the image field with a direct URL or uploaded file_path. A Drive share page is not an image URL.\nThis one-second ltx-2.3 example uses credits. The result is binary `data`, ready for a storage connector.\nKeep the returned project ID if execution stops; use the recovery template rather than regenerating.\n\nUse a self-hosted n8n instance that allows community nodes. Cloud eligibility is unverified. Tested with n8n 2.37.10 and @gladiator1st/n8n-nodes-magichour 1.0.3. Magic Hour AI source: MIT; see docs/Magic Hour workflow license.txt.",
"height": 330,
"width": 550
}
}
],
"connections": {
"Run manually": {
"main": [
[
{
"node": "Magic Hour",
"type": "main",
"index": 0
}
]
]
},
"Magic Hour": {
"main": [
[
{
"node": "Require complete",
"type": "main",
"index": 0
}
]
]
},
"Require complete": {
"main": [
[
{
"node": "Download result",
"type": "main",
"index": 0
}
],
[
{
"node": "Stop incomplete job",
"type": "main",
"index": 0
}
]
]
}
},
"settings": {
"executionOrder": "v1"
},
"active": false,
"pinData": {},
"tags": [],
"description": "Animate a product photo into a one-second video, require completion and download binary data."
}Workflow Node & Step Summary
| Step | Type | Configuration |
|---|---|---|
| Run manually | n8n-nodes-base.manualTrigger | typeVersion, position, parameters |
| Magic Hour | @gladiator1st/n8n-nodes-magichour.magicHour | typeVersion, position, parameters, credentials |
| Require complete | n8n-nodes-base.if | typeVersion, position, parameters |
| Download result | n8n-nodes-base.httpRequest | typeVersion, position, parameters |
| Stop incomplete job | n8n-nodes-base.stopAndError | typeVersion, position, parameters |
| Setup | n8n-nodes-base.stickyNote | typeVersion, position, parameters |
Raw workflow JSON
{
"name": "Animate a product photo with Magic Hour",
"nodes": [
{
"id": "1",
"name": "Run manually",
"type": "n8n-nodes-base.manualTrigger",
"typeVersion": 1,
"position": [
0,
300
],
"parameters": {}
},
{
"id": "2",
"name": "Magic Hour",
"type": "@gladiator1st/n8n-nodes-magichour.magicHour",
"typeVersion": 1,
"position": [
250,
300
],
"parameters": {
"resource": "video",
"operation": "imageToVideo",
"imageFilePath": "REPLACE_WITH_DIRECT_IMAGE_URL_OR_UPLOADED_FILE_PATH",
"imageToVideoPrompt": "A slow camera push toward the product on the studio background.",
"videoModel": "ltx-2.3",
"resolution": "480p",
"endSeconds": 1,
"audio": false,
"videoName": "Product animation",
"waitForCompletion": true,
"additionalOptions": {
"pollingInterval": 10,
"maxWaitTime": 600
}
},
"credentials": {
"magicHourApi": {
"id": "MAGIC_HOUR_CREDENTIAL_ID",
"name": "Magic Hour API"
}
}
},
{
"id": "3",
"name": "Require complete",
"type": "n8n-nodes-base.if",
"typeVersion": 2.2,
"position": [
500,
300
],
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "status-complete",
"leftValue": "={{ $json.status }}",
"rightValue": "complete",
"operator": {
"type": "string",
"operation": "equals"
}
}
],
"combinator": "and"
},
"options": {}
}
},
{
"id": "4",
"name": "Download result",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
750,
300
],
"parameters": {
"url": "={{ $json.downloads[0].url }}",
"options": {
"response": {
"response": {
"responseFormat": "file",
"outputPropertyName": "data"
}
}
}
}
},
{
"id": "5",
"name": "Stop incomplete job",
"type": "n8n-nodes-base.stopAndError",
"typeVersion": 1,
"position": [
750,
500
],
"parameters": {
"errorMessage": "={{ \"Generation is \" + $json.status + \". Keep project ID \" + $json.id + \" and resume with Get Details. Do not create another generation to retrieve it.\" }}"
}
},
{
"id": "6",
"name": "Setup",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
100,
-60
],
"parameters": {
"content": "## Setup\nSelect your API credential and replace the image field with a direct URL or uploaded file_path. A Drive share page is not an image URL.\nThis one-second ltx-2.3 example uses credits. The result is binary `data`, ready for a storage connector.\nKeep the returned project ID if execution stops; use the recovery template rather than regenerating.\n\nUse a self-hosted n8n instance that allows community nodes. Cloud eligibility is unverified. Tested with n8n 2.37.10 and @gladiator1st/n8n-nodes-magichour 1.0.3. Magic Hour AI source: MIT; see docs/Magic Hour workflow license.txt.",
"height": 330,
"width": 550
}
}
],
"connections": {
"Run manually": {
"main": [
[
{
"node": "Magic Hour",
"type": "main",
"index": 0
}
]
]
},
"Magic Hour": {
"main": [
[
{
"node": "Require complete",
"type": "main",
"index": 0
}
]
]
},
"Require complete": {
"main": [
[
{
"node": "Download result",
"type": "main",
"index": 0
}
],
[
{
"node": "Stop incomplete job",
"type": "main",
"index": 0
}
]
]
}
},
"settings": {
"executionOrder": "v1"
},
"active": false,
"pinData": {},
"tags": [],
"description": "Animate a product photo into a one-second video, require completion and download binary data."
}