Gemini AI と Telegram Bot を使用したテキストプロンプトによる画像編集

中級

これは自動化ワークフローで、10個のノードを含みます。主にFilter, Telegram, TelegramTrigger, GoogleGeminiなどのノードを使用。 Gemini AI と Telegram Bot を使用したテキスト プロンプト画像編集

前提条件
  • Telegram Bot Token

カテゴリー

-
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
  "meta": {
    "instanceId": "3d7eb9567ae690bf8c9bba1cb43396e6e40c18e15eb5889cf9673ed1713da6db",
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "5dbb5361-0f1a-403a-a6d2-f8aaeebcd2c4",
      "name": "Telegram Trigger",
      "type": "n8n-nodes-base.telegramTrigger",
      "position": [
        1136,
        832
      ],
      "webhookId": "6c7d3559-595b-4ed7-8697-774bf86a798b",
      "parameters": {
        "updates": [
          "message"
        ],
        "additionalFields": {
          "download": false
        }
      },
      "credentials": {
        "telegramApi": {
          "id": "Elo6BLaLpBDVgeLW",
          "name": "LinkedIn Post"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "113490e2-abd8-4aa6-8b3e-58030c4d731a",
      "name": "Filter: キャプションとファイルあり",
      "type": "n8n-nodes-base.filter",
      "position": [
        1328,
        832
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "1cb10407-8c50-4e81-ac9b-72c03cab65d6",
              "operator": {
                "type": "string",
                "operation": "exists",
                "singleValue": true
              },
              "leftValue": "={{ $('Telegram Trigger').item.json.message.caption }}",
              "rightValue": ""
            },
            {
              "id": "cbf13e8f-7620-4db5-ba40-ecbb248c05b4",
              "operator": {
                "type": "string",
                "operation": "exists",
                "singleValue": true
              },
              "leftValue": "={{ $json.message.document.file_id }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "ffe1e575-905b-406b-8617-2a7a69632285",
      "name": "Note: フィルター",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1184,
        624
      ],
      "parameters": {
        "color": 3,
        "width": 396,
        "height": 192,
        "content": "## 🔍 Filter: Has Caption and File\n\n**Purpose:** Validates incoming message has both a caption (prompt) and document file.\n\n**Note:** AND logic; skips workflow if either missing to avoid errors."
      },
      "typeVersion": 1
    },
    {
      "id": "c12c8013-87db-412b-aca1-5e14867a46b3",
      "name": "画像をダウンロード",
      "type": "n8n-nodes-base.telegram",
      "position": [
        1520,
        832
      ],
      "webhookId": "bdfeb7a3-2126-4606-8ab0-8303cb33bda5",
      "parameters": {
        "fileId": "={{ $json.message.document.file_id }}",
        "resource": "file",
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "id": "Elo6BLaLpBDVgeLW",
          "name": "LinkedIn Post"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "2995feff-c0a7-49d3-b85b-da18e37ba341",
      "name": "Note: 画像ダウンロード",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1504,
        1040
      ],
      "parameters": {
        "color": 6,
        "width": 332,
        "height": 192,
        "content": "## 📥 Download Image\n\n**Purpose:** Fetches the image file from Telegram servers as binary data.\n\n**Note:** Uses file_id from trigger; downloads immediately as files expire after 1 hour."
      },
      "typeVersion": 1
    },
    {
      "id": "01d5b33c-5a08-4df9-9eee-293a336535d2",
      "name": "AIで画像を編集",
      "type": "@n8n/n8n-nodes-langchain.googleGemini",
      "position": [
        1728,
        832
      ],
      "parameters": {
        "images": {
          "values": [
            {}
          ]
        },
        "prompt": "={{ $('Telegram Trigger').item.json.message.caption }}",
        "options": {
          "binaryPropertyOutput": "data"
        },
        "resource": "image",
        "operation": "edit"
      },
      "credentials": {
        "googlePalmApi": {
          "id": "7v8o9EaQkl33woxm",
          "name": "v9"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "b8993e29-7dd8-4cf8-9789-7bd2a3e7bf6b",
      "name": "Note: AI編集",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1680,
        592
      ],
      "parameters": {
        "color": 5,
        "width": 396,
        "height": 192,
        "content": "## 🖼️ Edit Image with AI\n\n**Purpose:** Applies Gemini AI edits to the downloaded image using caption as prompt. **Nano-Banana**\n\n**Note:** Outputs edited binary; handles creative transformations like 'add elements'."
      },
      "typeVersion": 1
    },
    {
      "id": "e33f9709-25b0-4a37-8aea-dd64f7fe8489",
      "name": "編集済み画像を送信",
      "type": "n8n-nodes-base.telegram",
      "position": [
        1952,
        832
      ],
      "webhookId": "9c82fd88-d7f7-4808-aad8-21e818eb3f86",
      "parameters": {
        "chatId": "={{ $('Telegram Trigger').item.json.message.chat.id }}",
        "operation": "sendPhoto",
        "binaryData": true,
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "id": "Elo6BLaLpBDVgeLW",
          "name": "LinkedIn Post"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "c6cc872e-2396-4450-acfa-17c08ca67ec5",
      "name": "Overview Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        432,
        432
      ],
      "parameters": {
        "color": 4,
        "width": 632,
        "height": 1176,
        "content": "# 🤖 AI Image Editor using Nano-Banana Telegram Bot\n\n## 📋 What This Template Does\nThis workflow powers a Telegram bot that automatically processes incoming image documents with text prompts. It downloads the file, uses Google Gemini AI to edit the image based on your caption, and instantly replies with the enhanced version.\n\n## 🔧 Prerequisites\n- A Telegram bot created via @BotFather\n- Google AI Studio account for Gemini API access\n- n8n instance with Telegram and Google Gemini nodes enabled\n\n## 🔑 Required Credentials\n\n### Telegram API Setup\n1. Open Telegram and message @BotFather\n2. Use `/newbot` to create your bot and note the token\n3. In n8n, go to Credentials → Add Credential → Search \"Telegram API\"\n4. Paste the token and save\n\n### Google Gemini API Setup\n1. Visit aistudio.google.com and sign in with Google\n2. Click \"Get API key\" → Create API key in a new project\n3. In n8n, go to Credentials → Add Credential → Search \"Google Gemini API\"\n4. Enter the API key and save\n\n## ⚙️ Configuration Steps\n1. Import the provided JSON into your n8n workflows\n2. Assign the Telegram credential to the trigger and Telegram nodes\n3. Assign the Gemini credential to the Edit Image node\n4. Activate the workflow and note your bot's username\n5. Test by sending an image document with a caption to your bot\n\n## 🎯 Use Cases\n- **Personal creativity**: Send a selfie with \"make me a superhero\"\n- **Social media**: Upload photos with \"enhance lighting\"\n- **Educational**: Share sketches with \"colorize and detail\"\n- **Team collab**: Prompt \"remove background\" in groups\n\n## ⚠️ Troubleshooting\n- **No trigger**: Verify token and enable message updates\n- **Download fail**: Resend file; check it's a document\n- **Edit error**: Check API quotas; shorten prompts\n- **No send**: Verify binary data in execution log"
      },
      "typeVersion": 1
    },
    {
      "id": "bdce77c5-a7f3-480d-95e8-1a183eedf038",
      "name": "Note: Trigger1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1104,
        1024
      ],
      "parameters": {
        "color": 6,
        "width": 332,
        "height": 192,
        "content": "## 📥 Telegram Trigger\n\n**Purpose:** Listens for new messages with documents and optional captions.\n\n**Note:** Filters to 'message' updates only; starts the editing flow on receipt."
      },
      "typeVersion": 1
    }
  ],
  "pinData": {},
  "connections": {
    "c12c8013-87db-412b-aca1-5e14867a46b3": {
      "main": [
        [
          {
            "node": "01d5b33c-5a08-4df9-9eee-293a336535d2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "5dbb5361-0f1a-403a-a6d2-f8aaeebcd2c4": {
      "main": [
        [
          {
            "node": "113490e2-abd8-4aa6-8b3e-58030c4d731a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "01d5b33c-5a08-4df9-9eee-293a336535d2": {
      "main": [
        [
          {
            "node": "e33f9709-25b0-4a37-8aea-dd64f7fe8489",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "113490e2-abd8-4aa6-8b3e-58030c4d731a": {
      "main": [
        [
          {
            "node": "c12c8013-87db-412b-aca1-5e14867a46b3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
よくある質問

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

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

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

中級

有料ですか?

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

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

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

作成者
Daniel Nkencho

Daniel Nkencho

@daniel-automates

AI Automation Consultant | Helping Business Owners Implement AI Systems for Growth and Lead Gen

外部リンク
n8n.ioで表示

このワークフローを共有

カテゴリー

カテゴリー: 34