🤖 AI Instagram スタンプジェネレーター

中級

これはContent Creation, Multimodal AI分野の自動化ワークフローで、11個のノードを含みます。主にIf, Wait, HttpRequest, StopAndError, ScheduleTriggerなどのノードを使用。 MagicHour AI と GPT-4 による感染拡大マーケティング用のショートムービーの生成と Instagram への投稿

前提条件
  • ターゲットAPIの認証情報が必要な場合あり
  • OpenAI API Key
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
  "id": "YOUR_WORKFLOW_ID",
  "meta": {
    "instanceId": "YOUR_INSTANCE_ID",
    "templateId": "ai-instagram-meme-generator",
    "templateCredsSetupCompleted": false
  },
  "name": "🤖 AI Instagram Meme Generator",
  "tags": [
    "social-media",
    "instagram",
    "ai",
    "automation",
    "memes",
    "content-creation",
    "late-api",
    "viral-content"
  ],
  "nodes": [
    {
      "id": "wait-for-generation",
      "name": "⏳ 生成待ち",
      "type": "n8n-nodes-base.wait",
      "notes": "Allows time for AI meme generation to complete",
      "position": [
        680,
        240
      ],
      "webhookId": "YOUR_WEBHOOK_ID",
      "parameters": {
        "amount": 20
      },
      "typeVersion": 1.1
    },
    {
      "id": "schedule-trigger",
      "name": "📅 スケジュールトリガー",
      "type": "n8n-nodes-base.scheduleTrigger",
      "notes": "Runs every 12 hours - customize the interval as needed",
      "position": [
        240,
        240
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "hours",
              "hoursInterval": 12
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "get-generated-image",
      "name": "🖼️ 生成画像取得",
      "type": "n8n-nodes-base.httpRequest",
      "notes": "Retrieves the completed meme from MagicHour API",
      "position": [
        920,
        240
      ],
      "parameters": {
        "url": "=https://api.magichour.ai/v1/image-projects/{{ $('🎨 Generate Meme').item.json.id }}",
        "options": {
          "retry": {
            "enabled": true,
            "maxAttempts": 3,
            "waitBetween": 1000
          },
          "timeout": 30000
        },
        "sendHeaders": true,
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Bearer YOUR_MAGICHOUR_API_KEY"
            }
          ]
        }
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "YOUR_MAGICHOUR_CREDENTIAL_ID",
          "name": "MagicHour API"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "generate-meme",
      "name": "🎨 ミーム生成",
      "type": "n8n-nodes-base.httpRequest",
      "notes": "Creates AI-generated meme using MagicHour API - customize the topic prompt for your niche",
      "position": [
        460,
        240
      ],
      "parameters": {
        "url": "https://api.magichour.ai/v1/ai-meme-generator",
        "method": "POST",
        "options": {
          "retry": {
            "enabled": true,
            "maxAttempts": 2,
            "waitBetween": 2000
          },
          "timeout": 30000
        },
        "jsonBody": "{\n  \"name\": \"AI Generated Meme - {{ new Date().toISOString() }}\",\n  \"style\": {\n    \"topic\": \"Create a funny, relatable meme that would go viral on Instagram. Focus on everyday situations, trending topics, or universal experiences that people can relate to. Keep it light-hearted and shareable. Avoid controversial topics.\",\n    \"template\": \"Random\",\n    \"searchWeb\": true\n  }\n}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Bearer YOUR_MAGICHOUR_API_KEY"
            }
          ]
        }
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "YOUR_MAGICHOUR_CREDENTIAL_ID",
          "name": "MagicHour API"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "check-image-ready",
      "name": "✅ 画像準備確認",
      "type": "n8n-nodes-base.if",
      "notes": "Validates that the meme was generated successfully before proceeding",
      "position": [
        1160,
        240
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "image-check",
              "operator": {
                "type": "boolean",
                "operation": "equal"
              },
              "leftValue": "={{ $json.downloads && $json.downloads.length > 0 }}",
              "rightValue": true
            }
          ]
        }
      },
      "typeVersion": 2
    },
    {
      "id": "generate-caption",
      "name": "📝 AIキャプション生成",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "notes": "Creates engaging Instagram caption with hashtags using GPT-4",
      "position": [
        1400,
        160
      ],
      "parameters": {
        "text": "Analyze this meme image and write a viral Instagram caption that will maximize engagement. Requirements:\n\n1. Write 1-2 sentences that are funny, relatable, and encourage interaction\n2. Include 5-8 relevant hashtags that match the meme content\n3. Add a call-to-action (like 'Tag someone who...', 'Double tap if...', or 'Comment if...')\n4. Keep the total caption under 150 characters for better mobile viewing\n5. Use emojis strategically but don't overuse them\n6. Make it shareable - something people want to repost\n\nDO NOT include quotation marks, intro text, or explanations. Write ONLY the final caption ready to post.",
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini",
          "cachedResultName": "GPT-4O-MINI"
        },
        "options": {},
        "resource": "image",
        "imageUrls": "={{ $json.downloads[0].url }}",
        "operation": "analyze"
      },
      "credentials": {
        "openAiApi": {
          "id": "YOUR_OPENAI_CREDENTIAL_ID",
          "name": "OpenAI Account"
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "post-to-instagram",
      "name": "📱 Instagram に投稿",
      "type": "n8n-nodes-base.httpRequest",
      "notes": "Schedules the meme post to Instagram via Late API - posts 5 minutes after generation",
      "position": [
        1880,
        160
      ],
      "parameters": {
        "url": "https://getlate.dev/api/v1/posts",
        "method": "POST",
        "options": {
          "retry": {
            "enabled": true,
            "maxAttempts": 3,
            "waitBetween": 2000
          },
          "timeout": 15000
        },
        "jsonBody": "={\n  \"content\": \"{{ $('📝 Generate AI Caption').item.json.content }}\",\n  \"scheduledFor\": \"{{ new Date(Date.now() + 5*60*1000).toISOString() }}\",\n  \"timezone\": \"America/New_York\",\n  \"platforms\": [\n    {\n      \"platform\": \"instagram\",\n      \"accountId\": \"YOUR_INSTAGRAM_ACCOUNT_ID\"\n    }\n  ],\n  \"mediaItems\": [\n    {\n      \"type\": \"image\",\n      \"url\": \"{{ $('🖼️ Get Generated Image').item.json.downloads[0].url }}\",\n      \"altText\": \"AI-generated meme for Instagram engagement\"\n    }\n  ]\n}",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "YOUR_LATE_API_CREDENTIAL_ID",
          "name": "Late API"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "get-profiles",
      "name": "👤 遅延プロフィール取得",
      "type": "n8n-nodes-base.httpRequest",
      "notes": "Retrieves your Late account profiles - used for account validation",
      "position": [
        1400,
        320
      ],
      "parameters": {
        "url": "https://getlate.dev/api/v1/profiles",
        "options": {
          "timeout": 10000
        },
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "YOUR_LATE_API_CREDENTIAL_ID",
          "name": "Late API"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "get-accounts",
      "name": "🔗 接続済みアカウント取得",
      "type": "n8n-nodes-base.httpRequest",
      "notes": "Gets your connected social media accounts from Late",
      "position": [
        1640,
        320
      ],
      "parameters": {
        "url": "https://getlate.dev/api/v1/accounts",
        "options": {
          "timeout": 10000
        },
        "sendQuery": true,
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "queryParameters": {
          "parameters": [
            {
              "name": "profileId",
              "value": "YOUR_LATE_PROFILE_ID"
            }
          ]
        }
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "YOUR_LATE_API_CREDENTIAL_ID",
          "name": "Late API"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "handle-generation-error",
      "name": "❌ 生成エラー処理",
      "type": "n8n-nodes-base.stopAndError",
      "notes": "Gracefully handles cases where meme generation fails",
      "position": [
        1160,
        400
      ],
      "parameters": {
        "content": "🚨 Meme generation failed! \n\nThe AI couldn't create a meme this time. This might be due to:\n- API rate limits\n- Temporary service issues\n- Network connectivity problems\n\nThe workflow will try again in the next scheduled run (12 hours).\n\nNo action needed - this is automatically handled! ✅",
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "id": "log-success",
      "name": "📊 成功ログ記録",
      "type": "n8n-nodes-base.httpRequest",
      "notes": "Optional: Logs successful workflow execution - replace URL with your logging service",
      "position": [
        2120,
        160
      ],
      "parameters": {
        "url": "https://httpbin.org/post",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"workflow_run\": {\n    \"timestamp\": \"{{ new Date().toISOString() }}\",\n    \"status\": \"success\",\n    \"meme_generated\": true,\n    \"caption_created\": true,\n    \"instagram_scheduled\": true,\n    \"image_url\": \"{{ $('🖼️ Get Generated Image').item.json.downloads[0].url }}\",\n    \"caption_preview\": \"{{ $('📝 Generate AI Caption').item.json.content.substring(0, 50) }}...\",\n    \"next_run\": \"{{ new Date(Date.now() + 12*60*60*1000).toISOString() }}\"\n  }\n}",
        "sendBody": true,
        "specifyBody": "json"
      },
      "typeVersion": 4.2
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "callerPolicy": "workflowsFromSameOwner",
    "errorWorkflow": {
      "errorWorkflow": "",
      "continueOnFail": false
    },
    "executionOrder": "v1",
    "saveManualExecutions": true
  },
  "versionId": "YOUR_VERSION_ID",
  "connections": {
    "generate-meme": {
      "main": [
        [
          {
            "node": "wait-for-generation",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "check-image-ready": {
      "main": [
        [
          {
            "node": "generate-caption",
            "type": "main",
            "index": 0
          },
          {
            "node": "get-profiles",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "handle-generation-error",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "schedule-trigger": {
      "main": [
        [
          {
            "node": "generate-meme",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "get-profiles": {
      "main": [
        [
          {
            "node": "get-accounts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "post-to-instagram": {
      "main": [
        [
          {
            "node": "log-success",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "wait-for-generation": {
      "main": [
        [
          {
            "node": "get-generated-image",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "generate-caption": {
      "main": [
        [
          {
            "node": "post-to-instagram",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "get-accounts": {
      "main": [
        [
          {
            "node": "post-to-instagram",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "get-generated-image": {
      "main": [
        [
          {
            "node": "check-image-ready",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
よくある質問

このワークフローの使い方は?

上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。

このワークフローはどんな場面に適していますか?

中級 - コンテンツ作成, マルチモーダルAI

有料ですか?

このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。

ワークフロー情報
難易度
中級
ノード数11
カテゴリー2
ノードタイプ6
難易度説明

経験者向け、6-15ノードの中程度の複雑さのワークフロー

外部リンク
n8n.ioで表示

このワークフローを共有

カテゴリー

カテゴリー: 34