This workflow corresponds to n8n.io template #7111 — we link there as the canonical source.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"id": "ehdJCsJyErJC1jtK",
"name": "7. Generate 3D Models & Textures from Images with Hunyuan3D AI",
"tags": [],
"nodes": [
{
"id": "2f62f2a8-13d0-44d2-8b81-fedc9b2a703c",
"name": "On clicking 'execute'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-272,
-32
],
"parameters": {},
"typeVersion": 1
},
{
"id": "733f09b8-cbcb-40d1-a453-f181eafe0b56",
"name": "Set API Key",
"type": "n8n-nodes-base.set",
"position": [
-64,
-32
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "64cd57c7-2224-48a6-88df-c37b310f8eb3",
"name": "replicate_api_key",
"type": "string",
"value": "YOUR_REPLICATE_API_KEY"
}
]
}
},
"typeVersion": 3.3
},
{
"id": "84d49ec1-b81f-430f-977e-a246e70c7196",
"name": "Create Prediction",
"type": "n8n-nodes-base.httpRequest",
"position": [
176,
-32
],
"parameters": {
"url": "https://api.replicate.com/v1/predictions",
"method": "POST",
"options": {
"timeout": 60000
},
"jsonBody": "{\n \"version\": \"70d0d816b74578a2ee5e7906284ab8bd26cf4f6a3fb7797dcd58059b803ae75f\",\n \"input\": {\n \"image\": \"https://example.com/input.other\",\n \"seed\": 1234,\n \"steps\": 50,\n \"num_chunks\": 8000,\n \"max_facenum\": 20000,\n \"guidance_scale\": 7.5,\n \"generate_texture\": true,\n \"remove_background\": true\n }\n}",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "={{ 'Bearer ' + $('Set API Key').item.json.replicate_api_key }}"
},
{
"name": "Content-Type",
"value": "application/json"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "db470338-596d-4b1e-b34a-d6559ee22fec",
"name": "Extract Prediction ID",
"type": "n8n-nodes-base.code",
"position": [
384,
-32
],
"parameters": {
"mode": "runOnceForEachItem",
"jsCode": "// Extract prediction ID and initial status\\nconst prediction = $input.item.json;\\nconst predictionId = prediction.id;\\nconst initialStatus = prediction.status;\\n\\n// Store the prediction ID for polling\\nreturn {\\n predictionId: predictionId,\\n status: initialStatus,\\n predictionUrl: `https://api.replicate.com/v1/predictions/${predictionId}`\\n};"
},
"typeVersion": 2
},
{
"id": "a92796bf-b794-4c3e-a277-00319cd5dc33",
"name": "Wait",
"type": "n8n-nodes-base.wait",
"position": [
608,
-32
],
"parameters": {
"unit": "seconds",
"amount": 2
},
"typeVersion": 1
},
{
"id": "05d9be59-6e59-4326-b897-c658e6cb5311",
"name": "Check Prediction Status",
"type": "n8n-nodes-base.httpRequest",
"position": [
832,
-32
],
"parameters": {
"url": "={{ $json.predictionUrl }}",
"options": {},
"sendHeaders": true,
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "={{ 'Bearer ' + $('Set API Key').item.json.replicate_api_key }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "0e8f8825-9556-4d68-b2ee-b7c71922b8f2",
"name": "Check If Complete",
"type": "n8n-nodes-base.if",
"position": [
1056,
-32
],
"parameters": {
"conditions": {
"boolean": [
{
"value1": "={{ $json.status }}",
"value2": "succeeded"
}
]
}
},
"typeVersion": 1
},
{
"id": "91e21baf-7044-42f0-a899-49aca23f730d",
"name": "Process Result",
"type": "n8n-nodes-base.code",
"position": [
1296,
-144
],
"parameters": {
"mode": "runOnceForEachItem",
"jsCode": "// Process the completed prediction\\nconst result = $input.item.json;\\n\\nreturn {\\n status: result.status,\\n output: result.output,\\n metrics: result.metrics,\\n created_at: result.created_at,\\n completed_at: result.completed_at,\\n model: 'ndreca/hunyuan3d-2.1-test',\\n other_url: result.output\\n};"
},
"typeVersion": 2
},
{
"id": "2a4b07d5-0691-48e8-8247-84f604db01ca",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-336,
-912
],
"parameters": {
"color": 2,
"width": 438,
"height": 1087,
"content": "## \u26a1 **Section 1: Trigger & Setup**\n\n### \u2699\ufe0f **Nodes**\n\n1\ufe0f\u20e3 **On Clicking \u201cExecute\u201d**\n\n* **What it does:** Starts the workflow manually in n8n.\n* **Why it\u2019s useful:** Great for testing or one-off runs before automation.\n\n2\ufe0f\u20e3 **Set API Key**\n\n* **What it does:** Stores your **Replicate API Key**.\n* **Why it\u2019s useful:** Keeps authentication secure and reusable across HTTP nodes.\n\n---\n\n\ud83d\udca1 **Beginner Benefit**\n\n* No coding needed \u2014 just paste your API key once.\n* Easy to test: press **Execute**, and you\u2019re live.\n\n---\n\n"
},
"typeVersion": 1
},
{
"id": "f6f876d7-0419-4f67-97b9-eb343c390afb",
"name": "Sticky Note9",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2112,
-576
],
"parameters": {
"color": 4,
"width": 1300,
"height": 320,
"content": "=======================================\n WORKFLOW ASSISTANCE\n=======================================\nFor any questions or support, please contact:\n Yaron@nofluff.online\n\nExplore more tips and tutorials here:\n - YouTube: https://www.youtube.com/@YaronBeen/videos\n - LinkedIn: https://www.linkedin.com/in/yaronbeen/\n=======================================\n"
},
"typeVersion": 1
},
{
"id": "dbd692e5-b0d5-4652-adc6-893eeb6d2882",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2112,
-240
],
"parameters": {
"color": 4,
"width": 1289,
"height": 4094,
"content": "# Generate 3D Models & Textures from Images with Hunyuan3D AI\n\nThis workflow connects **n8n \u2192 Replicate API** to generate 3D-like outputs using the **ndreca/hunyuan3d-2.1-test** model. It handles everything: sending the request, waiting for processing, checking status, and returning results.\n\n---\n\n## \u26a1 **Section 1: Trigger & Setup**\n\n### \u2699\ufe0f **Nodes**\n\n1\ufe0f\u20e3 **On Clicking \u201cExecute\u201d**\n\n* **What it does:** Starts the workflow manually in n8n.\n* **Why it\u2019s useful:** Great for testing or one-off runs before automation.\n\n2\ufe0f\u20e3 **Set API Key**\n\n* **What it does:** Stores your **Replicate API Key**.\n* **Why it\u2019s useful:** Keeps authentication secure and reusable across HTTP nodes.\n\n---\n\n\ud83d\udca1 **Beginner Benefit**\n\n* No coding needed \u2014 just paste your API key once.\n* Easy to test: press **Execute**, and you\u2019re live.\n\n---\n\n## \ud83e\udd16 **Section 2: Send Job to Replicate**\n\n### \u2699\ufe0f **Nodes**\n\n3\ufe0f\u20e3 **Create Prediction (HTTP Request)**\n\n* **What it does:** Sends a **POST request** to Replicate\u2019s API with:\n\n * Model version (`70d0d816...ae75f`)\n * Input image URL\n * Parameters like `steps`, `seed`, `generate_texture`, `remove_background`\n* **Why it\u2019s useful:** This kicks off the AI generation job on Replicate\u2019s servers.\n\n4\ufe0f\u20e3 **Extract Prediction ID (Code)**\n\n* **What it does:** Grabs the **prediction ID** from the API response and builds a status-check URL.\n* **Why it\u2019s useful:** Every job has a unique ID \u2014 this lets us track progress later.\n\n---\n\n\ud83d\udca1 **Beginner Benefit**\n\n* You don\u2019t need to worry about JSON parsing \u2014 the workflow extracts the ID automatically.\n* Everything is reusable if you run multiple generations.\n\n---\n\n## \u23f3 **Section 3: Poll Until Complete**\n\n### \u2699\ufe0f **Nodes**\n\n5\ufe0f\u20e3 **Wait (2s)**\n\n* **What it does:** Pauses for 2 seconds before checking the job status.\n* **Why it\u2019s useful:** Prevents spamming the API with too many requests.\n\n6\ufe0f\u20e3 **Check Prediction Status (HTTP Request)**\n\n* **What it does:** GET request to see if the job is finished.\n\n7\ufe0f\u20e3 **Check If Complete (IF Node)**\n\n* **What it does:**\n\n * If `status = succeeded` \u2192 process results.\n * If not \u2192 loops back to **Wait** and checks again.\n\n---\n\n\ud83d\udca1 **Beginner Benefit**\n\n* Handles waiting logic for you \u2014 no manual refreshing needed.\n* Keeps looping until the AI job is really done.\n\n---\n\n## \ud83d\udce6 **Section 4: Process the Result**\n\n### \u2699\ufe0f **Nodes**\n\n8\ufe0f\u20e3 **Process Result (Code)**\n\n* **What it does:** Extracts:\n\n * `status`\n * `output` (final generated file/URL)\n * `metrics` (performance stats)\n * Timestamps (`created_at`, `completed_at`)\n * Model info\n* **Why it\u2019s useful:** Packages the response neatly for storage, email, or sending elsewhere.\n\n---\n\n\ud83d\udca1 **Beginner Benefit**\n\n* Get clean, structured data ready for saving or sending.\n* Can be extended easily: push output to **Google Drive, Notion, or Slack**.\n\n---\n\n## \ud83d\udcca **Workflow Overview**\n\n| Section | What happens | Key Nodes | Benefit |\n| --------------------- | --------------------------------- | ----------------------------- | --------------------------------- |\n| \u26a1 Trigger & Setup | Start workflow + set API key | Manual Trigger, Set | Easy one-click start |\n| \ud83e\udd16 Send Job | Send input & get prediction ID | Create Prediction, Extract ID | Launches AI generation |\n| \u23f3 Poll Until Complete | Waits + checks status until ready | Wait, Check Status, IF | Automated loop, no manual refresh |\n| \ud83d\udce6 Process Result | Collects output & metrics | Process Result | Clean result for next steps |\n\n---\n\n## \ud83c\udfaf **Overall Benefits**\n\n\u2705 Fully automates Replicate model runs\n\u2705 Handles waiting, retries, and completion checks\n\u2705 Clean final output with status + metrics\n\u2705 Beginner-friendly \u2014 just add API key + input image\n\u2705 Extensible: connect results to Google Sheets, Gmail, Slack, or databases\n\n---\n\n\u2728 In short: This is a **no-code AI image-to-3D content generator** powered by **Replicate** and automated by **n8n**.\n\n---\n"
},
"typeVersion": 1
},
{
"id": "f6237bb8-0a60-4774-86fa-9dcde7311164",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
128,
-1088
],
"parameters": {
"color": 5,
"width": 406,
"height": 1263,
"content": "## \ud83e\udd16 **Section 2: Send Job to Replicate**\n\n### \u2699\ufe0f **Nodes**\n\n3\ufe0f\u20e3 **Create Prediction (HTTP Request)**\n\n* **What it does:** Sends a **POST request** to Replicate\u2019s API with:\n\n * Model version (`70d0d816...ae75f`)\n * Input image URL\n * Parameters like `steps`, `seed`, `generate_texture`, `remove_background`\n* **Why it\u2019s useful:** This kicks off the AI generation job on Replicate\u2019s servers.\n\n4\ufe0f\u20e3 **Extract Prediction ID (Code)**\n\n* **What it does:** Grabs the **prediction ID** from the API response and builds a status-check URL.\n* **Why it\u2019s useful:** Every job has a unique ID \u2014 this lets us track progress later.\n\n---\n\n\ud83d\udca1 **Beginner Benefit**\n\n* You don\u2019t need to worry about JSON parsing \u2014 the workflow extracts the ID automatically.\n* Everything is reusable if you run multiple generations.\n\n---\n\n"
},
"typeVersion": 1
},
{
"id": "ad7e485f-02c1-4716-a59d-d8624fef1473",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
560,
-1024
],
"parameters": {
"color": 6,
"width": 614,
"height": 1199,
"content": "## \u23f3 **Section 3: Poll Until Complete**\n\n### \u2699\ufe0f **Nodes**\n\n5\ufe0f\u20e3 **Wait (2s)**\n* **What it does:** Pauses for 2 seconds before checking the job status.\n* **Why it\u2019s useful:** Prevents spamming the API with too many requests.\n\n6\ufe0f\u20e3 **Check Prediction Status (HTTP Request)**\n\n* **What it does:** GET request to see if the job is finished.\n\n7\ufe0f\u20e3 **Check If Complete (IF Node)**\n\n* **What it does:**\n\n * If `status = succeeded` \u2192 process results.\n * If not \u2192 loops back to **Wait** and checks again.\n\n---\n\n\ud83d\udca1 **Beginner Benefit**\n\n* Handles waiting logic for you \u2014 no manual refreshing needed.\n* Keeps looping until the AI job is really done.\n\n---\n\n"
},
"typeVersion": 1
},
{
"id": "a34db2ed-539b-461f-99e3-8f5fdef3e750",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
1200,
-928
],
"parameters": {
"color": 3,
"width": 310,
"height": 1103,
"content": "## \ud83d\udce6 **Section 4: Process the Result**\n\n### \u2699\ufe0f **Nodes**\n\n8\ufe0f\u20e3 **Process Result (Code)**\n\n* **What it does:** Extracts:\n\n * `status`\n * `output` (final generated file/URL)\n * `metrics` (performance stats)\n * Timestamps (`created_at`, `completed_at`)\n * Model info\n* **Why it\u2019s useful:** Packages the response neatly for storage, email, or sending elsewhere.\n\n---\n\n\ud83d\udca1 **Beginner Benefit**\n\n* Get clean, structured data ready for saving or sending.\n* Can be extended easily: push output to **Google Drive, Notion, or Slack**.\n\n---\n\n"
},
"typeVersion": 1
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "413b414a-ffc1-4e47-9272-4f1e1d136bd0",
"connections": {
"Wait": {
"main": [
[
{
"node": "Check Prediction Status",
"type": "main",
"index": 0
}
]
]
},
"Set API Key": {
"main": [
[
{
"node": "Create Prediction",
"type": "main",
"index": 0
}
]
]
},
"Check If Complete": {
"main": [
[
{
"node": "Process Result",
"type": "main",
"index": 0
}
],
[
{
"node": "Wait",
"type": "main",
"index": 0
}
]
]
},
"Create Prediction": {
"main": [
[
{
"node": "Extract Prediction ID",
"type": "main",
"index": 0
}
]
]
},
"Extract Prediction ID": {
"main": [
[
{
"node": "Wait",
"type": "main",
"index": 0
}
]
]
},
"On clicking 'execute'": {
"main": [
[
{
"node": "Set API Key",
"type": "main",
"index": 0
}
]
]
},
"Check Prediction Status": {
"main": [
[
{
"node": "Check If Complete",
"type": "main",
"index": 0
}
]
]
}
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This workflow connects n8n → Replicate API to generate 3D-like outputs using the ndreca/hunyuan3d-2.1-test model. It handles everything: sending the request, waiting for processing, checking status, and returning results.
Source: https://n8n.io/workflows/7111/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
This workflow allows you to import any workflow from a file or another n8n instance and map the credentials easily. A multi-form setup guides you through the entire process At the beginning you have t
[n8n] Advanced URL Parsing and Shortening Workflow - Switchy.io Integration. Uses splitInBatches, stickyNote, httpRequest, html. Event-driven trigger; 56 nodes.
[](https://youtu.be/c7yCZhmMjtI)
This automation organizes your n8n workflows files into categorizes (Active, Template, Done, Archived) and uploads them directly to a categorized Google Drive folders. It is designed to help users man
Create Animated Stories using GPT-4o-mini, Midjourney, Kling and Creatomate API. Uses httpRequest. Event-driven trigger; 51 nodes.