プロダクトフォトグラフィ - レビュー

上級

これはContent Creation, Multimodal AI分野の自動化ワークフローで、37個のノードを含みます。主にSet, Merge, Switch, Webhook, Airtableなどのノードを使用。 AirtableとGemini Nano Bananaでスタイリッシュな製品撮影を作成する

前提条件
  • HTTP Webhookエンドポイント(n8nが自動生成)
  • Airtable API Key
  • ターゲットAPIの認証情報が必要な場合あり
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下の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
難易度説明

上級者向け、16ノード以上の複雑なワークフロー

作成者

I 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で表示

このワークフローを共有

カテゴリー

カテゴリー: 34