Création Automatisée de Figurines 3D avec Midjourney et GPT-4o

Ce workflow n8n permet de générer automatiquement des vues orthographiques de figurines 3D à partir d'images stylisées. En utilisant les capacités de Midjourney pour la génération d'images et GPT-4o pour la transformation en vues 3D complètes, ce processus améliore considérablement la productivité et réduit le temps nécessaire à la création manuelle de figurines. Idéal pour les designers et artistes, il offre une solution innovante pour visualiser rapidement des concepts en trois dimensions, tout en garantissant des rendus de haute qualité.

89,773 vues
22,188 copies
Automatisation

Documentation Complète

📋 Création Automatisée de Figurines 3D avec Midjourney et GPT-4o

💡 Description

Ce workflow n8n permet de générer automatiquement des vues orthographiques de figurines 3D à partir d'images stylisées. En utilisant les capacités de Midjourney pour la génération d'images et GPT-4o pour la transformation en vues 3D complètes, ce processus améliore considérablement la productivité et réduit le temps nécessaire à la création manuelle de figurines. Idéal pour les designers et artistes, il offre une solution innovante pour visualiser rapidement des concepts en trois dimensions, tout en garantissant des rendus de haute qualité.

📈 Impact & ROI: Ce workflow augmente l'efficacité en réduisant le temps passé sur la création manuelle de visuels, tout en augmentant le potentiel créatif grâce à l'automatisation. L'investissement initial dans la mise en place est rapidement compensé par les gains de temps et l'amélioration de la qualité du rendu final.

🚀 Fonctionnalités Clés

  • ✅ Génération rapide de conceptions 3D
  • ✅ Intégration fluide entre API
  • ✅ Automatisation du flux de travail créatif
  • ✅ Rendu haute qualité sans intervention manuelle

📊 Architecture Technique

10
Nodes
9
Connexions
2
Services

🔌 Services Intégrés

Midjourney APIGPT-4o API

🔧 Composition du Workflow

NodeTypeDescription
When clicking ‘Test workflow’manualTriggerTraitement des données
Midjourney GeneratorhttpRequestRequête HTTP vers une API externe
Get Midjourney URLhttpRequestRequête HTTP vers une API externe
Verify URL AcquisitionifCondition logique pour router le flux
Wait for GenerationwaitTraitement des données
Get Random Image URLcodeTraitement des données
Generation 3-view Image with GPT-4o-ImagehttpRequestRequête HTTP vers une API externe
Check if the URL is obtainedifCondition logique pour router le flux
Get Final OutputcodeTraitement des données
Get ImagecodeTraitement des données

📖 Guide d'Implémentation

  1. Import du workflow: Téléchargez le fichier JSON et importez-le dans votre instance n8n
  2. Configuration des credentials: Configurez les accès pour chaque service utilisé
  3. Personnalisation: Adaptez les paramètres selon vos besoins spécifiques
  4. Test: Exécutez le workflow en mode test pour vérifier le bon fonctionnement
  5. Activation: Activez le workflow pour une exécution automatique

🏷️ Tags

3DMidjourneyGPT-4o

Structure JSON

