8
n8n 한국어amn8n.com

헤어스타일 미리보기 내보내기

중급

이것은Content Creation, Multimodal AI분야의자동화 워크플로우로, 8개의 노드를 포함합니다.주로 Webhook, FormTrigger, HttpRequest, ConvertToFile 등의 노드를 사용하며. OpenAI 기반 AI 헤어스타일 미리보기 생성기와 LINE 그룹 공유

사전 요구사항
  • HTTP Webhook 엔드포인트(n8n이 자동으로 생성)
  • 대상 API의 인증 정보가 필요할 수 있음
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
  "id": "3nvbG23fEvkCCBSy",
  "meta": {
    "instanceId": "9101df148a9ab5ba09dd343a0c584806dbd6c3b74e74be8e97699184269b6877",
    "templateCredsSetupCompleted": true
  },
  "name": "export_hairstyle-preview",
  "tags": [],
  "nodes": [
    {
      "id": "b6cf5de7-a5ef-47ae-9423-1c4afe97888e",
      "name": "폼 제출 시",
      "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": "이미지 생성",
      "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": "파일로 변환",
      "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": "이미지 업로드",
      "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 출력",
      "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 입력",
      "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": "스티커 노트",
      "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": "스티커 노트1",
      "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
          }
        ]
      ]
    }
  }
}
자주 묻는 질문

이 워크플로우를 어떻게 사용하나요?

위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.

이 워크플로우는 어떤 시나리오에 적합한가요?

중급 - 콘텐츠 제작, 멀티모달 AI

유료인가요?

이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.

워크플로우 정보
난이도
중급
노드 수8
카테고리2
노드 유형5
난이도 설명

일정 경험을 가진 사용자를 위한 6-15개 노드의 중간 복잡도 워크플로우

저자
kote2

kote2

@kote2

I 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!

외부 링크
n8n.io에서 보기

이 워크플로우 공유

카테고리

카테고리: 34