NanoBanana 🍌と Telegram を使用した UGC 画像生成のフォーム提交ツール
中級
これはContent Creation, Multimodal AI分野の自動化ワークフローで、15個のノードを含みます。主にSet, Code, Merge, Telegram, FormTriggerなどのノードを使用。 Google Formsの送信からGoogle GeminiとTelegramでUGC画像生成
前提条件
- •Telegram Bot Token
- •ターゲットAPIの認証情報が必要な場合あり
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
"id": "UM5yN01ZX3V2f256",
"meta": {
"instanceId": "237139412ba2bdccb5393d058ace6ee50c6bb809e4f130ea2f9b24f70a336b94",
"templateCredsSetupCompleted": true
},
"name": "UGC Image Generator from Form Submission using NanoBanana 🍌 and Telegram",
"tags": [],
"nodes": [
{
"id": "15aee33e-9193-4bb2-9f9a-cc4ed5cd8eb5",
"name": "Google gemini",
"type": "n8n-nodes-base.httpRequest",
"position": [
1168,
0
],
"parameters": {
"url": "https://openrouter.ai/api/v1/chat/completions",
"method": "POST",
"options": {},
"jsonBody": "={\n \"model\": \"google/gemini-2.5-flash-image-preview\",\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": [\n {\n \"type\": \"text\",\n \"text\": \"Create a realistic and engaging UGC image highlighting this Character product. : {{ $json.personnage }}. Style: lifestyle photo, taken on a smartphone, natural, authentic, and spontaneous atmosphere. Context: the subject holds/uses the product in a simple and natural way: natural light, simple background (living room, office, or urban outdoor setting), soft colors, mid-body framing. Objective: to give the impression that it is a real person recommending the product in UGC content.\"\n },\n {\n \"type\": \"image_url\",\n \"image_url\": {\n \"url\": \"{{ $json.image }}\"\n }\n }\n ]\n }\n ]\n}",
"sendBody": true,
"specifyBody": "json",
"authentication": "predefinedCredentialType",
"nodeCredentialType": "openRouterApi"
},
"credentials": {
"openRouterApi": {
"id": "JGTQZSwkY8TvDVDW",
"name": "OpenRouter account 2"
}
},
"typeVersion": 4.2
},
{
"id": "4d644794-edfa-411e-950e-2a35aee608bf",
"name": "マッピング",
"type": "n8n-nodes-base.set",
"position": [
976,
0
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "5ba24889-ccd2-4b28-be4e-ba85eb4a1827",
"name": "image",
"type": "string",
"value": "={{ $json.image_url }}"
},
{
"id": "cd52d79a-16b7-41ad-8673-e8a01fc0bd28",
"name": "personnage",
"type": "string",
"value": "={{ $json.modele_personnage }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "813f07a4-a764-4284-9388-cc3a46b50c13",
"name": "写真メッセージ送信",
"type": "n8n-nodes-base.telegram",
"position": [
1808,
0
],
"webhookId": "441e3c91-85fd-4b25-bf68-0f28b0d6d697",
"parameters": {
"chatId": "@assistantjaures",
"operation": "sendPhoto",
"binaryData": true,
"additionalFields": {}
},
"credentials": {
"telegramApi": {
"id": "LPcm8lL2x487aGuB",
"name": "Test"
}
},
"typeVersion": 1.2
},
{
"id": "1a80e40a-b565-4a94-8d50-18ed5a12f2ff",
"name": "キャラクタータイプと画像付きフォーム送信",
"type": "n8n-nodes-base.formTrigger",
"position": [
-144,
-16
],
"webhookId": "251cf601-cb55-403d-86f7-f64f8f52e45a",
"parameters": {
"options": {
"appendAttribution": false
},
"formTitle": "Advertising image generator",
"formFields": {
"values": [
{
"fieldType": "file",
"fieldLabel": "Product image",
"multipleFiles": false,
"requiredField": true,
"acceptFileTypes": ".jpg, .png, .jpeg"
},
{
"fieldType": "dropdown",
"fieldLabel": "Character model",
"fieldOptions": {
"values": [
{
"option": "Homme"
},
{
"option": "Femme"
}
]
},
"requiredField": true
}
]
},
"formDescription": "Turn simple product images into high-quality advertising images"
},
"typeVersion": 2.2
},
{
"id": "76f275ec-0500-4df8-a533-1afd5e5ccf7a",
"name": "フォームファイル抽出",
"type": "n8n-nodes-base.extractFromFile",
"position": [
256,
64
],
"parameters": {
"options": {},
"operation": "binaryToPropery",
"destinationKey": "image_base64",
"binaryPropertyName": "Image_du_produit"
},
"typeVersion": 1
},
{
"id": "68788867-9960-4c5e-a08c-802ce0604215",
"name": "2つのデータセット統合",
"type": "n8n-nodes-base.merge",
"position": [
528,
0
],
"parameters": {
"mode": "combine",
"options": {},
"combineBy": "combineByPosition"
},
"typeVersion": 3.2
},
{
"id": "b95becf0-1bdd-4e55-9040-a428cd6eb3e3",
"name": "データURL作成",
"type": "n8n-nodes-base.code",
"position": [
752,
0
],
"parameters": {
"jsCode": "// We take the first item.\nconst item = $input.item.json;\n\n// Character model retrieval\nconst modele = item[\"Modèle de personnage\"];\n\n// Base64 recovery\nconst imageBase64 = item[\"image_base64\"];\n\n// Creating a Data URL that can be used in an API\n// ⚡ Change “image/jpeg” if your image is PNG.\nconst imageUrl = `data:image/jpeg;base64,${imageBase64}`;\n\n// Turn everything over\nreturn [\n {\n json: {\n modele_personnage: modele,\n image_url: imageUrl\n }\n }\n];\n"
},
"typeVersion": 2
},
{
"id": "80f40071-4c24-4dd5-bc6a-9cab0fcfa7e6",
"name": "URLデータ変換",
"type": "n8n-nodes-base.code",
"position": [
1376,
0
],
"parameters": {
"jsCode": "const output = items[0].json;\n\n// Extraire le base64 depuis choices[0].message.images[0].image_url.url\nlet base64Data = output.choices[0].message.images[0].image_url.url;\n\n// Enlever le préfixe \"data:image/png;base64,\"\nbase64Data = base64Data.replace(/^data:image\\/\\w+;base64,/, \"\");\n\n// Retourner dans un champ \"data\" → Convert to File va l'utiliser\nreturn [\n {\n json: {\n data: base64Data\n }\n }\n];\n"
},
"typeVersion": 2
},
{
"id": "ef8c6191-80bf-40fb-ad4d-f7d9ad0d3978",
"name": "ファイルダウンロード",
"type": "n8n-nodes-base.convertToFile",
"position": [
1584,
0
],
"parameters": {
"options": {},
"operation": "toBinary",
"sourceProperty": "data"
},
"typeVersion": 1.1
},
{
"id": "23860a70-7beb-494d-a49b-bb7f83febb7d",
"name": "付箋1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-224,
-128
],
"parameters": {
"color": 6,
"width": 288,
"height": 368,
"content": "## Form Submission with Character Type and Image"
},
"typeVersion": 1
},
{
"id": "e9f831db-eeb7-4780-8a96-6b237b6637f8",
"name": "付箋2",
"type": "n8n-nodes-base.stickyNote",
"position": [
144,
-128
],
"parameters": {
"color": 6,
"width": 560,
"height": 368,
"content": "## Extract the Form File & Merge the Two Data Sets"
},
"typeVersion": 1
},
{
"id": "b8431775-7a92-4174-a6aa-9da3ccb55ff3",
"name": "付箋3",
"type": "n8n-nodes-base.stickyNote",
"position": [
896,
-128
],
"parameters": {
"color": 6,
"width": 592,
"height": 368,
"content": "## NanoBanana UGC image generator "
},
"typeVersion": 1
},
{
"id": "48eb75e1-ed81-471a-a774-d4caf3d52bbd",
"name": "付箋4",
"type": "n8n-nodes-base.stickyNote",
"position": [
1552,
-128
],
"parameters": {
"color": 6,
"width": 496,
"height": 368,
"content": "## UGCImage generated sent to Telegram"
},
"typeVersion": 1
},
{
"id": "1cb6780e-468d-4b9e-87d2-dd5d0152db53",
"name": "付箋",
"type": "n8n-nodes-base.stickyNote",
"position": [
-288,
-352
],
"parameters": {
"color": 7,
"width": 2400,
"height": 752,
"content": "## This workflow automates the creation of UGC (User-Generated Content) images by allowing users to submit a form containing:\n\nA character type selection (e.g., male or female)\n\nAn uploaded image (e.g., a photo or artwork)\n\nIt then processes the input, sends it to an AI model (Google Gemini via OpenRouter) to generate a creative response or description, and finally posts the image + AI-generated content to a Telegram channel."
},
"typeVersion": 1
},
{
"id": "fd1e5d7b-bbcb-4478-aa8e-18d85503c8e9",
"name": "付箋6",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1072,
-352
],
"parameters": {
"width": 720,
"height": 1344,
"content": "## This workflow automates the process of generating personalized UGC (User-Generated Content) images based on form submissions.\n\nIt accepts a form with a character type (e.g., male/female) and an uploaded image, merges them, sends them to an AI model (Google Gemini via OpenRouter) for creative generation, and posts the resulting content as a Telegram photo message.\n\n## Who’s it for\n\nThis automation template is designed for marketers, AI creators, content teams, or interactive community platforms that want to let users submit content (image + character type), enrich it with AI-generated descriptions, and instantly publish results to Telegram — without writing a single line of code.\n\n## How it works\n\n- Trigger: Workflow starts when a form is submitted by a user.\n\n- Extract file: The uploaded image file is converted to a Base64 string.\n\n- Merge data: The character type and image data are combined into one payload.\n\n- Format to Data URL: The image is wrapped as a proper data:image/... format for API use.\n\n- Prepare payload: The text and image are mapped into a structure compatible with Gemini API.\n\n- Generate AI content: Sends the input to Google Gemini (via OpenRouter) to generate a UGC description.\n\n- Transform response: Cleans and extracts the result from Gemini’s response.\n\n- Convert back to file: Transforms the Base64 image back into a real image file.\n\n- Send to Telegram: The image and its AI-generated description are sent as a photo message to your Telegram channel.\n\n## How to use\n\n- Set up a form with a dropdown for character type (e.g., Male/Female) and an image upload field.\n\n- Configure the Gemini API access through OpenRouter.\n\n- Connect your Telegram bot and channel to receive the final result.\n\n- Start the workflow → users submit the form, and their data is processed and shared as AI-enhanced UGC.\n\n## Requirements\n\n- OpenRouter API key to access Google Gemini.\n\n- A Telegram Bot connected to your Telegram channel.\n\n## ❓ Need help\n\n**Contact me for consulting and support:** [LinkedIn](https://www.linkedin.com/in/jaures-nya-83a033270/) / [YouTube](https://www.youtube.com/@jauresnya) / [Skool](https://www.skool.com/gaia-4903/about?ref=e0430e4c35b645ac8976b952768e9d55) "
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "45583225-c701-4d95-8ca6-6f650fdd08ad",
"connections": {
"4d644794-edfa-411e-950e-2a35aee608bf": {
"main": [
[
{
"node": "15aee33e-9193-4bb2-9f9a-cc4ed5cd8eb5",
"type": "main",
"index": 0
}
]
]
},
"15aee33e-9193-4bb2-9f9a-cc4ed5cd8eb5": {
"main": [
[
{
"node": "80f40071-4c24-4dd5-bc6a-9cab0fcfa7e6",
"type": "main",
"index": 0
}
]
]
},
"ef8c6191-80bf-40fb-ad4d-f7d9ad0d3978": {
"main": [
[
{
"node": "813f07a4-a764-4284-9388-cc3a46b50c13",
"type": "main",
"index": 0
}
]
]
},
"80f40071-4c24-4dd5-bc6a-9cab0fcfa7e6": {
"main": [
[
{
"node": "ef8c6191-80bf-40fb-ad4d-f7d9ad0d3978",
"type": "main",
"index": 0
}
]
]
},
"b95becf0-1bdd-4e55-9040-a428cd6eb3e3": {
"main": [
[
{
"node": "4d644794-edfa-411e-950e-2a35aee608bf",
"type": "main",
"index": 0
}
]
]
},
"76f275ec-0500-4df8-a533-1afd5e5ccf7a": {
"main": [
[
{
"node": "68788867-9960-4c5e-a08c-802ce0604215",
"type": "main",
"index": 1
}
]
]
},
"68788867-9960-4c5e-a08c-802ce0604215": {
"main": [
[
{
"node": "b95becf0-1bdd-4e55-9040-a428cd6eb3e3",
"type": "main",
"index": 0
}
]
]
},
"1a80e40a-b565-4a94-8d50-18ed5a12f2ff": {
"main": [
[
{
"node": "68788867-9960-4c5e-a08c-802ce0604215",
"type": "main",
"index": 0
},
{
"node": "76f275ec-0500-4df8-a533-1afd5e5ccf7a",
"type": "main",
"index": 0
}
]
]
}
}
}よくある質問
このワークフローの使い方は?
上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。
このワークフローはどんな場面に適していますか?
中級 - コンテンツ作成, マルチモーダルAI
有料ですか?
このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。
関連ワークフロー
家居装饰AI(Google Nano Banana)- Santhej Kallada
Google Geminiを基盤としたAI画像生成・編集およびTelegramボット
If
Set
Code
+
If
Set
Code
28 ノードSanthej Kallada
コンテンツ作成
✨🩷自動化ソーシャルメディアコンテンツ公開工厂 + 系统提示组合
基于动态系统提示とGPT-4oのAI驱动多平台ソーシャルメディアコンテンツ工厂
If
Set
Code
+
If
Set
Code
100 ノードAmit Mehta
コンテンツ作成
Instagramの趨勢電卓ブックからSEOコンテンツを生成して保存(SharePoint/Drive/Dropbox)
GPT-4o、FAL AI、複数ストレージによるトレンドの自動SEOコンテンツ生成
If
Set
Code
+
If
Set
Code
47 ノードplemeo
コンテンツ作成
WordPressブログの自動化プロフェッショナル版(先端研究)v2.1マーケットプラグイン
GPT-4o、Perplexity AI、そして多言語対応を使ったSEO最適化ブログ作成の自動化
If
Set
Xml
+
If
Set
Xml
125 ノードDaniel Ng
コンテンツ作成
OpenAI、ElevenLabs、Fal.ai を使用した動画・パ odcast・ASM R向けのウイルス性コンテンツ自動作成
OpenAI、ElevenLabs、そして Fal.ai を使って動画、ポッドキャスト、ASMR に向けたウイルスのコンテンツ作成を自動化
Set
Code
Wait
+
Set
Code
Wait
97 ノードAdam Crafts
コンテンツ作成
WooCommerce_テンプレートに自動投稿
Telegram チャンネル投稿を WooCommerce 製品に自動変換する
If
Set
Code
+
If
Set
Code
26 ノードShohani
コンテンツ作成