Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

diohsu/PromptFill

Repository files navigation

Prompt Fill(提示詞填空器)

一款專為 AI 繪圖(GPT、Nano Banana 等)設計的結構化提示詞產生工具。透過可視化的「填空」互動方式,協助使用者快速組裝、管理與迭代複雜的 Prompt。

License Version React Vite Tailwind CSS

image@1x-2 1231333

📝 寫在前面

Prompt Fill 已更新至 v0.5.1。專案初衷是解決 AI 繪圖時提示詞難記、難管理、修改繁瑣的痛點。透過結構化的 Prompt,讓創作變得像「填空」一樣直覺。

🌟 目前進度與核心功能

  • ✅ 結構化 Prompt 引擎:支援 {{variable}} 語法,將文字模板自動轉為互動式表單。
  • ✅ 動態詞庫系統:預置數百個常用美術標籤,支援分類管理、自訂擴充與批次匯入。
  • ✅ 高清社群分享:內建模板封面渲染,支援一鍵匯出精美 JPG 長圖(自動擷取氛圍色)。
  • ✅ 模板/版本感知:官方模板雲端同步感知,免手動重新整理即可取得最新模板與功能。
  • ✅ 純本地儲存:基於瀏覽器 LocalStorage,無需註冊登入,資料完全掌握在自己手上。

✨ 核心特性

  • 🧩 智能詞庫管理:

    • 分類管理:支援自訂詞庫分類(人物、動作、畫面、物品等),並以顏色區分,視覺更清晰。
    • 雙向同步:右側預覽填空時可直接新增「自訂選項」,會自動同步回左側詞庫,無需來回切換。
    • 分類編輯器:內建分類管理器,支援增刪改分類與顏色配置(12 種預設顏色)。
    • 響應式版面:詞庫列表支援瀑布流多欄版面,空間運用更有效率。
  • 📏 多模板系統:

    • 支援建立多個獨立的 Prompt 模板(如「角色概念分解圖」、「3x3 攝影網格」)。
    • 獨立狀態:每個模板的變數選擇彼此獨立、互不干擾。
    • 副本複製:一鍵建立模板副本,方便做 A/B 測試或微調。
  • 🖥️ 可視化互動:

    • 所見即所得編輯:編輯模式下,變數依分類色彩高亮顯示,支援直接文字編輯與結構調整。
    • 拖曳插入:將左側詞庫卡片拖進編輯區域,即可快速插入變數。
    • 預覽模式:模板中的變數({{role}})會自動渲染為可點選的下拉控制項。
    • 獨立實例:同一變數在模板中出現多次(如 {{color}})時,可分別選擇不同的值(支援 color-0color-1 獨立索引)。
  • 💾 自動持久化:

    • 使用 LocalStorage 自動保存所有修改(模板、詞庫、分類設定)。
    • 重整頁面或關閉瀏覽器後,資料依然保留。
  • 🖼️ 圖像管理:

    • 預覽圖顯示:每個模板支援關聯預覽圖,展示於模板標題區域,視覺更豐富。
    • 自訂上傳:支援上傳自訂圖片取代預設預覽圖(支援 jpg、png、webp 等格式)。
    • 圖片操作:滑鼠懸停圖片時顯示操作按鈕:查看大圖、上傳新圖、重置預設圖。
    • 大圖預覽:點擊查看大圖按鈕,可在 Lightbox 模式下全螢幕瀏覽。
    • 裝飾背景:預覽圖會作為模糊背景顯示在模板頁頂,營造沈浸感。
  • 📋 匯出與分享:

    • 一鍵複製:複製最終產生的純淨 Prompt 文字。
    • 儲存長圖:將當前填好的 Prompt 模板匯出為高清圖片,方便分享與存檔。

🛠️ 技術棧

📚 文件

  • 內建 Prompt Gallery(模板/詞庫)維護與更新:docs/prompt-gallery.md

📦 資料更新流程(上游 → data.json → 程式)

  • 上游檔案:放到 src/data/upstream-data.json(可包含 categoriesbankstemplates,中文欄位用 cn)。
  • 執行同步:在專案根目錄跑 node scripts/sync-upstream.mjs,腳本會:
    • cn 鍵改為 zh-tw,並用 OpenCC 做簡轉繁。
    • 只合併「新增」的資料(banks 只補新的 options,templates 只加新 id,categories 只加新類別)。
    • 更新 src/data/data.json,並呼叫 scripts/sync-data.mjs 產出 src/data/banks.js / src/data/templates.js
  • 僅用本地來源:若只有本地 data.json 變更,可直接跑 node scripts/sync-data.mjs
  • 重要:sync-data.mjs 會用 data.json 完整覆蓋 banks.js / templates.js。執行前請先確保 data.json 已包含完整資料(可先匯出備份、再整合上游),避免遺漏。
  • 驗證:git diff 查看變更,啟動前端確認載入正常。

