分鏡故事板生成器
根據用戶描述潤色故事線,拆分為分鏡腳本,批次生成風格一致的故事板插圖。
工作流程
階段1:故事潤色與分鏡拆分
- 接收故事 - 取得用戶描述的故事內容(文字、大綱、或靈感片段)
- 潤色故事線 - 補充敘事細節,梳理情感弧線,輸出結構化故事概要:
故事概要:一句話概括 情感弧線:[起點] → [轉折] → [結局] - 拆分分鏡 - 將故事拆為 6-10 個關鍵幀,每幀包含:
- 場景標題
- 鏡頭類型(遠景/中景/近景/特寫等)
- 畫面描述(人物動作、環境、光線)
- 情緒基調
- 對白/文字(如有)
- 展示分鏡腳本 - 以表格形式展示,等待用戶確認或調整
展示格式:
## 分鏡腳本
| # | 場景 | 鏡頭 | 畫面描述 | 情緒 |
|---|------|------|---------|------|
| 1 | 開場 | 遠景 | xxx | 平靜 |
| 2 | 引入 | 中景 | xxx | 好奇 |
| ... |
階段2:風格選擇
分鏡腳本確認後,展示 8 種視覺風格(讀取 references/visual-styles.md):
| # | 風格 | 一句話特徵 | 適用故事 |
|---|---|---|---|
| 1 | 賽博龐克漫畫 | 霓虹+暗色調+高對比 | 科技/AI/未來 |
| 2 | 吉卜力水彩 | 柔和的水彩+溫暖光影 | 日常/溫馨/成長 |
| 3 | 美式扁平插畫 | 向量幾何+明快配色 | 產品/商業/教育 |
| 4 | 電影分鏡手稿 | 黑白素描+鏡頭標註 | 影片腳本/廣告 |
| 5 | 像素藝術 | 復古16-bit遊戲風 | 遊戲/趣味/極客 |
| 6 | 中國風水墨 | 水墨暈染+詩意留白 | 傳統/哲理/東方 |
| 7 | 清線漫畫 | 均勻粗線+扁平上色 | 冒險/幽默/IP |
| 8 | 寫實概念藝術 | 電影級數位繪畫 | 史詩/科幻/奇幻 |
根據故事類型和情感調性,推薦 1-2 種最適合的風格並說明理由,等待用戶選擇。
階段3:生成提示詞
用戶選定風格後,為每個分鏡幀生成提示詞。
每個提示詞結構(讀取 references/visual-styles.md 取得風格前綴和鏡頭語言):
- 風格前綴 - 選定風格的標準描述
- 鏡頭指令 - 如「廣角建立鏡頭」/「特寫」
- 畫面敘述 - 用完整語句描述場景內容(人物、動作、環境、光線、氛圍)
- 情緒指令 - 明確畫面傳遞的情感
- 一致性錨定 -
重要:這是故事板序列中的第 [N] 幀,共 [TOTAL] 幀。保持完全相同的藝術風格、調色板、角色設計和視覺一致性。所有幀中的同一角色必須看起來完全相同。 - 中文指令(如需)-
影像中的所有文字、標誌和對白必須使用中文(繁體中文)。技術術語可以保持英文。
展示提示詞概要表,等待確認:
## 提示詞概要
| # | 場景 | 鏡頭 | 風格 | 核心畫面 |
|---|------|------|------|---------|
| 1 | 開場 | 遠景 | 賽博龐克 | 城市天際線... |
| ... |
確認後開始生成(共 N 幀)
階段4:批次生成
確認後逐幀呼叫腳本生成:
python3 scripts/generate_image.py \
--prompt "提示詞" \
--output "/Users/ugreen/Documents/obsidian/09image/MMDD-故事名-storyboard/01-場景名.png" \
--api-key "AIzaSyDvvGGRbH4Os3Er0dYi0kE_AzE3_2b_Az8" \
--api-url "https://generativelanguage.googleapis.com" \
--model "gemini-3-pro-image-preview" \
--aspect-ratio "16:9" \
--resolution "2K"
注意事項:
- 故事板預設 16:9 橫版
- 解析度預設 2K
- MMDD 為當天日期
- 檔案命名:
01-場景簡稱.png、02-場景簡稱.png... - 每幀間隔 2-3 秒避免限流
- 失敗幀記錄並繼續,最後回報
- 關鍵:角色外觀描述在所有幀中保持一致(髮型、服裝、體型)
階段5:展示與迭代
- 生成完成後,依序列出所有幀路徑
- 詢問用戶:
- 「整體故事節奏是否滿意?」
- 「需要重新生成某一幀嗎?」
- 「需要增加/刪除某個場景嗎?」
- 「角色一致性是否滿意?」
- 迭代:調整提示詞重新生成指定幀
儲存路徑規範
/Users/ugreen/Documents/obsidian/09image/MMDD-故事名-storyboard/
├── 01-開場-遠景.png
├── 02-引入-中景.png
├── 03-轉折-近景.png
├── 04-發展A-中景.png
├── 05-發展B-全景.png
├── 06-高潮-特寫.png
├── 07-結局-遠景.png
└── storyboard-script.md (可選:儲存分鏡腳本文檔)
API 配置
| 配置項 | 值 |
|---|---|
| API URL | https://generativelanguage.googleapis.com |
| API Key | AIzaSyDvvGGRbH4Os3Er0dYi0kE_AzE3_2b_Az8 |
| Model | gemini-3-pro-image-preview |
| 預設比例 | 16:9(故事板橫版) |
| 預設解析度 | 2K |
鏡頭語言速查
| 鏡頭 | 英文術語 | 用途 |
|---|---|---|
| 遠景 | 廣角鏡頭 | 開場、環境交代 |
| 全景 | 全身鏡頭 | 人物全身+環境 |
| 中景 | 中鏡頭 | 對話、日常互動 |
| 近景 | 特寫鏡頭 | 表情、情感 |
| 特寫 | 極端特寫 | 關鍵道具、細節 |
| 俯拍 | 鳥瞰鏡頭 | 全局、渺小感 |
| 仰拍 | 低角度鏡頭 | 權威、震撼 |
常見用法
| 用戶說 | 操作 |
|---|---|
| "幫我畫個故事分鏡" | 收集故事 → 潤色 → 拆分鏡 → 選風格 → 生成 |
| "這個故事做成故事板" | 同上 |
| "用賽博龐克風畫這個故事" | 跳過風格選擇,直接用指定風格 |
| "第3幀不好,重新生成" | 調整提示詞重新生成單幀 |
| "加一幀過渡鏡頭" | 在指定位置插入新分鏡幀 |