제품 촬영 - 검토
고급
이것은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
잠재 고객 생성 및 개인화 아웃리치 자동화: Apollo, AI 및 Instantly.ai
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 리드 생성 및 개인 메시지 발송
If
Set
Code
+
If
Set
Code
143 노드Ruben AI
리드 육성
실시간 - Gemini 및 Creatomate를 사용한 바이럴 AI 동영상 제작 및 게시 자동화
Gemini와 Creatomate를 사용한 AI 비디오 제작 및 다중 플랫폼 게시 자동화
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 최적화 블로그 생성, 키워드와 미디어 포함
Perplexity와 GPT를 사용하여 WordPress에 SEO 최적화 블로그를 만들어 키워드와 미디어 포함
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에서 보기 →
이 워크플로우 공유