发型预览exportation
Ceci est unContent Creation, Multimodal AIworkflow d'automatisation du domainecontenant 8 nœuds.Utilise principalement des nœuds comme Webhook, FormTrigger, HttpRequest, ConvertToFile. 基于OpenAIdeAI发型预览générateur与LINE群组分享
- •Point de terminaison HTTP Webhook (généré automatiquement par n8n)
- •Peut nécessiter les informations d'identification d'authentification de l'API cible
Nœuds utilisés (8)
Catégorie
{
"id": "3nvbG23fEvkCCBSy",
"meta": {
"instanceId": "9101df148a9ab5ba09dd343a0c584806dbd6c3b74e74be8e97699184269b6877",
"templateCredsSetupCompleted": true
},
"name": "export_hairstyle-preview",
"tags": [],
"nodes": [
{
"id": "b6cf5de7-a5ef-47ae-9423-1c4afe97888e",
"name": "À la soumission du formulaire",
"type": "n8n-nodes-base.formTrigger",
"position": [
-144,
0
],
"webhookId": "3445cfdf-3bc9-4548-bd5c-bf5d20e7b089",
"parameters": {
"options": {},
"formTitle": "Hairstyle Preview",
"formFields": {
"values": [
{
"fieldType": "file",
"fieldLabel": "pic",
"multipleFiles": false,
"requiredField": true
},
{
"fieldType": "textarea",
"fieldLabel": "content",
"requiredField": true
}
]
},
"authentication": "basicAuth"
},
"credentials": {
"httpBasicAuth": {
"id": "2Xi9J8KKgilhioyb",
"name": "Unnamed credential"
}
},
"typeVersion": 2.2
},
{
"id": "ebb4764a-c163-4d9b-a2b7-65d64e1f4acd",
"name": "Créer une image",
"type": "n8n-nodes-base.httpRequest",
"position": [
96,
0
],
"parameters": {
"url": "https://api.openai.com/v1/images/edits",
"method": "POST",
"options": {},
"sendBody": true,
"contentType": "multipart-form-data",
"authentication": "predefinedCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "prompt",
"value": "=Keep the person's face exactly the same as in the input image. Do not alter or replace the face. \nOnly modify the hairstyle. Make sure the hairstyle looks natural and realistic. \nThe overall identity of the person must remain unchanged.\n\nUser request: {{ $json.content }}"
},
{
"name": "model",
"value": "gpt-image-1"
},
{
"name": "size",
"value": "1024x1536"
},
{
"name": "image",
"parameterType": "formBinaryData",
"inputDataFieldName": "pic"
},
{
"name": "quality",
"value": "high"
}
]
},
"nodeCredentialType": "openAiApi"
},
"credentials": {
"openAiApi": {
"id": "mO23EZGRXh9cFi9G",
"name": "OpenAi account 2"
}
},
"typeVersion": 4.2
},
{
"id": "1156faf1-46ee-45ab-ac91-0325f735be62",
"name": "Convertir en fichier",
"type": "n8n-nodes-base.convertToFile",
"position": [
336,
0
],
"parameters": {
"options": {},
"operation": "toBinary",
"sourceProperty": "data[0].b64_json"
},
"typeVersion": 1.1
},
{
"id": "ae98386d-cc94-49dd-a8dd-7a042f976fd8",
"name": "Télécharger l'image",
"type": "n8n-nodes-base.httpRequest",
"position": [
592,
0
],
"parameters": {
"url": "https://api.cloudinary.com/v1_1/{{CLOUDINARY_CLOUD_NAME}}/image/upload",
"method": "POST",
"options": {},
"sendBody": true,
"contentType": "multipart-form-data",
"bodyParameters": {
"parameters": [
{
"name": "file",
"parameterType": "formBinaryData",
"inputDataFieldName": "data"
},
{
"name": "upload_preset",
"value": "{{CLOUDINARY_UPLOAD_PRESET}}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "399838c0-b325-4f28-bf43-ff45a54d54aa",
"name": "LINE sortie",
"type": "n8n-nodes-base.httpRequest",
"position": [
800,
0
],
"parameters": {
"url": "https://api.line.me/v2/bot/message/push",
"method": "POST",
"options": {},
"jsonBody": "={\n\"to\": \"{{LINE_GROUP_ID}}\",\n\"messages\": [\n{\n \"type\": \"image\",\n \"originalContentUrl\": \"{{ $json.secure_url }}\",\n \"previewImageUrl\": \"{{ $json.secure_url }}\"\n}\n]\n} ",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "Bearer {{LINE_CHANNEL_TOKEN}}"
},
{
"name": "Content-Type",
"value": "application/json"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "71b229c4-bbf4-4b1a-a463-9898f7a2dee5",
"name": "LINE entrée",
"type": "n8n-nodes-base.webhook",
"position": [
-16,
448
],
"webhookId": "01d98d79-2c96-4a75-a4e1-b2faddb8d0a6",
"parameters": {
"path": "01d98d79-2c96-4a75-a4e1-b2faddb8d0a6",
"options": {},
"httpMethod": "POST"
},
"typeVersion": 2
},
{
"id": "2d679cdf-83b1-4a32-9a15-08ad8ee93de1",
"name": "Note adhésive",
"type": "n8n-nodes-base.stickyNote",
"position": [
-784,
-128
],
"parameters": {
"color": 5,
"width": 560,
"height": 896,
"content": "# Hairstyle Preview & LINE Group Share\n\n### Overview\n\nThis workflow takes an **image + instruction text** from an n8n Form, edits **only the hairstyle** while **keeping the face unchanged**, uploads the result to **Cloudinary**, and **pushes** the image to a designated **LINE group**. It’s designed for salons or creative teams that need quick, consistent “hair-only” edits and one-click sharing to a staff group.\n\n### Key Features\n\n* Accepts image and free-form instructions via **n8n Forms**\n* Enforces **identity preservation**: face is not altered; **only the hairstyle** is modified\n* Uses **OpenAI Image Edit** to generate the edited image\n* Uploads the output to **Cloudinary** and returns a public URL\n* Sends the final image to a **LINE group** via the **Push API** (no `replyToken` required)\n* Optional safety: store the **groupId** once (via webhook) in n8n **Data Store** and reuse it, avoiding mis-sending to individuals\n\n### Requirements\n\n* OpenAI API key (Image Edit capable model)\n* Cloudinary account with an **unsigned** `upload_preset`\n* LINE Official Account (Messaging API enabled) and the bot **added to the target group** (to capture `groupId` once)\n* n8n with **Forms** enabled and **Data Store** available\n\n### Notes\n\n* Replace placeholders like `CLOUDINARY_CLOUD_NAME`, `CLOUDINARY_UPLOAD_PRESET`, `LINE_CHANNEL_TOKEN`, and `LINE_GROUP_ID` with your values.\n"
},
"typeVersion": 1
},
{
"id": "49d75f49-9a26-47a4-ae78-37f5db81b08d",
"name": "Note adhésive1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-192,
224
],
"parameters": {
"color": 3,
"width": 464,
"height": 384,
"content": "## Please use this node to find out the LINE group ID\n- Invite the bot to a group, then send any message.\n- This webhook will capture the event, and the JSON payload will include source.groupId.\n- Copy and save this value for later use.\n- **⚠️You can safely delete this node after retrieving the group ID.**"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "7b478bb1-7e58-47aa-be3e-f002aa8e404a",
"connections": {
"ebb4764a-c163-4d9b-a2b7-65d64e1f4acd": {
"main": [
[
{
"node": "1156faf1-46ee-45ab-ac91-0325f735be62",
"type": "main",
"index": 0
}
]
]
},
"ae98386d-cc94-49dd-a8dd-7a042f976fd8": {
"main": [
[
{
"node": "399838c0-b325-4f28-bf43-ff45a54d54aa",
"type": "main",
"index": 0
}
]
]
},
"1156faf1-46ee-45ab-ac91-0325f735be62": {
"main": [
[
{
"node": "ae98386d-cc94-49dd-a8dd-7a042f976fd8",
"type": "main",
"index": 0
}
]
]
},
"b6cf5de7-a5ef-47ae-9423-1c4afe97888e": {
"main": [
[
{
"node": "ebb4764a-c163-4d9b-a2b7-65d64e1f4acd",
"type": "main",
"index": 0
}
]
]
}
}
}Comment utiliser ce workflow ?
Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.
Dans quelles scénarios ce workflow est-il adapté ?
Intermédiaire - Création de contenu, IA Multimodale
Est-ce payant ?
Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.
Workflows recommandés
kote2
@kote2I share practical examples and ideas for AI automation using tools like n8n, explained in a way that’s easy for beginners to understand. While Dify is currently more well-known in Japan, n8n complements it and is expected to gain even more attention in the future. This channel aims to be a practical guide you can rely on when that wave of popularity arrives. That said, I’m still learning too—so let’s learn and grow together!
Partager ce workflow