プロダクトフォトグラフィ - レビュー
上級
これはContent Creation, Multimodal AI分野の自動化ワークフローで、37個のノードを含みます。主にSet, Merge, Switch, Webhook, Airtableなどのノードを使用。 AirtableとGemini Nano Bananaでスタイリッシュな製品撮影を作成する
前提条件
- •HTTP Webhookエンドポイント(n8nが自動生成)
- •Airtable API Key
- •ターゲットAPIの認証情報が必要な場合あり
使用ノード (37)
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
"id": "6PKg5iRas6OJzsXR",
"meta": {
"instanceId": "fc8c505a7d97c0ad5142b508476a4b135c5d385dc29af946d69365fb9717edee",
"templateCredsSetupCompleted": true
},
"name": "Product photography - review",
"tags": [],
"nodes": [
{
"id": "9d581fc1-2b21-41f2-b61f-e1b2984eba34",
"name": "Webhook",
"type": "n8n-nodes-base.webhook",
"position": [
-544,
-48
],
"webhookId": "736029f4-2d85-409f-8841-1ca9a010e385",
"parameters": {
"path": "736029f4-2d85-409f-8841-1ca9a010e385",
"options": {}
},
"typeVersion": 2.1
},
{
"id": "0cf73e67-9194-4fb8-af9c-05604e337d40",
"name": "ジョブ取得",
"type": "n8n-nodes-base.airtable",
"position": [
0,
-48
],
"parameters": {
"id": "={{ $('Webhook').item.json.query.recordId }}",
"base": {
"__rl": true,
"mode": "id",
"value": "={{ $json.airtableBaseId }}"
},
"table": {
"__rl": true,
"mode": "list",
"value": "tblN7ikAWki5s5jcd",
"cachedResultUrl": "https://airtable.com/app3umoCF1t88Mg0q/tblN7ikAWki5s5jcd",
"cachedResultName": "Jobs"
},
"options": {}
},
"credentials": {
"airtableTokenApi": {
"id": "N8Xyxqz7hb8XrETy",
"name": "Airtable account"
}
},
"typeVersion": 2.1
},
{
"id": "0a022036-95d0-4409-8a61-60afe3c767eb",
"name": "クリーンアップ",
"type": "n8n-nodes-base.set",
"position": [
368,
-48
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "a3ccbf23-1cbe-4c72-a98f-2739d9ff86bb",
"name": "products",
"type": "array",
"value": "={{ $json[\"Product Images\"] }}"
},
{
"id": "393ff00d-6976-4e2f-894a-e8faac20df59",
"name": "templates",
"type": "array",
"value": "={{ $json.Templates }}"
},
{
"id": "531d603d-168e-484d-9543-a002d57b64f6",
"name": "job_id",
"type": "string",
"value": "={{ $json.id }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "1e5d84ca-72c4-462f-b5a8-68861652eb65",
"name": "商品分割",
"type": "n8n-nodes-base.splitOut",
"position": [
-256,
512
],
"parameters": {
"options": {},
"fieldToSplitOut": "products"
},
"typeVersion": 1
},
{
"id": "0c3dfd3a-0871-4a7b-9252-6070289d8a9e",
"name": "商品取得",
"type": "n8n-nodes-base.airtable",
"position": [
-48,
512
],
"parameters": {
"id": "={{ $json.products }}",
"base": {
"__rl": true,
"mode": "id",
"value": "={{ $('parameters').item.json.airtableBaseId }}"
},
"table": {
"__rl": true,
"mode": "list",
"value": "tblZeNi5MVPOEj7Hp",
"cachedResultUrl": "https://airtable.com/app3umoCF1t88Mg0q/tblZeNi5MVPOEj7Hp",
"cachedResultName": "Product Images"
},
"options": {}
},
"credentials": {
"airtableTokenApi": {
"id": "N8Xyxqz7hb8XrETy",
"name": "Airtable account"
}
},
"typeVersion": 2.1
},
{
"id": "a3487dd1-d051-447e-8f38-dd4150ad4a9e",
"name": "テンプレート分割",
"type": "n8n-nodes-base.splitOut",
"position": [
-304,
880
],
"parameters": {
"options": {},
"fieldToSplitOut": "templates"
},
"typeVersion": 1
},
{
"id": "bbfb9c8b-7356-4dcf-b028-9d9b320b4a76",
"name": "テンプレート取得",
"type": "n8n-nodes-base.airtable",
"position": [
-96,
880
],
"parameters": {
"id": "={{ $json.templates }}",
"base": {
"__rl": true,
"mode": "id",
"value": "={{ $('parameters').item.json.airtableBaseId }}"
},
"table": {
"__rl": true,
"mode": "list",
"value": "tblGJpUnqFpLMlVFe",
"cachedResultUrl": "https://airtable.com/app3umoCF1t88Mg0q/tblGJpUnqFpLMlVFe",
"cachedResultName": "Templates"
},
"options": {}
},
"credentials": {
"airtableTokenApi": {
"id": "N8Xyxqz7hb8XrETy",
"name": "Airtable account"
}
},
"typeVersion": 2.1
},
{
"id": "a161d2a7-1487-4676-9a01-b34a9d5de3f3",
"name": "商品編集",
"type": "n8n-nodes-base.set",
"position": [
160,
512
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "01aa86b1-9db5-4e37-85b3-bc9310086a34",
"name": "product_id",
"type": "string",
"value": "={{ $json.id }}"
},
{
"id": "1683c450-7ce9-4f4d-bbe7-aa3adec0268e",
"name": "product_image_url",
"type": "string",
"value": "={{ $json.Image[0].url }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "0c2ea55a-6403-4cc6-9d5b-cc0923a0c700",
"name": "テンプレート編集",
"type": "n8n-nodes-base.set",
"position": [
112,
880
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "30c708da-5ecd-47f5-8464-491c2fe57dac",
"name": "template_id",
"type": "string",
"value": "={{ $json.id }}"
},
{
"id": "00dad2c3-d89f-4cb2-b6a1-0b5c2a059ed3",
"name": "prompt",
"type": "string",
"value": "={{ $json[\"Text Prompt\"] }}"
},
{
"id": "066fe522-da75-479e-891a-83bc7382bd04",
"name": "reference_images",
"type": "array",
"value": "={{ $json[\"Reference Images\"] }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "0be8b4ac-5135-49bf-902f-898ea1fc292f",
"name": "テンプレートループ処理",
"type": "n8n-nodes-base.splitInBatches",
"position": [
320,
1056
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "f0ccedc8-7f2d-43c2-a95b-6fcd25b4a638",
"name": "参照画像分割",
"type": "n8n-nodes-base.splitOut",
"position": [
512,
1056
],
"parameters": {
"options": {},
"fieldToSplitOut": "reference_images"
},
"typeVersion": 1
},
{
"id": "7c1bcb47-53f9-49f7-b113-e47fd343f257",
"name": "参照画像取得",
"type": "n8n-nodes-base.airtable",
"position": [
720,
1056
],
"parameters": {
"id": "={{ $json.reference_images }}",
"base": {
"__rl": true,
"mode": "id",
"value": "={{ $('parameters').item.json.airtableBaseId }}"
},
"table": {
"__rl": true,
"mode": "list",
"value": "tbl4STKAfNWhTsJjl",
"cachedResultUrl": "https://airtable.com/app3umoCF1t88Mg0q/tbl4STKAfNWhTsJjl",
"cachedResultName": "Reference Images"
},
"options": {}
},
"credentials": {
"airtableTokenApi": {
"id": "N8Xyxqz7hb8XrETy",
"name": "Airtable account"
}
},
"typeVersion": 2.1
},
{
"id": "84a1f3a1-f07c-4b96-8230-8f6ac5b3aa09",
"name": "参照画像編集",
"type": "n8n-nodes-base.set",
"position": [
928,
1056
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "04e74aef-d137-46e3-b3dc-8c7df312a082",
"name": "image_id",
"type": "string",
"value": "={{ $json.id }}"
},
{
"id": "9a1d608a-6899-4e8f-a176-49aecee80071",
"name": "image_url",
"type": "string",
"value": "={{ $json.Image[0].url }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "aa125477-4571-4f0e-8048-ede5399e1dc8",
"name": "集約",
"type": "n8n-nodes-base.aggregate",
"position": [
1344,
1056
],
"parameters": {
"options": {
"includeBinaries": true
},
"aggregate": "aggregateAllItemData",
"destinationFieldName": "reference_images"
},
"typeVersion": 1
},
{
"id": "aea3c143-19d0-4e78-ac42-77169a9aee23",
"name": "テンプレートデータ統合",
"type": "n8n-nodes-base.merge",
"position": [
544,
896
],
"parameters": {
"mode": "combine",
"options": {},
"combineBy": "combineByPosition"
},
"typeVersion": 3.2
},
{
"id": "57503692-1718-4a0b-9571-876157d03c7d",
"name": "全組み合わせ",
"type": "n8n-nodes-base.merge",
"position": [
832,
320
],
"parameters": {
"mode": "combine",
"options": {},
"combineBy": "combineAll"
},
"typeVersion": 3.2
},
{
"id": "21a21132-0aa5-4c93-988e-5619bdaf283a",
"name": "商品画像ダウンロード",
"type": "n8n-nodes-base.httpRequest",
"position": [
368,
512
],
"parameters": {
"url": "={{ $json.product_image_url }}",
"options": {
"response": {
"response": {
"responseFormat": "file",
"outputPropertyName": "product_data"
}
}
}
},
"typeVersion": 4.2
},
{
"id": "85fb61ce-6ad2-4459-b7fa-8d364e1b20de",
"name": "スイッチ",
"type": "n8n-nodes-base.switch",
"position": [
1040,
304
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "1",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "8211d8e0-11b2-418c-9841-4895024a6b68",
"operator": {
"type": "array",
"operation": "lengthEquals",
"rightType": "number"
},
"leftValue": "={{ $json.reference_images }}",
"rightValue": 1
}
]
},
"renameOutput": true
},
{
"outputKey": "2",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "398d3cf3-4956-47fa-bee6-57d9a7918cfd",
"operator": {
"type": "array",
"operation": "lengthEquals",
"rightType": "number"
},
"leftValue": "={{ $json.reference_images }}",
"rightValue": 2
}
]
},
"renameOutput": true
},
{
"outputKey": "3",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "f60c5fb0-725d-4978-b0ce-bb5ca877cff8",
"operator": {
"type": "array",
"operation": "lengthGte",
"rightType": "number"
},
"leftValue": "={{ $json.reference_images }}",
"rightValue": 3
}
]
},
"renameOutput": true
}
]
},
"options": {}
},
"typeVersion": 3.3
},
{
"id": "d39bb48d-cc1f-4a25-90b8-8954a25cbbe7",
"name": "参照画像1枚で生成",
"type": "@n8n/n8n-nodes-langchain.googleGemini",
"position": [
1328,
128
],
"parameters": {
"images": {
"values": [
{
"binaryPropertyName": "product_data"
},
{}
]
},
"prompt": "={{ $json.prompt }}",
"options": {
"binaryPropertyOutput": "edited"
},
"resource": "image",
"operation": "edit"
},
"credentials": {
"googlePalmApi": {
"id": "ybwzU4ruTo49PRfX",
"name": "Google Gemini vadim.ai.lab"
}
},
"typeVersion": 1
},
{
"id": "5e05fb1a-349a-47db-ba61-5eda06ad21a4",
"name": "参照画像2枚で生成",
"type": "@n8n/n8n-nodes-langchain.googleGemini",
"position": [
1328,
320
],
"parameters": {
"images": {
"values": [
{
"binaryPropertyName": "product_data"
},
{},
{
"binaryPropertyName": "data_1"
}
]
},
"prompt": "={{ $json.prompt }}",
"options": {
"binaryPropertyOutput": "edited"
},
"resource": "image",
"operation": "edit"
},
"credentials": {
"googlePalmApi": {
"id": "ybwzU4ruTo49PRfX",
"name": "Google Gemini vadim.ai.lab"
}
},
"typeVersion": 1
},
{
"id": "e2e5fa21-2410-4d2b-b5fb-0098aaefcfe8",
"name": "参照画像3枚で生成",
"type": "@n8n/n8n-nodes-langchain.googleGemini",
"position": [
1328,
512
],
"parameters": {
"images": {
"values": [
{
"binaryPropertyName": "product_data"
},
{},
{
"binaryPropertyName": "data_1"
},
{
"binaryPropertyName": "data_2"
}
]
},
"prompt": "={{ $json.prompt }}",
"options": {
"binaryPropertyOutput": "edited"
},
"resource": "image",
"operation": "edit"
},
"credentials": {
"googlePalmApi": {
"id": "ybwzU4ruTo49PRfX",
"name": "Google Gemini vadim.ai.lab"
}
},
"typeVersion": 1
},
{
"id": "cd75753a-af60-4cfa-8df4-20e66024dfe7",
"name": "マージ",
"type": "n8n-nodes-base.merge",
"position": [
1600,
304
],
"parameters": {
"numberInputs": 3
},
"typeVersion": 3.2
},
{
"id": "535911c6-7163-4492-bb65-a6784e10f02f",
"name": "ファイルから抽出",
"type": "n8n-nodes-base.extractFromFile",
"position": [
1872,
320
],
"parameters": {
"options": {
"encoding": "utf8",
"keepSource": "json"
},
"operation": "binaryToPropery",
"destinationKey": "output_base64",
"binaryPropertyName": "edited"
},
"typeVersion": 1
},
{
"id": "8d0504da-1d78-4162-b661-7fb8af37e8e5",
"name": "パラメータ",
"type": "n8n-nodes-base.set",
"position": [
-288,
-48
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "c7691548-c717-4a29-b983-5a394f2a7ad2",
"name": "airtableBaseId",
"type": "string",
"value": "app3umoCF1t88Mg0q"
},
{
"id": "4282bb3a-8ab7-4742-99bd-2a3343bfe62c",
"name": "airtableResultImageFieldId",
"type": "string",
"value": "fldzhCsleyyBrPyKj"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "1f4e2221-0180-4e9c-939b-3ca229dda498",
"name": "ジョブステータス更新",
"type": "n8n-nodes-base.airtable",
"position": [
192,
-208
],
"parameters": {
"base": {
"__rl": true,
"mode": "id",
"value": "={{ $('parameters').item.json.airtableBaseId }}"
},
"table": {
"__rl": true,
"mode": "list",
"value": "tblN7ikAWki5s5jcd",
"cachedResultUrl": "https://airtable.com/app3umoCF1t88Mg0q/tblN7ikAWki5s5jcd",
"cachedResultName": "Jobs"
},
"columns": {
"value": {
"id": "={{ $json.id }}",
"Status": "In progress"
},
"schema": [
{
"id": "id",
"type": "string",
"display": true,
"removed": false,
"readOnly": true,
"required": false,
"displayName": "id",
"defaultMatch": true
},
{
"id": "Name",
"type": "string",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Product Images",
"type": "array",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Product Images",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Templates",
"type": "array",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Templates",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Created Time",
"type": "dateTime",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Created Time",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Status",
"type": "options",
"display": true,
"options": [
{
"name": "Created",
"value": "Created"
},
{
"name": "In progress",
"value": "In progress"
},
{
"name": "Done",
"value": "Done"
}
],
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Results",
"type": "array",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Results",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Generate",
"type": "string",
"display": true,
"removed": true,
"readOnly": true,
"required": false,
"displayName": "Generate",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"id"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "update"
},
"credentials": {
"airtableTokenApi": {
"id": "N8Xyxqz7hb8XrETy",
"name": "Airtable account"
}
},
"typeVersion": 2.1
},
{
"id": "2795c78d-39e0-453e-8013-103c792122ff",
"name": "ジョブステータス更新(完了)",
"type": "n8n-nodes-base.airtable",
"position": [
2704,
320
],
"parameters": {
"base": {
"__rl": true,
"mode": "id",
"value": "={{ $('parameters').item.json.airtableBaseId }}"
},
"table": {
"__rl": true,
"mode": "list",
"value": "tblN7ikAWki5s5jcd",
"cachedResultUrl": "https://airtable.com/app3umoCF1t88Mg0q/tblN7ikAWki5s5jcd",
"cachedResultName": "Jobs"
},
"columns": {
"value": {
"id": "={{ $('Get Job').item.json.id }}",
"Status": "Done"
},
"schema": [
{
"id": "id",
"type": "string",
"display": true,
"removed": false,
"readOnly": true,
"required": false,
"displayName": "id",
"defaultMatch": true
},
{
"id": "Name",
"type": "string",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Product Images",
"type": "array",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Product Images",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Templates",
"type": "array",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Templates",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Created Time",
"type": "dateTime",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Created Time",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Status",
"type": "options",
"display": true,
"options": [
{
"name": "Created",
"value": "Created"
},
{
"name": "In progress",
"value": "In progress"
},
{
"name": "Done",
"value": "Done"
}
],
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Results",
"type": "array",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Results",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Generate",
"type": "string",
"display": true,
"removed": true,
"readOnly": true,
"required": false,
"displayName": "Generate",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"id"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "update"
},
"credentials": {
"airtableTokenApi": {
"id": "N8Xyxqz7hb8XrETy",
"name": "Airtable account"
}
},
"typeVersion": 2.1
},
{
"id": "e6711f0b-f985-46a9-9adf-0408ec0c062d",
"name": "付箋",
"type": "n8n-nodes-base.stickyNote",
"position": [
1824,
176
],
"parameters": {
"color": 6,
"width": 1072,
"height": 336,
"content": "## Step 4. Create new Result records in Airtable\n- For each generated image, create new Result record\n- Upload generated image and attach it to its Result record via HTTP node\n- Set Job's status to 'done' "
},
"typeVersion": 1
},
{
"id": "566017ed-7968-4ba5-b930-88e6c542a5b4",
"name": "付箋1",
"type": "n8n-nodes-base.stickyNote",
"position": [
784,
0
],
"parameters": {
"color": 6,
"width": 960,
"height": 672,
"content": "## Step 3. Generate new product images\n- Create all combinations of original images and templates\n- Pick generation node based on the number of reference images (up to 3)\n- Generate new product images"
},
"typeVersion": 1
},
{
"id": "0a3f8a80-d670-41ec-af49-cd8d5711cd3f",
"name": "付箋2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-336,
768
],
"parameters": {
"color": 6,
"width": 1856,
"height": 496,
"content": "## Step 2b. Get templates with reference images\n- Fetch Template records specified in Job (each template contains a **prompt** and one or several **reference images**)\n- For each template, download reference images (in the loop)"
},
"typeVersion": 1
},
{
"id": "73da7bc0-d36a-4c69-96bd-116876e1025b",
"name": "付箋3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-288,
400
],
"parameters": {
"color": 6,
"width": 816,
"height": 288,
"content": "## Step 2a. Get original product image\n- Fetch Product records specified in Job\n- Download product images"
},
"typeVersion": 1
},
{
"id": "f324e87b-1821-4c92-8c67-3276fa79fcb4",
"name": "付箋4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-352,
-192
],
"parameters": {
"color": 5,
"width": 224,
"height": 304,
"content": "## Configure\n➤ set Airtable base ID\n➤ set Airtable field ID for generated images"
},
"typeVersion": 1
},
{
"id": "4b0b80c7-8f71-4032-83bb-3df0042e449b",
"name": "付箋5",
"type": "n8n-nodes-base.stickyNote",
"position": [
-32,
-320
],
"parameters": {
"color": 6,
"width": 528,
"height": 432,
"content": "## Step 1. Fetch Job record by ID\nAlso set Job's status to 'in progress' in Airtable"
},
"typeVersion": 1
},
{
"id": "c4c76af6-3023-40cd-b27f-d4a144edff6b",
"name": "添付ファイルアップロード",
"type": "n8n-nodes-base.httpRequest",
"position": [
2496,
320
],
"parameters": {
"url": "=https://content.airtable.com/v0/{{ $('parameters').item.json.airtableBaseId }}/{{ $json.id }}/{{ $('parameters').item.json.airtableResultImageFieldId }}/uploadAttachment",
"method": "POST",
"options": {},
"sendBody": true,
"authentication": "predefinedCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "contentType",
"value": "={{ $('Collect variables').item.json.mimeType }}"
},
{
"name": "file",
"value": "={{ $('Collect variables').item.json.outputBase64 }}"
},
{
"name": "filename",
"value": "image.png"
}
]
},
"nodeCredentialType": "airtableTokenApi"
},
"credentials": {
"airtableTokenApi": {
"id": "N8Xyxqz7hb8XrETy",
"name": "Airtable account"
}
},
"typeVersion": 4.2
},
{
"id": "fb2d292d-f389-4761-8fac-8a02bd81366f",
"name": "結果レコード作成",
"type": "n8n-nodes-base.airtable",
"position": [
2288,
320
],
"parameters": {
"base": {
"__rl": true,
"mode": "id",
"value": "={{ $('parameters').item.json.airtableBaseId }}"
},
"table": {
"__rl": true,
"mode": "list",
"value": "tblSoB3qTeeKXjsov",
"cachedResultUrl": "https://airtable.com/app3umoCF1t88Mg0q/tblSoB3qTeeKXjsov",
"cachedResultName": "Results"
},
"columns": {
"value": {
"Jobs": "=[\"{{ $json.jobId }}\"]",
"Status": "Pending",
"Template": "=[\"{{ $json.templateId }}\"]",
"Timestamp": "={{ $now }}",
"Product Image": "=[\"{{ $json.productId }}\"]"
},
"schema": [
{
"id": "ID",
"type": "string",
"display": true,
"removed": true,
"readOnly": true,
"required": false,
"displayName": "ID",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Generated Image",
"type": "array",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Generated Image",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Jobs",
"type": "array",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Jobs",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Product Image",
"type": "array",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Product Image",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Template",
"type": "array",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Template",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Timestamp",
"type": "dateTime",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Timestamp",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Status",
"type": "options",
"display": true,
"options": [
{
"name": "Pending",
"value": "Pending"
},
{
"name": "Approved",
"value": "Approved"
},
{
"name": "Rejected",
"value": "Rejected"
},
{
"name": "",
"value": ""
}
],
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Notes",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Notes",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "create"
},
"credentials": {
"airtableTokenApi": {
"id": "N8Xyxqz7hb8XrETy",
"name": "Airtable account"
}
},
"typeVersion": 2.1
},
{
"id": "7b9cf6ec-84ae-45b4-9b7d-ea46fdf2c48e",
"name": "変数収集",
"type": "n8n-nodes-base.set",
"position": [
2080,
320
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "3e057dd9-283b-4722-bd2e-23f725f5137f",
"name": "outputBase64",
"type": "string",
"value": "={{ $json.output_base64 }}"
},
{
"id": "b4c377ad-ed0d-42fa-85ca-f08416751595",
"name": "mimeType",
"type": "string",
"value": "={{ $json.mimeType }}"
},
{
"id": "8da67ef3-319b-486e-8f0c-1cd6db274a56",
"name": "templateId",
"type": "string",
"value": "={{ $('All combinations').item.json.template_id }}"
},
{
"id": "3f4967da-e951-4408-9684-ff1c5463d9c3",
"name": "productId",
"type": "string",
"value": "={{ $('All combinations').item.json.product_id }}"
},
{
"id": "990586ac-cd48-4ed6-be37-62472176bfc6",
"name": "jobId",
"type": "string",
"value": "={{ $('Get Job').item.json.id }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "3d346e31-2372-4261-b596-291c71b2f629",
"name": "付箋6",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1248,
208
],
"parameters": {
"width": 768,
"height": 752,
"content": "## AI Product Photography using Airtable and Gemini (Nano Banana)\n\nThis workflow automates the process of generating stylized product photos for e-commerce by combining real product shots with creative templates. It enables the creation of a complete set of images for an SKU from a single product photo and a set of reusable templates. The workflow uses Google Gemini (Nano Banana) for image editing and Airtable as the data source.\n\n### Airtable tables\n\nThis workflow expects the following Airtable table setup:\n- **\"Product Images\"** - contains original product photos, one per record.\n- **\"Reference Images\"** - contains reference images for templates, one per record.\n- **\"Templates\"** - contains reusable generation templates. Each template includes a text prompt and up to three reference images.\n- **\"Jobs\"** - contains batch generation jobs. Each job references multiple product images and multiple templates.\n- **\"Results\"** - contains the generated outputs. Each result includes a generated image, references to the job, product image, and template, and a status field (pending, approved, rejected).\n\n\nThe workflow is triggered by a webhook that receives a job ID from Airtable.\n\n### Requirements\n1. Airtable Personal Access Token\n2. Google Gemini API key\n\n### Setup\n1. Ensure all required Airtable tables exist.\n2. Configure parameters in the **parameters** node:\n - Set Airtable Base ID\n - Set ID of the attachment field in the \"Results\" table (where the generated images will be uploaded) \n4. Configure credentials for all Airtable nodes.\n5. Set Google Gemini API key for the \"Generate...\" nodes.\n"
},
"typeVersion": 1
},
{
"id": "bacc0136-0fcf-4f69-8417-d9ba848085ef",
"name": "参照画像ダウンロード",
"type": "n8n-nodes-base.httpRequest",
"position": [
1136,
1056
],
"parameters": {
"url": "={{ $json.image_url }}",
"options": {}
},
"typeVersion": 4.2
}
],
"active": false,
"pinData": {
"Clean up": [
{
"json": {
"job_id": "recJV3zfx8GVv1Hzf",
"products": [
"recfkmrLLZZiqGRdW"
],
"templates": [
"recUzp3aSes2n9EUC"
]
}
}
]
},
"settings": {
"executionOrder": "v1"
},
"versionId": "9d566c64-537d-4b89-bcdf-f6abec5cd490",
"connections": {
"cd75753a-af60-4cfa-8df4-20e66024dfe7": {
"main": [
[
{
"node": "535911c6-7163-4492-bb65-a6784e10f02f",
"type": "main",
"index": 0
}
]
]
},
"85fb61ce-6ad2-4459-b7fa-8d364e1b20de": {
"main": [
[
{
"node": "d39bb48d-cc1f-4a25-90b8-8954a25cbbe7",
"type": "main",
"index": 0
}
],
[
{
"node": "5e05fb1a-349a-47db-ba61-5eda06ad21a4",
"type": "main",
"index": 0
}
],
[
{
"node": "e2e5fa21-2410-4d2b-b5fb-0098aaefcfe8",
"type": "main",
"index": 0
}
]
]
},
"0cf73e67-9194-4fb8-af9c-05604e337d40": {
"main": [
[
{
"node": "1f4e2221-0180-4e9c-939b-3ca229dda498",
"type": "main",
"index": 0
},
{
"node": "0a022036-95d0-4409-8a61-60afe3c767eb",
"type": "main",
"index": 0
}
]
]
},
"9d581fc1-2b21-41f2-b61f-e1b2984eba34": {
"main": [
[
{
"node": "8d0504da-1d78-4162-b661-7fb8af37e8e5",
"type": "main",
"index": 0
}
]
]
},
"0a022036-95d0-4409-8a61-60afe3c767eb": {
"main": [
[
{
"node": "1e5d84ca-72c4-462f-b5a8-68861652eb65",
"type": "main",
"index": 0
},
{
"node": "a3487dd1-d051-447e-8f38-dd4150ad4a9e",
"type": "main",
"index": 0
}
]
]
},
"aa125477-4571-4f0e-8048-ede5399e1dc8": {
"main": [
[
{
"node": "0be8b4ac-5135-49bf-902f-898ea1fc292f",
"type": "main",
"index": 0
}
]
]
},
"8d0504da-1d78-4162-b661-7fb8af37e8e5": {
"main": [
[
{
"node": "0cf73e67-9194-4fb8-af9c-05604e337d40",
"type": "main",
"index": 0
}
]
]
},
"0c3dfd3a-0871-4a7b-9252-6070289d8a9e": {
"main": [
[
{
"node": "a161d2a7-1487-4676-9a01-b34a9d5de3f3",
"type": "main",
"index": 0
}
]
]
},
"a161d2a7-1487-4676-9a01-b34a9d5de3f3": {
"main": [
[
{
"node": "21a21132-0aa5-4c93-988e-5619bdaf283a",
"type": "main",
"index": 0
}
]
]
},
"bbfb9c8b-7356-4dcf-b028-9d9b320b4a76": {
"main": [
[
{
"node": "0c2ea55a-6403-4cc6-9d5b-cc0923a0c700",
"type": "main",
"index": 0
}
]
]
},
"0c2ea55a-6403-4cc6-9d5b-cc0923a0c700": {
"main": [
[
{
"node": "0be8b4ac-5135-49bf-902f-898ea1fc292f",
"type": "main",
"index": 0
},
{
"node": "aea3c143-19d0-4e78-ac42-77169a9aee23",
"type": "main",
"index": 0
}
]
]
},
"1e5d84ca-72c4-462f-b5a8-68861652eb65": {
"main": [
[
{
"node": "0c3dfd3a-0871-4a7b-9252-6070289d8a9e",
"type": "main",
"index": 0
}
]
]
},
"a3487dd1-d051-447e-8f38-dd4150ad4a9e": {
"main": [
[
{
"node": "bbfb9c8b-7356-4dcf-b028-9d9b320b4a76",
"type": "main",
"index": 0
}
]
]
},
"57503692-1718-4a0b-9571-876157d03c7d": {
"main": [
[
{
"node": "85fb61ce-6ad2-4459-b7fa-8d364e1b20de",
"type": "main",
"index": 0
}
]
]
},
"7b9cf6ec-84ae-45b4-9b7d-ea46fdf2c48e": {
"main": [
[
{
"node": "fb2d292d-f389-4761-8fac-8a02bd81366f",
"type": "main",
"index": 0
}
]
]
},
"535911c6-7163-4492-bb65-a6784e10f02f": {
"main": [
[
{
"node": "7b9cf6ec-84ae-45b4-9b7d-ea46fdf2c48e",
"type": "main",
"index": 0
}
]
]
},
"1f4e2221-0180-4e9c-939b-3ca229dda498": {
"main": [
[]
]
},
"c4c76af6-3023-40cd-b27f-d4a144edff6b": {
"main": [
[
{
"node": "2795c78d-39e0-453e-8013-103c792122ff",
"type": "main",
"index": 0
}
]
]
},
"d39bb48d-cc1f-4a25-90b8-8954a25cbbe7": {
"main": [
[
{
"node": "cd75753a-af60-4cfa-8df4-20e66024dfe7",
"type": "main",
"index": 0
}
]
]
},
"7c1bcb47-53f9-49f7-b113-e47fd343f257": {
"main": [
[
{
"node": "84a1f3a1-f07c-4b96-8230-8f6ac5b3aa09",
"type": "main",
"index": 0
}
]
]
},
"0be8b4ac-5135-49bf-902f-898ea1fc292f": {
"main": [
[
{
"node": "aea3c143-19d0-4e78-ac42-77169a9aee23",
"type": "main",
"index": 1
}
],
[
{
"node": "f0ccedc8-7f2d-43c2-a95b-6fcd25b4a638",
"type": "main",
"index": 0
}
]
]
},
"fb2d292d-f389-4761-8fac-8a02bd81366f": {
"main": [
[
{
"node": "c4c76af6-3023-40cd-b27f-d4a144edff6b",
"type": "main",
"index": 0
}
]
]
},
"84a1f3a1-f07c-4b96-8230-8f6ac5b3aa09": {
"main": [
[
{
"node": "bacc0136-0fcf-4f69-8417-d9ba848085ef",
"type": "main",
"index": 0
}
]
]
},
"5e05fb1a-349a-47db-ba61-5eda06ad21a4": {
"main": [
[
{
"node": "cd75753a-af60-4cfa-8df4-20e66024dfe7",
"type": "main",
"index": 1
}
]
]
},
"e2e5fa21-2410-4d2b-b5fb-0098aaefcfe8": {
"main": [
[
{
"node": "cd75753a-af60-4cfa-8df4-20e66024dfe7",
"type": "main",
"index": 2
}
]
]
},
"aea3c143-19d0-4e78-ac42-77169a9aee23": {
"main": [
[
{
"node": "57503692-1718-4a0b-9571-876157d03c7d",
"type": "main",
"index": 1
}
]
]
},
"21a21132-0aa5-4c93-988e-5619bdaf283a": {
"main": [
[
{
"node": "57503692-1718-4a0b-9571-876157d03c7d",
"type": "main",
"index": 0
}
]
]
},
"f0ccedc8-7f2d-43c2-a95b-6fcd25b4a638": {
"main": [
[
{
"node": "7c1bcb47-53f9-49f7-b113-e47fd343f257",
"type": "main",
"index": 0
}
]
]
},
"bacc0136-0fcf-4f69-8417-d9ba848085ef": {
"main": [
[
{
"node": "aa125477-4571-4f0e-8048-ede5399e1dc8",
"type": "main",
"index": 0
}
]
]
},
"2795c78d-39e0-453e-8013-103c792122ff": {
"main": [
[]
]
}
}
}よくある質問
このワークフローの使い方は?
上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。
このワークフローはどんな場面に適していますか?
上級 - コンテンツ作成, マルチモーダルAI
有料ですか?
このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。
関連ワークフロー
自動化プロスペクト生成とパーソナライズされたアウトリーチ:Apollo、AI、Instantly.ai
自動化avic リード生成とパーソナライズドウォームアップ:Apollo、AI、アンドインスタンティエイトpty
If
Set
Code
+
If
Set
Code
166 ノードRuben AI
リードナーチャリング
コンテンツ集約
Gemini AIを使ってウェブ記事からLinkedInとX/Twitterへのソーシャルメディア投稿を自動化する
If
Set
Xml
+
If
Set
Xml
34 ノードVadim
コンテンツ作成
Airtable、OpenAI、Unipile を使用した LinkedIn リード生成と自動ダイレクトメッセージングの自動化
Airtable、OpenAI、Unipileを使用した自動LinkedInリード生成とInMail投稿
If
Set
Code
+
If
Set
Code
143 ノードRuben AI
リードナーチャリング
リアルタイム - GeminiとCreatomateを使ってウイルスのAI動画制作と投稿を自動化
AI動画制作とマルチプラットフォーム公開にはGeminiとCreatomateを活用しましょう
Set
Code
Wait
+
Set
Code
Wait
47 ノードIntuz
コンテンツ作成
WordPressブログの自動化プロフェッショナル版(先端研究)v2.1マーケットプラグイン
GPT-4o、Perplexity AI、そして多言語対応を使ったSEO最適化ブログ作成の自動化
If
Set
Xml
+
If
Set
Xml
125 ノードDaniel Ng
コンテンツ作成
PerplexityとGPTを使用して、キーワードとメディアを含むWordPressのSEO最適化ブログを作成
WordPress向けSEO最適化されたブログの作成(Perplexity、GPTベース、キーワードとメディア付き)
Set
Code
Limit
+
Set
Code
Limit
124 ノードPaul
コンテンツ作成
ワークフロー情報
難易度
上級
ノード数37
カテゴリー2
ノードタイプ12
作成者
Vadim
@coderikI help businesses implement innovative AI/ML solutions, redesign existing systems to cut costs and boost reliability, and conduct applied R&D. I specialize in AI automation, agents, LLMs, Generative AI and Computer Vision. Need help customizing workflows? Just find me on Upwork.
外部リンク
n8n.ioで表示 →
このワークフローを共有