🚀 快速開始

前置要求

請先安裝 Node.js(建議 v18+)。

安裝與執行

  1. 複製專案

    git clone https://github.com/TanShilongMario/PromptFill.git
    cd PromptFill
  2. 安裝依賴

    npm install
  3. 啟動開發伺服器

    npm run dev

    將自動開啟瀏覽器造訪 http://localhost:5173

  4. 建置生產版本

    npm run build

快速啟動指令稿

專案根目錄提供啟動指令稿,雙擊即可一鍵啟動伺服器並開啟瀏覽器:

  • macOS:start.command
  • Windows:start.bat

📖 使用指南

第一步:管理分類(Categories)

  • 點擊左側面板上方的「管理分類」按鈕。
  • 可在此新增分類、修改名稱或顏色(支援 12 種預設顏色),亦可刪除不需要的分類。
  • 每個分類都有獨特的顏色標記,方便在編輯與預覽時快速辨識變數類型。

第二步:建立詞庫(Banks)

  • 點擊「建立新變數組」新增變數詞庫,並指派分類。
  • 在詞庫卡片中新增選項:
    • 單筆新增:輸入選項後按 Enter。
    • 批次新增:輸入多行選項(每行一個),系統會自動分行加入。
  • 詞庫支援拖曳,可直接拖入編輯器快速插入變數。

第三步:編輯模板(Templates)

  • 點擊右上角的「編輯模板」按鈕,進入可視化編輯模式。
  • 拖曳插入:按住左側詞庫卡片,拖入編輯器即可插入變數(如 {{weather}})。
  • 手動輸入:亦可直接在編輯器輸入 {{變數名}},系統會自動識別並渲染。
  • 編輯器中的變數會依分類顏色顯示,方便辨識與管理。
  • 支援復原/重做功能,隨時調整模板結構。

第四步:預覽與生成

  • 切換回「預覽互動」模式。
  • 點擊彩色變數詞,從下拉選單選擇值。
  • 自訂選項:若列表沒有需要的值,點擊下拉選單底部的「+ 新增自訂選項」,輸入後按 Enter 即可直接使用,並會自動保存到詞庫。
  • 多實例支援:同一變數在模板中出現多次(如 {{color}})時,每個實例可獨立選擇不同的值。

第五步:管理模板圖片(可選)

  • 查看預覽圖:若模板有預覽圖,會顯示在模板標題右上角,同時做為模糊背景裝飾頂部區域。
  • 上傳自訂圖片:
    1. 將滑鼠懸停於預覽圖,會出現三個操作按鈕。
    2. 點擊中間的「上傳圖片」按鈕(圖片圖示)。
    3. 選擇本機圖片檔(支援 jpg、png、gif、webp 等格式)。
    4. 圖片會自動上傳並取代目前預覽圖。
  • 查看大圖:點擊左側「查看大圖」按鈕(放大圖示),即可全螢幕瀏覽。
  • 重置圖片:點擊右側「重置預設圖片」按鈕(復原圖示),可恢復模板預設預覽圖。

第六步:匯出與分享

  • 複製結果:點擊右上角「複製結果」,一鍵複製最終產生的純淨 Prompt,可直接貼到 AI 繪圖工具使用。
  • 儲存長圖:點擊「儲存長圖」,將當前填好的 Prompt 模板(含預覽圖)匯出為高清圖片(PNG 格式),方便分享、備份或參考。匯出前會等待封面載入並進行 Base64 預取,避免出現空白封面。
  • 匯入 / 匯出(Beta):支援將模板與詞庫以 JSON 匯入/匯出。匯入前建議手動備份;匯入後系統模板會自動合併,使用者資料保留。

