前陣子我看到一個超有趣的 Hugging Face Space——AI Comic Factory,它能把一段文字提示自動變成有分鏡、對白、標題的完整漫畫。簡單來說,你輸入「一隻偵探狗在雨夜追查失竊的魚」,它就會幫你生成多格漫畫,連分鏡腳本、角色對白、旁白字幕都幫你寫好。
但官方 Space 有個限制:免費用戶一次只能生成一頁,而且排隊等 GPU 很痛苦。今天這篇文章,我要帶你把 AI Comic Factory 完整部署到自己家裡,換上自己的 LLM(ChatGPT、Claude、Gemini 都可以)和繪圖模型(SDXL、FLUX 都行),然後邊喝咖啡邊看 AI 幫你畫漫畫。
什麼是 AI Comic Factory?
AI Comic Factory 是由 Hugging Face 研究者 jbilcke-hf 開發的開源專案,GitHub 上已經有 1.3k 顆星(雖然 2025 年 10 月正式归档為唯讀,但程式碼完全可用)。它的核心概念很直觀:用 LLM 寫劇本 + 用繪圖模型畫圖 = 自動生成漫畫。
整個流程長這樣:
- 你輸入故事概念和畫風(例如:「偵探狗在雨夜追查失竊的魚 || 黑色電影風格」)
- LLM 分析提示,自動生成每個分鏡的繪圖指令、角色對白(第一人稱)、旁白字幕
- 繪圖模型(如 SDXL)根據每個分鏡的指令生成圖片
- 自動疊加對白氣泡和字幕,輸出完整的漫畫頁面
- 可以匯出為 PDF,直接分享或列印
它支援的畫風超過十種:美式漫畫(50 年代 / 現代)、日式漫畫、法比漫畫(Franco-Belgian)、日本畫(Nihonga)、復古照片小說、股票攝影風……甚至古埃及壁畫風格都有。
技術架構:雙引擎協作
AI Comic Factory 的架構可以拆成兩個獨立但協作的部分:
1. LLM 引擎(劇本大腦)
負責把你的故事概念拆解成具體的分鏡腳本。每個分鏡包含:
- instructions:繪圖指令(角色外觀、場景、光影、姿勢等細節)
- speech:角色對白(第一人稱,2-3 句)
- caption:旁白字幕
支援的 LLM 後端:
| 後端 | 模型範例 | 需要 |
|---|---|---|
| Hugging Face Inference API | zephyr-7b-beta(預設) | HF API Token |
| Hugging Face Inference Endpoint | 自訂模型 | 自訂 Endpoint URL |
| OpenAI | gpt-4-turbo | OpenAI API Key |
| Groq | mixtral-8x7b-32768 | Groq API Key |
| Anthropic | claude-3-opus | Anthropic API Key |
2. 繪圖引擎(畫圖手)
負責根據 LLM 生成的繪圖指令,產生實際的漫畫圖片。
支援的繪圖後端:
| 後端 | 模型 | 需要 |
|---|---|---|
| VideoChain API(作者自家) | SDXL | VideoChain Token |
| Replicate | stabilityai/sdxl | Replicate Token |
| Hugging Face Inference API | SDXL Base + Refiner | HF API Token |
| Hugging Face Inference Endpoint | 自訂模型 | 自訂 Endpoint URL |
| OpenAI (DALL·E 3) | dall-e-3 | OpenAI API Key |
本地部署:Docker 快速上手
最簡單的方式是用 Docker 部署。專案本身提供 Dockerfile,基於 Next.js 架構。
步驟一:取得原始碼
git clone https://github.com/jbilcke-hf/ai-comic-factory.git
cd ai-comic-factory
步驟二:設定環境變數
複製 .env 為 .env.local(這個檔案不會被 commit,適合放金鑰):
cp .env .env.local
然後編輯 .env.local,以下是最基礎的設定範例(使用 OpenAI + Replicate):
# === LLM 設定 ===
LLM_ENGINE="OPENAI"
LLM_OPENAI_API_MODEL="gpt-4-turbo"
AUTH_OPENAI_API_KEY="sk-your-openai-key-here"
# === 繪圖設定 ===
RENDERING_ENGINE="REPLICATE"
RENDERING_REPLICATE_API_MODEL="stabilityai/sdxl"
AUTH_REPLICATE_API_TOKEN="rp-your-replicate-token-here"
如果你想要完全免費跑(不用 Replicate),可以這樣配:
# LLM 用 HF Inference API(免費層)
LLM_ENGINE="INFERENCE_API"
AUTH_HF_API_TOKEN="hf-your-token-here"
HF_INFERENCE_API_MODEL="HuggingFaceH4/zephyr-7b-beta"
# 繪圖用 HF Inference API(免費層)
RENDERING_ENGINE="INFERENCE_API"
RENDERING_HF_INFERENCE_API_BASE_MODEL="stabilityai/stable-diffusion-xl-base-1.0"
RENDERING_HF_INFERENCE_API_REFINER_MODEL="stabilityai/stable-diffusion-xl-refiner-1.0"
小提醒:HF 免費層的 Inference API 速度比較慢,如果遇到 timeout 可以換成 Inference Endpoint(付費但穩定)。
步驟三:啟動
docker build -t ai-comic-factory .
docker run -p 3000:3000 --env-file .env.local ai-comic-factory
打開瀏覽器訪問 http://localhost:3000,你就會看到 AI Comic Factory 的介面了。
實際操作:從零開始畫一頁漫畫
第一步:輸入故事提示
介面最上方有兩個輸入框:
- 故事提示(Story Prompt):輸入你的故事內容
- 畫風提示(Style Prompt):輸入你想要的視覺風格
兩個提示用 || 分隔。例如:
第二步:選擇畫風和版面
- 畫風下拉選單:提供美式(50 年代 / 現代)、日式漫畫、法比漫畫、日本畫、古埃及壁畫、復古照片小說、股票攝影風等十多種
- 版面配置:可以選擇不同數量和排列的分鏡格子(每頁預設 4 格)
- 對白氣泡 / 字幕開關:可以選擇要不要顯示
第三步:點擊 GO,等待生成
點擊 GO 後,系統會自動:
- 將提示送給 LLM,LLM 會回傳每個分鏡的詳細繪圖指令、角色對白和旁白
- 對每個分鏡,用繪圖模型生成對應圖片(約 30 秒 / 張)
- 在圖片上疊加對白氣泡和字幕
- 顯示完成的漫畫頁面
第四步:匯出 PDF
完成後點擊「Get PDF」按鈕,就可以下載完整的漫畫 PDF 檔案。
進階玩法:換上 FLUX 畫圖
既然已經本地部署了,最有趣的玩法就是換掉繪圖模型。AI Comic Factory 的繪圖引擎設計得很靈活,你可以把預設的 SDXL 換成 FLUX(Black Forest Labs 的最新開放模型)。
方法一:修改 render.ts 的渲染邏輯
在 src/app/engine/render.ts 中,newRender 函數根據 RENDERING_ENGINE 環境變數選擇不同的渲染路徑。如果你有自己的 FLUX API endpoint(例如用 llama.cpp 的變種跑 FLUX local inference,或是用 Stability API),可以:
- 新增一個自訂的渲染引擎類型
- 在
render.ts中加入對應的 API 呼叫邏輯 - 設定
.env.local中的RENDERING_ENGINE="FLUX_LOCAL"和對應的 API URL
方法二:用 Replicate 的 FLUX 模型
Replicate 上有 FLUX 的 Docker 容器版本,你可以直接用:
RENDERING_ENGINE="REPLICATE"
RENDERING_REPLICATE_API_MODEL="black-forest-labs/flux-1-schnell"
RENDERING_REPLICATE_API_MODEL_VERSION="..."
AUTH_REPLICATE_API_TOKEN="rp-your-token-here"
方法三:完全本地跑(零雲端費用)
如果你有 RTX 4090 或更強的顯卡,可以用 ComfyUI 或 Diffusers 本地跑 FLUX,然後在 render.ts 中加一個 LOCAL 渲染引擎,直接呼叫本地的 Stable Diffusion API。這樣每張圖只要 2-5 秒,而且完全免費。
進階:自訂 LLM 的 Prompt 系統
AI Comic Factory 的 LLM prompt 設計得很巧妙。系統提示(system prompt)會根據你選擇的畫風動態調整:
你可以修改 getSystemPrompt.ts 來調整:
- 對白長度:預設 2-3 句,可以改成更長或更短
- 第一人稱:對白使用第一人稱,讓角色更有個性
- JSON 格式:確保每個分鏡包含 panel number、instructions、speech、caption
如果你想讓角色更有辨識度,可以在 prompt 中要求 LLM 加入更詳細的角色描述(性別、年齡、髮色、服裝、口音等),這樣繪圖模型生成的角色一致性會更高。
常見問題與解法
Q1:HF 免費 Inference API 一直 timeout 怎麼辦?
換成付費的 Inference Endpoint,或是直接用 OpenAI / Anthropic 的 API,速度穩定很多。
Q2:生成的對白很奇怪或重複?
這通常是 LLM 的上下文管理問題。你可以:
- 換用更強的模型(gpt-4-turbo > claude > zephyr-7b)
- 在
.env.local中調整nbTokensPerPanel(預設 200 tokens / 分鏡) - 手動修改
getSystemPrompt.ts中的 system prompt,加入更多格式約束
Q3:畫風不一致?
- 在 Style Prompt 中加入更具體的風格描述
- 使用 Replicate 的 SDXL 比 HF 免費層穩定
- 考慮換成 FLUX,角色一致性通常更好
Q4:想加更多分鏡(超過預設的每頁 4 格)?
在介面的 Settings 對話框中調整 userDefinedMaxNumberOfPages 和每頁的 panel 數量。不過要注意,每多一頁就會多一輪 LLM 呼叫和繪圖生成,時間和費用都會增加。
總結
AI Comic Factory 把「寫故事 → 畫圖 → 排版 → 匯出」這整個漫畫製作流程自動化了。本地部署的好處是:
- 自由換模型:LLM 可以用 ChatGPT、Claude、Gemini;繪圖可以用 SDXL、FLUX、DALL·E
- 不受限:沒有 Hugging Face Space 的免費額度限制
- 隱私:故事和圖片都在自己家裡生成
- 可擴充:修改原始碼加入自己的繪圖引擎或 LLM 後端
如果你曾經夢想過「自己寫劇本、AI 幫你畫漫畫」,現在這個夢想真的可以實現了。從 Docker 啟動到第一頁漫畫完成,大概只要 15 分鐘。
剩下的,就交給你的想像力了。
參考資料:AI Comic Factory on Hugging Face · GitHub Repository · aicomicfactory.app