AI 繪本魔法師:使用 n8n + Groq + Replicate 打造零門檻自動化故事書生成系統

··
資訊科技應用 自動化工具 N8n AI 自動化 教育 Telegram Bot

想為孩子製作個性化教育故事書,卻被複雜的 Prompt 工程嚇退?

AI 繪本魔法師 是一個基於 n8n 的自動化工作流專案,只需輸入一個教育關鍵字(如「誠實」、「分享」),系統便會自動完成故事編排、角色設定、分鏡繪製,並封裝成精美的 HTML 電子書


Part 1:系統架構與核心功能
#

1. 技術架構概覽
#

本專案使用 n8n 作為自動化編排核心,串接以下服務:

階段 技術/工具 說明
介面層 Telegram Bot API 接收使用者指令與回傳成品。
邏輯層 n8n (Self-hosted) 處理 Regex 過濾、資料清洗、流程控制 (Loop)。
大腦層 Groq API (Llama 3.3) 負責故事創作、JSON 格式化輸出Prompt 工程
視覺層 Replicate (Flux 1.1 Pro) 執行高指令遵循度的圖像生成。
封裝層 Node.js (Code Node) 動態組裝 HTML/CSS

2. 核心功能特色
#

  • 零門檻操作: 透過 Telegram Bot 介面,無需學習複雜指令。
  • 結構化敘事: 自動生成包含起承轉合的 4 頁微型故事
  • 角色一致性 (Character Consistency): 透過代碼鎖定主角與反派特徵,確保不同頁面間的角色形象連貫。
  • 即時電子書封裝: 自動生成排版精美的 HTML 網頁檔,提供完整閱讀體驗。
  • 智能過濾: 內建 Regex 過濾器,防止機器人誤判閒聊訊息,節省 API 成本

Part 2:工作流邏輯與實作細節
#

3. 工作流流程
#

Telegram Trigger → Switch Node (Regex Filter) → Groq LLM (Story Generation)
                                                      ↓
Telegram (Help Message) ← Switch Node ← JSON Parse & Character Locking
                                                      ↓
                                            SplitInBatches (Loop 4 Pages)
                                                      ↓
                                            Replicate (Flux Image Gen)
                                                      ↓
                                            Merge & Collect
                                                      ↓
                                            HTML Builder (Code Node)
                                                      ↓
                                            Telegram (Send Document)

4. 輸入過濾 (Input Gatekeeping)
#

為了避免閒聊消耗算力,使用 Switch Node 搭配正則表達式進行嚴格篩選:

Regex Rule:

^text=".*"$

說明: 僅接受 text="主題" 格式的輸入,其餘輸入(如 /start 或普通對話)將被導向引導訊息。

5. 結構化輸出 (Strict JSON Output)
#

利用 Llama 3.3 的指令遵循能力,在 System Prompt 中強制要求輸出 JSON 格式

{
  "story_title": "故事標題",
  "character_bank": {
    "villain": "反派外觀描述"
  },
  "pages": [
    {
      "page_number": 1,
      "story_text": "故事內容",
      "image_prompt": "繪圖提示詞"
    }
  ]
}

這使得程式能將「故事文字」與「繪圖提示詞」分離處理。

6. 動態 HTML 組裝 (HTML Assembly)
#

系統不依賴第三方 PDF 工具,而是直接透過 Javascript (Code Node) 生成 HTML

  • 內嵌 CSS RWD 樣式,支援手機與電腦閱讀。
  • 自動將圖片 URL 與故事文字排版。
  • 輸出為單一 .html 檔案,方便使用者保存與分享。

Part 3:快速開始指南
#

7. 前置需求 (Prerequisites)
#

請確認您已準備以下資源:

  • n8n 實例Desktop 版Cloud 版皆可)
  • Telegram Bot Token(向 @BotFather 申請)
  • Groq API Key(用於 LLM
  • Replicate API Token(用於 Flux 繪圖

8. 安裝步驟
#

  1. 下載工作流檔案:

    下載本專案的 workflow.json 檔案。

  2. 匯入工作流:

    n8n 介面選擇 “Import from File”

  3. 設定 Credentials:

    • Telegram TriggerSend Message 節點填入您的 Telegram Credential
    • HTTP Request (Groq & Replicate) 節點填入對應的 API Key
  4. 啟用工作流:

    點擊 Activate 啟用工作流。


Part 4:使用指南
#

9. 基本使用方式
#

  1. 打開您的 Telegram Bot。

  2. 輸入以下指令格式:

text="你的主題"

範例:

text="勇氣"
text="迷路的太空人"
text="不想刷牙的小鱷魚"
  1. 等待約 30-60 秒,機器人將回傳一本 HTML 故事書

Part 5:常見問題與疑難排解
#

問題現象 診斷與解決方案
Telegram Bot 無回應 [1] 檢查 Credentials: 確認 Telegram Bot Token 已正確填入 Telegram Trigger 節點。 [2] 檢查工作流狀態: 確認工作流已 Activate[3] 查看 n8n 日誌: 檢查是否有錯誤訊息。
生成的故事格式錯誤 [1] System Prompt 檢查: 確認 Groq LLM 節點中的 System Prompt 明確要求輸出 JSON 格式[2] JSON 解析錯誤: 檢查 JSON Parse 節點是否能正確解析輸出。
圖片生成失敗 [1] Replicate API Key: 確認 Replicate API Token 已正確設定且有效。 [2] 圖片 URL 過期: Replicate 生成的圖片 URL 有時效性,確保工作流在時效內完成。
HTML 檔案無法開啟 [1] 檔案格式檢查: 確認 Code Node 正確生成 HTML 格式。 [2] 圖片 URL 有效性: 確認所有圖片 URL 在發送時仍然有效。

Part 6:專案展示與後續優化
#

10. 專案展示流程
#

  1. 輸入指令:Telegram Bot 中輸入 text="主題"
  2. n8n 運作中: 工作流自動執行故事生成、圖片繪製、HTML 封裝
  3. 最終成品: 收到精美的 HTML 故事書檔案。

11. 後續優化建議
#

  • 增加更多故事模板選項。
  • 支援多語言故事生成。
  • 優化圖片生成速度(使用快取機制)。
  • 添加故事書預覽功能。

授權與致謝:

  • Models: Meta Llama 3, Black Forest Labs Flux.1
  • Created with ❤️ using n8n automation

📥 工作流配置檔案下載
#

如果您想要在自己的 n8n 實例中使用這個工作流,可以下載以下配置檔案並匯入到您的 n8n 中:

⬇️ 下載 n8n 工作流配置檔案 (JSON)

使用說明:

  1. 下載 JSON 檔案後,在 n8n 中選擇「匯入工作流」
  2. 上傳此 JSON 檔案
  3. 請記得更新以下憑證:
  • Replicate API Token
  • Groq API Key
  • Telegram Bot Token
  1. 根據您的需求調整節點參數

📖 生成範例:繪本故事書
#

以下是一個使用此系統生成的完整繪本範例,展示了系統的實際輸出效果:

📚 查看「勇敢的小男孩」繪本故事書 (HTML)

⬇️ 下載「勇敢的小男孩」繪本故事書

說明: 這是一個完整的 HTML 格式繪本,包含 4 頁故事內容和 AI 生成的插圖。您可以直接在瀏覽器中打開查看,或下載後分享給他人。