소개
n8n.io에 있는 아래 Template을 활용해 Telegram 챗봇에 텍스트 메시지를 보내면 자동으로 AI 이미지가 생성되고, 다시 텔레그램으로 돌아오는 워크플로를 활성화 해 보았습니다. 구글 Gemini 모델로 만들어진 프롬프트에, Pollinations AI(독일의 무료 이미지 생성툴) API를 통해 이미지를 생성하는 구조이더군요. 처음엔 구조가 생소했으나, 각 노드를 이해하면서 구현해보니 생각보다 명확하고 재밌었습니다 😊
https://n8n.io/workflows/5626-free-ai-image-generator-n8n-automation-workflow-with-geminichatgpt/
진행 방법
✅ 사용 도구
n8n (로컬 서버)
Google Gemini API (프롬프트 생성)
Pollinations AI (이미지 생성)
Telegram Bot API (입출력)
🔧 워크플로 구성 요약
Telegram Trigger: 사용자의 텍스트 메시지를 감지
BotFather에서 새로운 그룹채팅창 생성: "/newbot"
API 접속용 Token 생성 및 복사 > Credential 생성
그룹채팅방의 Chat ID 복사 및 맨 마지막 'Telegram Response' 노드에 삽입
Fields - Set Values: 이미지 생성에 필요한 고정값 설정 (크기, 모델 등)
AI Agent - Create Image From Prompt: Google Gemini로 텍스트 프롬프트 생성
Code - Clean JSON: Gemini 응답에서 프롬프트만 추출
Code - Get Prompt: 이미지 생성 API에 보낼 포맷으로 가공
Code - Set Filename: 이미지 파일 이름 지정 (images_001.png 형식)
HTTP Request - Create Image: Pollinations API 호출해 이미지 생성
Telegram Response / Save Image To Disk: 생성된 이미지를 텔레그램으로 전송하거나 로컬에 저장
결과와 배운 점
처음엔 Google Gemini가 이미지를 만들어주는 줄 알았는데, 실제로는 '프롬프트(이미지를 묘사하는 텍스트)'를 생성하는 역할이라는 걸 알게 되었어요.
Gemini의 출력이 JSON처럼 보였지만 실제 로는 문자열이라서, 거기서 "prompt": 라인을 뽑아내기 위해 직접 코드 노드를 작성하는 점이 새로웠습니다.
프롬프트와 이미지 크기 등을 조합해 Pollinations API로 보내기 위해 가공하는 Code 과정들이 처음엔 이해가 되지 않았는데, AI와 티키타카하면서 map 함수로 변수 하나씩 객체를 만들어 보내는 것이라는 걸 이해할 수 있었어요.
이미지가 여러 장 생성될 경우 각각 저장하려면 파일명을 자동으로 붙여야 했는데,
images_001.png** 형식으로 만드는 코드 작성이 생각보다 직관적이었어요.**Telegram Trigger를 연결하고 활성화 시키는 부분에서 헤맸는데, "When chat message received" 노드와 동시에 'Activate' 하면 충돌난다는 것을 나중에야 겨우 알게 되어 수정이 가능했어요.
그리고, AI Agent에서 받는 프롬프트가 'Telegram Trigger'일 때와, 'When chat message received' 노드일 경웨 따라서, 받게 되는 변수값을 다르게 지정해 줘야 하는 부분이 작동을 위해서 중요해요.
💡 다음 목표
이전에 만든 블로그 자동 생성 워크플로에서 완성된 글의 각 단락을 분석하여 키워드를 추출하는 기능 개발
추출된 키워드별로 이미지 생성 프롬프트를 만들고, 자동으로 이미지를 생성하도록 수정
이미지 생성 모델은 Pollinations 또는 Stability API 등으로 구성하고, 결과 이미지를 html 형식으로 블로그글과 결합할 수 있도록 함
도움 받은 글
https://n8n.io/workflows/5626-free-ai-image-generator-n8n-automation-workflow-with-geminichatgpt/