매일 아침 8시 20분, 나는 아무것도 하지 않는다. 커피 한 잔 마시는 동안 n8n이 알아서 오늘 날씨를 확인하고, 유튜브 트렌드를 뒤지고, GPT로 쇼츠 대본을 쓰고, ComfyUI로 이미지 3장을 생성해서 Google Drive에 저장한다. 이게 1년 가까이 하루도 안 빠지고 돌아가고 있다.
처음엔 "이게 진짜 될까?" 반신반의했는데, 지금은 이 파이프라인 없이 콘텐츠 만드는 게 상상이 안 될 정도가 되었다.
오늘은 이 전체 구조를 노드 단위로 뜯어서 보여주려고 한다.
코드는 최소화하고, 왜 이렇게 설계했는지에 집중할 거다.
🗺️ 전체 파이프라인, 7단계로 한눈에 보기
"n8n ComfyUI 자동화"라고 하면 뭔가 복잡할 것 같지만, 구조는 생각보다 단순해. 크게 3개 레이어로 나뉜다.
이 구조의 핵심은 데이터 수집을 병렬로 처리한다는 거다.
Schedule Trigger가 실행되는 순간 Google Sheets 조회, 날씨 API 호출, YouTube 검색이 동시에 돌아간다. 순차 실행이면 30초 걸릴 걸 병렬로 하면 10초 안에 끝난다.
n8n에서 병렬 처리는 노드를 그냥 같은 트리거에 연결하면 돼서 설정 자체는 별거 없다.
📡 데이터 수집 레이어 — 왜 날씨랑 YouTube까지 끌어오나?
처음엔 그냥 GPT한테 "오늘 쇼츠 주제 뽑아줘" 하면 되는 거 아니야? 라고 생각했다. 근데 이렇게 하면 금방 한계가 온다. GPT는 컨텍스트 없이는 매일 비슷한 주제를 정하기 때문이다. 그래서 3가지 데이터를 주입하는 구조를 만들어 보았다.
🤖 GPT 프롬프트 자동화 3단계 — 주제 → 본문 → 제목
GPT 노드가 3개 직렬로 연결돼 있다. 각각 역할이 완전히 다르다. 이걸 하나로 합치려고 했다가 퀄리티가 확 떨어져서 분리했다.
| 노드 | 모델 | 역할 | 핵심 파라미터 |
|---|---|---|---|
| OpenAI-주제 | gpt-4.1-mini | 각도 분석 후 오늘 주제 1개 선택 | temp 0.9, 15~20자 제목만 출력 |
| OpenAI-본문 | gpt-4.1-mini | 200~230자 쇼츠 대본 작성 | 4비트 구조 강제, frequency_penalty 0.6 |
| OpenAI-제목 | gpt-4.1-mini | 후킹 유튜브 제목 1개 생성 | 18~32자, presence_penalty 0.4 |
셋 다 gpt-4.1-mini를 쓰는 이유는 단순하다. 비용 대비 품질이 이 용도엔 충분하기 때문이다.
gpt-4o 쓰다가 바꿨는데, 솔직히 쇼츠 대본 200자짜리 생성에는 차이를 못 느꼈다. 비용은 약 5배 차이나고.
Tip. 본문 스크립트는 한국 사람들이 듣기에 자연스러워야 한다. 그래서, 이 부분은 휴먼이 개입하는 것이 좋다. 난 클로드에게 기존 스크립트들과 프롬프트를 넣어놓은 상태에서 자연스러운 문장으로 바꿔주도록 한번 더 작업을 한 후, 내가 읽으면서 일부 문장을 더 수정하는 편이다.
중복 방지 로직이 핵심이다
주제 생성 프롬프트에서 제일 공들인 부분이 각도 코드 시스템이다. 가족 관계, 인생 성찰, 관계의 어려움, 건강·노후, 일상의 평안 — 5개 영역에 각각 5~6개 세부 각도(G-1, I-2 같은 코드)를 붙여놨다.
🔑 각도 코드 중복 방지 흐름
- Sheets에서 불러온 최근 15개 주제에서 각도 코드 빈도 계산
- 3회 이상 등장한 각도는 이번 주제에서 자동 제외
- 미사용·최소 사용 각도 중에서만 선택
이거 없으면 GPT가 2주 안에 거의 같은 주제를 반복한다. 테스트해봤는데 각도 코드 없이 그냥 "최근 주제 목록" 넣었을 때는 주제 다양성이 확 줄어들더라. 명시적인 코드 시스템이 있어야 GPT가 제대로 회피한다.
🖼️ ComfyUI API 연동 — 이미지 3장 자동 생성하는 법
이 파이프라인에서 제일 재밌는 부분이다. n8n에서 ComfyUI를 쓰는 방법은 크게 두 가지인데, ComfyUI 커뮤니티 노드를 쓰거나 HTTP Request로 API 직접 호출하거나. 나는 ComfyUI 전용 n8n 노드를 사용하고 있다.
워크플로우 JSON을 n8n에서 직접 주입하는 구조
ComfyUI 노드의 핵심은 workflow 파라미터에 ComfyUI API 형식의 JSON을 통째로 넣는 거다. 이게 처음엔 낯선데 익숙해지면 강력하다. ComfyUI에서 워크플로우 짜고 → "Save (API format)"으로 내보내고 → n8n 노드에 붙여넣으면 된다.
🎨 이미지 생성 파이프라인 내부 구조
- KSampler — seed를 매번 랜덤으로 바꿔서 다양한 이미지 생성 (
Math.random() * 3435973836) - CLIPTextEncode — GPT 이미지 프롬프트 주입 (본문 내용 분석 후 자동 생성된 영문 프롬프트)
- UNETLoader — HiDream I1 Full FP8 모델 로드
- ImageUpscaleWithModel — 4x_NMKD-Siax로 업스케일
- ImageScale — 최종 1296×2304px (쇼츠 9:16 비율) 리사이즈
Loop Over Items로 3장 순차 생성
이미지를 3장 만드는 방식은 단순하다. Code 노드에서 이미지 프롬프트를 3개 배열로 만들고, Loop Over Items 노드가 하나씩 순차적으로 ComfyUI에 넘긴다. 각 이미지는 역할이 달라 — 상황 반영 이미지, 희망/반전 이미지, 실천/행동 이미지 순서다. 단순히 3장 찍는 게 아니라 쇼츠 스토리 구조에 맞게 이미지 컨셉 자체가 달라지도록 설계했다.
생성 완료된 이미지는 ComfyUI 노드에서 파일명을 반환하는데, 이걸 Google Drive 노드에 바로 넘겨서 저장한다. 루프가 끝나면 다시 Loop Over Items 노드로 돌아가서 다음 이미지 처리 — 이게 3번 반복되는 구조다.
Tip. 이미지를 상황과 맥락에 맞게 다양한 이미지로 생성하기 위해, 계속해서 랜덤 생성할 수 있는 코드 노드를 개선해오고 있다. 처음에는 이 노드에 많은 것을 담으려고 했다. 예를 들어, 계절과 옷, 장신구, 환경 등을 앞의 정보들을 반영한 후 모두 랜덤으로 선택하도록 하고 싶었다. 그런데 너무 복잡해지기만 하고 제대로 작동하지 못했다. 그래서, 지금은 계절이 바뀌는 시점에 맞게 내가 개입해서 코드 노드를 교체하고 있다. 그렇게 하니 코드가 좀 더 단순해져 이미지 생성시 원하는 계절을 더 잘 표현하는 효과가 있었다.
💰 운영 비용 절감 실측 — 실제로 얼마나 드나?
이 시스템 만들지 않았다면, 이미지 소스를 사거나 프리랜서한테 맡겨야 했을 것이다. 아니면 포기하던가... 지금 돌아가는 환경을 보면 비용 절감 효과가 진짜 크다고 본다. 실제 월 비용 공개해 보자.
| 항목 | 사용량 (월 30회 기준) | 월 비용 |
|---|---|---|
| GPT-4.1 mini (주제+본문+제목) | 약 150K tokens/월 | 약 $0.12 |
| OpenWeatherMap API | 30회 호출 | 무료 |
| YouTube Data API v3 | 30회 검색 | 무료 (할당량 내) |
| ComfyUI (로컬 GPU) | 90장 생성 (3장×30회) | 전기세만 |
| 합계 | 월 $1~2 수준 |
⚡ ComfyUI 로컬 운영의 진짜 장점
이미지 생성 비용이 사실상 0이다. 클라우드 이미지 API(Midjourney, DALL-E 등)는 이미지 1장에 $0.04~0.08 정도 드는데, 월 90장이면 $4~7다. 1년이면 $50~80 차이. ComfyUI 로컬로 뽑으면 그 비용 전체가 절감되고, 품질 컨트롤도 훨씬 세밀하게 할 수 있다.
❓ 자주 받는 질문들
🚀 마무리 — 1년 가까이 운영하면서 진짜 느낀 것
n8n + ComfyUI 자동화를 운영하면서 느낀 건, 자동화의 가치는 시간 절약이 아니라 일관성이라는 거다. 손으로 만들면 컨디션에 따라 퀄리티가 널뛰는데, 시스템이 만들면 매일 비슷한 수준이 유지된다. 이게 채널 운영할 때 생각보다 중요한 요소가 아닐까 싶다.
물론 처음 세팅하는 데 시간이 꽤 들것이다. 특히 프롬프트 고도화는 몇 달짜리 작업이 될 수 있다. 근데 한 번 세팅해두면 그 이후론 거의 손댈 일이 없다. 오늘 소개한 구조가 그 시행착오의 결과물이다.





댓글 쓰기