Voir le code JSON complet
{
    "id": "9r4T5kELOXAV8L1F",
    "meta": {
        "instanceId": "1e003a7ea4715b6b35e9947791386a7d07edf3b5bf8d4c9b7ee4fdcbec0447d7"
    },
    "name": "3D Figurine Orthographic Views with Midjourney and GPT-4o-Image API",
    "tags": [],
    "nodes": [
        {
            "id": "30ff7c89-7fb6-4daf-b7f2-d178ee702243",
            "name": "When clicking ‘Test workflow’",
            "type": "n8n-nodes-base.manualTrigger",
            "position": [
                720,
                220
            ],
            "parameters": [],
            "typeVersion": 1
        },
        {
            "id": "26cb9d6e-6a73-4a27-805d-8577c84101fa",
            "name": "Midjourney Generator",
            "type": "n8n-nodes-base.httpRequest",
            "position": [
                940,
                220
            ],
            "parameters": {
                "url": "https:\/\/api.piapi.ai\/api\/v1\/task",
                "method": "POST",
                "options": [],
                "jsonBody": "{\n  \"model\": \"midjourney\",\n  \"task_type\": \"imagine\",\n  \"input\": {\n    \"prompt\": \"IP design, pop mart style, cartoon-style characters, a little girl with a red satche on her back, a pair of big eyes, long eyelashes, with pigtails, wearing a red beret, red shoes, chubby body, wearing a red and white striped dress, clean white background, crystal-clear material::5, 3D rendering, 3D modeling --ar 3:4 --niji 6\",\n    \"aspect_ratio\": \"3:2\",\n    \"process_mode\": \"turbo\",\n    \"skip_prompt_check\": false\n  }\n}",
                "sendBody": true,
                "sendHeaders": true,
                "specifyBody": "json",
                "headerParameters": {
                    "parameters": [
                        {
                            "name": "x-api-key"
                        }
                    ]
                }
            },
            "typeVersion": 4.2
        },
        {
            "id": "4220555c-f4f4-43ab-8d03-1ae4b959bdd1",
            "name": "Get Midjourney URL",
            "type": "n8n-nodes-base.httpRequest",
            "position": [
                760,
                460
            ],
            "parameters": {
                "url": "=https:\/\/api.piapi.ai\/api\/v1\/task\/{{ $json.data.task_id }}",
                "options": [],
                "sendHeaders": true,
                "headerParameters": {
                    "parameters": [
                        {
                            "name": "x-api-key",
                            "value": "72858adea87ad16865d5b0a24c3d9b9f58a6e7b1a8a8a8a0d6b81a9f3a9812f3"
                        }
                    ]
                }
            },
            "typeVersion": 4.2
        },
        {
            "id": "e81311ee-4522-4fb3-929f-1c062427c859",
            "name": "Verify URL Acquisition",
            "type": "n8n-nodes-base.if",
            "position": [
                960,
                460
            ],
            "parameters": {
                "options": [],
                "conditions": {
                    "options": {
                        "version": 2,
                        "leftValue": "",
                        "caseSensitive": true,
                        "typeValidation": "strict"
                    },
                    "combinator": "and",
                    "conditions": [
                        {
                            "id": "a0f8758e-d6fd-44f8-bd79-bc3c4dceddcf",
                            "operator": {
                                "name": "filter.operator.equals",
                                "type": "string",
                                "operation": "equals"
                            },
                            "leftValue": "={{ $json.data.status }}",
                            "rightValue": "completed"
                        }
                    ]
                }
            },
            "typeVersion": 2.2
        },
        {
            "id": "9519899e-c246-474e-8fd6-7dd16cf27a5b",
            "name": "Wait for Generation",
            "type": "n8n-nodes-base.wait",
            "position": [
                980,
                700
            ],
            "webhookId": "f3bcf634-8c4b-4bf9-a7f2-d4ee369f5349",
            "parameters": [],
            "typeVersion": 1.1
        },
        {
            "id": "693348ab-12ab-4896-9fda-a9141263ccbf",
            "name": "Get Random Image URL",
            "type": "n8n-nodes-base.code",
            "position": [
                1240,
                520
            ],
            "parameters": {
                "jsCode": "\/\/ JavaScript Code for Function Node\nreturn {\n  random_temp_url: $input.all()[0].json.data.output.temporary_image_urls[\n    Math.floor(Math.random() * $input.all()[0].json.data.output.temporary_image_urls.length)\n  ]\n};"
            },
            "typeVersion": 2
        },
        {
            "id": "18f030a6-7333-45df-af1d-f8c5492084c6",
            "name": "Generation 3-view Image with GPT-4o-Image",
            "type": "n8n-nodes-base.httpRequest",
            "position": [
                1440,
                520
            ],
            "parameters": {
                "url": "https:\/\/api.piapi.ai\/v1\/chat\/completions",
                "method": "POST",
                "options": [],
                "jsonBody": "={\n    \"model\": \"gpt-4o-image-preview\",\n    \"messages\": [\n        {\n            \"role\": \"user\",\n            \"content\": [\n                {\n                    \"type\": \"image_url\",\n                    \"image_url\": {\n                        \"url\": \"{{ $json.random_temp_url }}\"\n                    }\n                },\n                {\n                    \"type\": \"text\",\n                    \"text\": \"Convert this image into a 3D figurine image, with front view, side view, and back view in one page. Generate a turnaround sheet showing the figurine’s front with full details, profile, and back views in left-to-right sequence. ar=10:3\"\n                }\n            ]\n        }\n    ],\n    \"stream\": true\n}",
                "sendBody": true,
                "sendHeaders": true,
                "specifyBody": "json",
                "authentication": "genericCredentialType",
                "genericAuthType": "httpHeaderAuth",
                "headerParameters": {
                    "parameters": [
                        {
                            "name": "Authorization",
                            "value": "Bearer "
                        }
                    ]
                }
            },
            "credentials": {
                "httpHeaderAuth": {
                    "id": "fsJeCNd9BkJ1CIrt",
                    "name": "Header Auth account 2"
                }
            },
            "typeVersion": 4.2
        },
        {
            "id": "4d758715-79d5-4c2e-94d2-d1cfe1bdda6d",
            "name": "Check if the URL is obtained",
            "type": "n8n-nodes-base.if",
            "position": [
                1840,
                520
            ],
            "parameters": {
                "options": [],
                "conditions": {
                    "options": {
                        "version": 2,
                        "leftValue": "",
                        "caseSensitive": true,
                        "typeValidation": "strict"
                    },
                    "combinator": "and",
                    "conditions": [
                        {
                            "id": "08a2ebe6-dc95-4b8a-ada1-1173645cc3f4",
                            "operator": {
                                "name": "filter.operator.equals",
                                "type": "string",
                                "operation": "equals"
                            },
                            "leftValue": "={{ $json.finish_reason }}",
                            "rightValue": "not_found"
                        },
                        {
                            "id": "ed245d42-677f-4465-a3f1-d23c6e609f5e",
                            "operator": {
                                "name": "filter.operator.equals",
                                "type": "string",
                                "operation": "equals"
                            },
                            "leftValue": "",
                            "rightValue": ""
                        }
                    ]
                }
            },
            "typeVersion": 2.2
        },
        {
            "id": "690c002c-8641-4bb9-8c55-8b5cd6f01f2c",
            "name": "Get Final Output",
            "type": "n8n-nodes-base.code",
            "position": [
                2080,
                540
            ],
            "parameters": {
                "jsCode": "\/\/ Method 2: n8n workflow compatible version\nreturn $input.all().map(item => {\n  return {\n    image_url: item.json.image_url\n  };\n});"
            },
            "typeVersion": 2
        },
        {
            "id": "db38b578-1078-4a89-b429-55ba337a21fc",
            "name": "Get Image",
            "type": "n8n-nodes-base.code",
            "position": [
                1660,
                520
            ],
            "parameters": {
                "jsCode": "const chunks = $input.first().json.data.split('\\n\\n');\n\nlet imageUrl = null;\n\n\/\/ 反向遍历 chunks (从最新数据开始检查)\nfor (let i = chunks.length - 1; i >= 0; i--) {\n    const chunk = chunks[i];\n    \n    if (!chunk.startsWith('data: ')) continue;\n    \n    try {\n        const jsonStr = chunk.substring(6); \/\/ 去掉 \"data: \" 前缀\n        if (jsonStr.trim() === '[DONE]') continue;\n        \n        const data = JSON.parse(jsonStr);\n        \n        \/\/ 检查是否包含图片标记(Markdown 图片语法)\n        if (data.choices && data.choices[0].delta.content) {\n            const content = data.choices[0].delta.content;\n            const urlMatch = content.match(\/!\\[.*?\\]\\((https?:\\\/\\\/[^\\s]+)\\)\/);\n            \n            if (urlMatch && urlMatch[1]) {\n                imageUrl = urlMatch[1];\n                break;\n            }\n        }\n    } catch (e) {\n        continue;\n    }\n}\n\nreturn {\n    image_url: imageUrl,\n    finish_reason: imageUrl ? \"success\" : \"not_found\"\n};"
            },
            "typeVersion": 2
        }
    ],
    "active": false,
    "pinData": [],
    "settings": {
        "executionOrder": "v1"
    },
    "versionId": "0e663ca1-c9b2-4fb2-a8bb-14ed8bb63d11",
    "connections": {
        "Get Image": {
            "main": [
                [
                    {
                        "node": "Check if the URL is obtained",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Get Midjourney URL": {
            "main": [
                [
                    {
                        "node": "Verify URL Acquisition",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Wait for Generation": {
            "main": [
                [
                    {
                        "node": "Get Midjourney URL",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Get Random Image URL": {
            "main": [
                [
                    {
                        "node": "Generation 3-view Image with GPT-4o-Image",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Midjourney Generator": {
            "main": [
                [
                    {
                        "node": "Get Midjourney URL",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Verify URL Acquisition": {
            "main": [
                [
                    {
                        "node": "Get Random Image URL",
                        "type": "main",
                        "index": 0
                    }
                ],
                [
                    {
                        "node": "Wait for Generation",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Check if the URL is obtained": {
            "main": [
                [
                    {
                        "node": "Generation 3-view Image with GPT-4o-Image",
                        "type": "main",
                        "index": 0
                    }
                ],
                [
                    {
                        "node": "Get Final Output",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "When clicking ‘Test workflow’": {
            "main": [
                [
                    {
                        "node": "Midjourney Generator",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Generation 3-view Image with GPT-4o-Image": {
            "main": [
                [
                    {
                        "node": "Get Image",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        }
    }
}
                                

Workflows Similaires

Automatisez le Résumé de Vos Emails avec A.I. et Messagerie

Ce workflow n8n vous permet d'automatiser la gestion de vos emails en utilisant l'intelligence artificielle pour résume...

Automatisation de gestion des réunions Zoom et communication

Ce workflow est conçu pour automatiser le processus de planification et de gestion des réunions Zoom tout en assurant ...

Automatisez vos Tweets d'images humoristiques à 17h

Ce workflow n8n est conçu pour les professionnels des réseaux sociaux cherchant à automatiser leur contenu humoristiq...