画像のメタデータ自動ラベリング
中級
これはAI分野の自動化ワークフローで、9個のノードを含みます。主にCode, Merge, GoogleDrive, ConvertToFile, ExtractFromFileなどのノードを使用、AI技術を活用したスマート自動化を実現。 自動化AI画像タグ付けとキーワードを画像ファイルに書き込み
前提条件
- •Google Drive API認証情報
- •OpenAI API Key
カテゴリー
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
"id": "XbawQw3cvClu2wsx",
"meta": {
"instanceId": "1acdaec6c8e84424b4715cf41a9f7ec057947452db21cd2e22afbc454c8711cd",
"templateCredsSetupCompleted": true
},
"name": "Automated Image Metadata Tagging",
"tags": [],
"nodes": [
{
"id": "cd1dba71-345b-45ae-8110-4fb57291f363",
"name": "ファイルから抽出",
"type": "n8n-nodes-base.extractFromFile",
"position": [
260,
180
],
"parameters": {
"options": {},
"operation": "binaryToPropery"
},
"typeVersion": 1
},
{
"id": "7973b64e-ae92-44c9-aa8e-002c32c25def",
"name": "ファイルに変換",
"type": "n8n-nodes-base.convertToFile",
"position": [
920,
80
],
"parameters": {
"options": {},
"operation": "toBinary",
"sourceProperty": "data"
},
"typeVersion": 1.1
},
{
"id": "5fe13d4e-566b-459f-8830-f16829a34284",
"name": "画像内容を分析",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
260,
-40
],
"parameters": {
"text": "=Deliver a comma seperated list describing the content of this image.",
"modelId": {
"__rl": true,
"mode": "list",
"value": "chatgpt-4o-latest",
"cachedResultName": "CHATGPT-4O-LATEST"
},
"options": {},
"resource": "image",
"inputType": "base64",
"operation": "analyze"
},
"credentials": {
"openAiApi": {
"id": "EjchNb5GBqYh0Cqn",
"name": "OpenAi account"
}
},
"typeVersion": 1.8
},
{
"id": "876db6b5-6615-4e9d-8e1a-2d8220b2019f",
"name": "画像ファイルをダウンロード",
"type": "n8n-nodes-base.googleDrive",
"position": [
-20,
60
],
"parameters": {
"fileId": {
"__rl": true,
"mode": "id",
"value": "={{ $json.id }}"
},
"options": {},
"operation": "download"
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "s8l3OOBediUA645k",
"name": "Google Drive account"
}
},
"typeVersion": 3
},
{
"id": "47b32ddb-1929-4855-9131-078b562b3492",
"name": "トリガー: Google ドライブフォルダに新しいファイルが追加された",
"type": "n8n-nodes-base.googleDriveTrigger",
"position": [
-220,
60
],
"parameters": {
"event": "fileCreated",
"options": {},
"pollTimes": {
"item": [
{
"mode": "everyMinute"
}
]
},
"triggerOn": "specificFolder",
"folderToWatch": {
"__rl": true,
"mode": "list",
"value": "1WaIRWXcaeNViKmpW5IyQ3YGARWYdMg47",
"cachedResultUrl": "https://drive.google.com/drive/folders/1WaIRWXcaeNViKmpW5IyQ3YGARWYdMg47",
"cachedResultName": "EXIF"
}
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "s8l3OOBediUA645k",
"name": "Google Drive account"
}
},
"typeVersion": 1
},
{
"id": "85c6458a-7b2a-4eef-bf28-3b784e45f562",
"name": "メタデータをBase64コードに書き込み",
"type": "n8n-nodes-base.code",
"position": [
720,
80
],
"parameters": {
"jsCode": "const tags = items[0].json.content.split(', ');\n\nconst xmpData = `<?xpacket begin=\"\" id=\"W5M0MpCehiHzreSzNTczkc9d\"?>\n<x:xmpmeta xmlns:x=\"adobe:ns:meta/\" x:xmptk=\"XMP Core 5.1.2\">\n <rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n <rdf:Description rdf:about=\"\"\n xmlns:dc=\"http://purl.org/dc/elements/1.1/\"\n xmlns:xmp=\"http://ns.adobe.com/xap/1.0/\"\n xmlns:photoshop=\"http://ns.adobe.com/photoshop/1.0/\">\n <dc:creator></dc:creator>\n <dc:subject>\n <rdf:Bag>\n ${tags.map(tag => `<rdf:li>${tag}</rdf:li>`).join('\\n ')}\n </rdf:Bag>\n </dc:subject>\n <xmp:CreateDate>${new Date().toISOString()}</xmp:CreateDate>\n </rdf:Description>\n </rdf:RDF>\n</x:xmpmeta>\n<?xpacket end=\"w\"?>`;\n\nconst xmpHeader = Buffer.from([\n 0xFF, 0xE1,\n 0x00, 0x00,\n 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x6E, 0x73, 0x2E,\n 0x61, 0x64, 0x6F, 0x62, 0x65, 0x2E, 0x63, 0x6F, 0x6D, 0x2F,\n 0x78, 0x61, 0x70, 0x2F, 0x31, 0x2E, 0x30, 0x2F, 0x00\n]);\n\nconst xmpBuffer = Buffer.from(xmpData, 'utf8');\nconst imageBuffer = Buffer.from(items[0].json.data, 'base64');\nconst length = xmpHeader.length + xmpBuffer.length - 2;\nxmpHeader[2] = (length >> 8) & 0xFF;\nxmpHeader[3] = length & 0xFF;\n\nconst newImageData = Buffer.concat([\n imageBuffer.slice(0, 2),\n xmpHeader,\n xmpBuffer,\n imageBuffer.slice(2)\n]);\n\nitems[0].json.data = newImageData.toString('base64');\n\nreturn items;"
},
"typeVersion": 2,
"alwaysOutputData": true
},
{
"id": "1b86cadf-9f46-4980-a923-00577bfc59f4",
"name": "画像ファイルを更新",
"type": "n8n-nodes-base.googleDrive",
"position": [
1120,
80
],
"parameters": {
"fileId": {
"__rl": true,
"mode": "id",
"value": "={{ $('Download Image File').item.json.id }}"
},
"options": {},
"operation": "update",
"changeFileContent": true,
"newUpdatedFileName": "={{ $('Download Image File').item.json.name }}"
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "s8l3OOBediUA645k",
"name": "Google Drive account"
}
},
"typeVersion": 3
},
{
"id": "10c97623-80b1-4e96-b5c5-243ef106b2e9",
"name": "付箋ノート1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-540,
240
],
"parameters": {
"width": 660,
"height": 680,
"content": "# Welcome to my Automated Image Metadata Tagging Workflow!\n\nThis workflow automatically analyzes the image content with the help of AI and writes it directly back into the image file as keywords.\n\n## This workflow has the following sequence:\n\n1. Google Drive trigger (scan for new files added in a specific folder)\n2. Download the added image file\n3. Analyse the content of the image and extract the file as Base64 code\n4. Merge Metadata and Base64 Code\n5. Code Node to write the Keywords into the Metadata (dc:subject)\n6. Convert to file and update the original file in the Google Drive folder\n\n## The following accesses are required for the workflow:\n- Google Drive: [Documentation](https://docs.n8n.io/integrations/builtin/credentials/google)\n- AI API access (e.g. via OpenAI, Anthropic, Google or Ollama)\n\nYou can contact me via LinkedIn, if you have any questions: https://www.linkedin.com/in/friedemann-schuetz"
},
"typeVersion": 1
},
{
"id": "d2bb1007-018d-4c6a-a458-ff8e79b6017c",
"name": "メタデータとBase64コードを統合",
"type": "n8n-nodes-base.merge",
"position": [
520,
80
],
"parameters": {
"mode": "combine",
"options": {},
"combineBy": "combineByPosition"
},
"typeVersion": 3
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "46b58de4-da62-43a2-bb10-fc85ffb75115",
"connections": {
"7973b64e-ae92-44c9-aa8e-002c32c25def": {
"main": [
[
{
"node": "1b86cadf-9f46-4980-a923-00577bfc59f4",
"type": "main",
"index": 0
}
]
]
},
"cd1dba71-345b-45ae-8110-4fb57291f363": {
"main": [
[
{
"node": "d2bb1007-018d-4c6a-a458-ff8e79b6017c",
"type": "main",
"index": 1
}
]
]
},
"876db6b5-6615-4e9d-8e1a-2d8220b2019f": {
"main": [
[
{
"node": "5fe13d4e-566b-459f-8830-f16829a34284",
"type": "main",
"index": 0
},
{
"node": "cd1dba71-345b-45ae-8110-4fb57291f363",
"type": "main",
"index": 0
}
]
]
},
"5fe13d4e-566b-459f-8830-f16829a34284": {
"main": [
[
{
"node": "d2bb1007-018d-4c6a-a458-ff8e79b6017c",
"type": "main",
"index": 0
}
]
]
},
"85c6458a-7b2a-4eef-bf28-3b784e45f562": {
"main": [
[
{
"node": "7973b64e-ae92-44c9-aa8e-002c32c25def",
"type": "main",
"index": 0
}
]
]
},
"d2bb1007-018d-4c6a-a458-ff8e79b6017c": {
"main": [
[
{
"node": "85c6458a-7b2a-4eef-bf28-3b784e45f562",
"type": "main",
"index": 0
}
]
]
},
"47b32ddb-1929-4855-9131-078b562b3492": {
"main": [
[
{
"node": "876db6b5-6615-4e9d-8e1a-2d8220b2019f",
"type": "main",
"index": 0
}
]
]
}
}
}よくある質問
このワークフローの使い方は?
上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。
このワークフローはどんな場面に適していますか?
中級 - 人工知能
有料ですか?
このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。
関連ワークフロー
ペットショップ 4
ペットショップ予約AIエージェント
If
Set
Code
+
If
Set
Code
187 ノードBruno Dias
人工知能
画像のメタデータ自動ラベリング(コミュニティノード)
自動化AI画像タグ付けとキーワードを画像に書き込み(コミュニティノード経由)
Merge
Google Drive
Exif Data
+
Merge
Google Drive
Exif Data
7 ノードFriedemann Schuetz
人工知能
基于AIのMISエージェント
基于AIの管理信息系统エージェント
If
Set
Code
+
If
Set
Code
129 ノードKumar Shivam
サポート
以下は、入力された中国語テキストを日本語に正確に翻訳し、元の専門用語は変更せず、1 行に 1 つの翻訳を加えた結果です。
DeepGramとGPT-4oによる音声対話分析・可視化
Set
Code
Html
+
Set
Code
Html
54 ノードRealSimple Solutions
人工知能
[テンプレート] AIペットショップ v8
AIペットショップアシスタント - GPT-4o、Googleカレンダー、WhatsApp/Instagram/Facebookを統合
If
N8n
Set
+
If
N8n
Set
244 ノードAmanda Benks
営業
転写評価ツール V2
🔊 ブラウザ音声録音の音声文字起こしとAI分析(DeepgramとGPT-4oを使用)
Set
Code
Html
+
Set
Code
Html
54 ノードRealSimple Solutions
人工知能