💡 使用技巧

  1. 批次建立詞庫:新增選項時可一次貼上多行文字,系統會自動按行拆分。
  2. 模板副本功能:測試不同 Prompt 效果時,可用「建立副本」保留原模板,方便對照。
  3. 顏色編碼:為不同類型的變數設定不同顏色,讓複雜模板更易讀。
  4. 多實例獨立選擇:當同一變數在模板中出現多次時,系統會自動分配獨立索引(如 color-0color-1),每個位置可選擇不同值。
  5. 自訂預覽圖:為模板上傳具代表性的參考圖,可快速辨識用途,也讓匯出長圖更有視覺效果。
  6. 圖片尺寸建議:預覽圖建議 300x300px 左右的正方形或直式圖片,呈現效果最佳。
  7. 本機資料安全:所有資料(含上傳圖片)皆儲存在瀏覽器本機,定期匯出備份可避免遺失。
  8. 標籤化檢索:模板加上標籤後,可在列表按標籤篩選快速定位。
  9. 瀑布流瀏覽:模板列表支援瀑布流展示,多張封面瀏覽更高效。
  10. 匯入/匯出(Beta):可一鍵匯出所有模板/詞庫為 JSON,或匯入他人設定;匯入前建議先手動備份。
  11. 多來源圖片上傳:新建或編輯模板時,支援本機檔案與圖片 URL。若需最佳匯出效果,建議使用同源的 public/ 路徑圖片。
  12. 本地化儲存:預設使用瀏覽器本地儲存模板、詞庫與圖片。如需跨裝置同步,請搭配匯入/匯出。

🗺️ 路線圖(Roadmap)

我們會持續優化並擴充 Prompt Fill,未來計畫如下:

  • 🚀 產品應用化:
    • 開發 iOS 原生應用,提供更好的行動端互動體驗。
    • 推出桌面端軟體(Electron/Tauri),打造完全離線的在地化環境,確保隱私與效能。
  • 🤝 模板生態社群:
    • 支援模板一鍵分享與線上匯入,打造 Prompt 創作者的共享社群。
  • 🤖 AI 智能賦能:
    • 詞庫擴充:串接 AI,自動產生並擴充相關變數候選。
    • 提示詞重組:支援 AI 將既有提示詞結構化拆解並一鍵優化重組。
  • ✨ 深度體驗優化:
    • 持續更新更多高品質內建模板。
    • 引入更進階的模板分類與標籤管理模式,支援無限層級的詞庫組織。

📝 更新日誌

Version 0.5.1 (2025年12月22日)

  • 📱 行動端互動大革新:
    • 沉浸式詳情頁:針對手機端重新設計圖片預覽與卡片互動,支援上下滑動切換卡片狀態。
    • 側滑抽屜選單:導入雙側滑抽屜設計,模板列表與詞庫列表在編輯模式下可隨手喚出。
    • 陀螺儀 3D 效果:行動端詳情頁支援依手機陀螺儀動態調整透視,帶來更真實的照片質感。
    • 獨立設定中心:為行動端打造全螢幕設定頁,整合系統參數、更新日誌與作者聯繫方式。
  • ⚡ 效能與穩定性優化:
    • Mesh Gradient 背景:首頁導入高效能網格漸變,取代傳統毛玻璃背景,解決複雜渲染的閃爍與撕裂問題。
    • 平滑捲動邏輯:海報模式自動捲動升級為 requestAnimationFrame,實現 60FPS 絲滑體驗。
    • 記憶體管理增強:開啟圖片詳情時,自動卸載並隱藏底層複雜瀑布流元件,大幅降低 GPU 負載。
  • 🛠️ 智能資料合併:
    • 平滑升級機制:優化資料遷移邏輯,系統更新時自動識別並合併使用者自訂選項,而非簡單覆蓋或冗餘備份。
    • 多圖模板支援:底層架構現已支援單一模板配置多張預覽圖。

Version 0.5.0 (2025年12月20日)

  • 🏗️ 深度架構重構:
    • 元件化解耦:將巨型 App.jsx 拆分為 DiscoveryView(發現視圖)、TemplatesSidebar(模板側邊欄)、BanksSidebar(詞庫側邊欄)等獨立元件,大幅提升維護性。
    • 效能飛躍:透過 React.memo 與全域狀態優化,顯著減少無效重渲染,解決部分瀏覽器的「螢幕閃爍」與「跳動」問題。
    • 資源調度:導入背景任務智能調度,介面處於編輯模式時自動暫停瀑布流捲動等高負載動效,降低 GPU 佔用。
  • 🎨 全新互動體驗:
    • 獨立發現頁:新增「發現視圖」作為入口,以瀑布流呈現所有模板及其封面。
    • 抽屜式懸浮:優化發現頁 Hover 效果,採用底部抽屜式磨砂玻璃標籤,視覺更輕盈。
    • 全功能工具列:側邊欄回歸排序、重新整理、語言切換與設定工具,並新增醒目的「回到主頁」快捷按鈕。
  • 📸 匯出功能增強:
    • 寬度優化:匯出長圖寬度由 600px 提升至 860px,適配更複雜排版,減少換行。
    • 文字美化:優化匯出圖片的變數膠囊樣式,確保文字清晰與 UI 質感一致。
    • 穩定性修復:徹底解決匯出時正文內容可能遺漏的問題。
  • 🔔 模板更新感知:
    • 新增模板/應用雙重版本校驗,雲端更新即時提醒,支援一鍵無損同步。
  • ✨ 新模板補充:
    • 新增「雨滴定格藝術」「可視化藝術成長之路」等高分模板與配套詞庫。

Version 0.4.1 (2025年12月12日)

  • 匯出功能優化:
    • 匯出格式改為 JPG(92% 品質),檔案大小減少 60-70%。
    • 新增模糊背景框,從模板圖片自動提取顏色,視覺更細緻。
    • 重構匯出版面:圖片移至頂部(限高 300px),標題簡潔(移除版本號與標籤),正文不重複標題,底部統一顯示版本號與 QR Code。
    • 匯出按鈕支援載入狀態(「匯出中...」),避免重複點擊。
    • 網址字型與整體風格統一協調。
    • 優化匯出尺寸:降低 scale(3.0 → 2.5),縮小邊距,整體圖片尺寸減少 30-40%。
  • 行動端體驗提升:
    • 匯入模板改用 Toast 通知取代 alert,更友善。
    • 完整備份匯入會顯示詳細確認對話框(模板、詞庫、分類數量)。
    • 新增匯入載入狀態與進度回饋。
    • 修復手機端匯入檔案後無回饋的問題。
  • 細節改進:
    • 匯出圖片中的變數膠囊添加輕微陰影,更立體。
    • 版本號動態取得,支援持續升級。
    • 底部浮水印優化,移除冗餘標籤。

Version 0.4.0 (2025年12月10日)

  • 模板體驗:新增瀑布流展示、標籤篩選;支援匯入/匯出(Beta);新建模板可上傳本機或 URL 圖片。
  • 資料儲存:預設本地化儲存模板與詞庫,支援一鍵重新整理系統模板/詞庫並保留使用者自訂內容。
  • 匯出改進:長圖匯出會等待圖片載入並進行 Base64 預取,避免封面空白。
  • 新模板/詞庫:新增「經典場景微縮復刻」「可視化企業成長之路」等模板;補充公司、畫幅比例、渲染風格(3D 像素)等詞庫。
  • 工程與啟動:start.bat 與啟動腳本相容性修復;瀏覽器自動開啟邏輯優化。

Version 0.3.0 (2025年12月08日)

  • UI 優化:
    • 優化「新建模板」按鈕樣式,採用統一的 Premium Button 設計語言,提升整體視覺一致性。
    • 按鈕新增滑過漸變與陰影動畫,互動體驗更流暢。
  • 功能說明:
    • 完善圖像上傳與展示的文件說明。
    • 支援自訂上傳模板預覽圖。
    • 圖片懸停操作:查看大圖、上傳新圖、重置預設圖。
    • Lightbox 全螢幕圖片預覽模式。
  • 文件完善:
    • 重構使用指南,採用分步驟的結構化說明。
    • 新增「使用技巧」章節,提供最佳實務建議(含圖片建議)。
    • 新增更新日誌,記錄版本迭代歷史。
    • 補充圖像管理功能的詳細說明。

Version 0.2.0

  • 新增模板匯出長圖功能。
  • 支援自訂分類顏色配置。
  • 優化響應式版面體驗。
  • 修復多項已知問題。

Version 0.1.0

  • 初始版本發佈。
  • 基礎模板管理功能。
  • 詞庫建立與編輯功能。
  • 變數填空互動系統。

🤝 貢獻

歡迎提交 Issue 或 Pull Request 改進本專案!

如有任何建議或發現 Bug,請隨時在 GitHub Issues 告訴我們。

📄 授權

本專案採用 MIT 授權

🙏 感謝

本專案原始出處為 TanShilongMario/PromptFill,感謝原作者的開源貢獻。

Made with ❤️ by 角落工作室

About

一個專為 AI 繪畫 (Nano Banana Pro) 設計的「結構化提示詞產生工具」

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

Languages

  • JavaScript 97.4%
  • CSS 1.2%
  • Other 1.4%

AltStyle によって変換されたページ (->オリジナル) /