一個每天自己長出一種字體的網站,卡死了三天我才發現
從別人整理的 100 種 AI 生圖字體風格名稱起家,我把它做成有實測圖、能一鍵複製提示詞的站,然後讓它每天自動長一種。這篇講那條產線怎麼接,以及它安靜掛掉三天的兩個原因。

這篇講的東西
- 線上版(可搜尋、一鍵複製提示詞):https://yazelin.github.io/ai-font-styles/
- 原始碼(MIT):https://github.com/yazelin/ai-font-styles
- 最初那 100 種的整理者:Facebook 粉專「數位生活小記」阿吉
先把來源講清楚:最初那 100 種字體風格名稱是阿吉整理的,不是我想的。我做的是把它變成看得到效果、複製得走、而且自己會長大的東西。
站上每個條目都有兩張實測生成圖,不是示意圖:一張純字(字體名稱本身用該風格呈現),一張應用(把字套進真實設計場景的迷你成品,知識圖卡、雜誌封面、促銷廣告、遊戲海報那種)。旁邊兩顆複製鈕,一顆給字體提示詞,一顆給含場景描述的應用提示詞。
寫這篇的時候 fonts.json 裡是 124 種,最新一種是刺繡布標字,今天早上自己長出來的。你讀到的時候應該又多了幾種。
每天長一種是怎麼運作的
GitHub Actions,台北時間每天 10:30:
- 從
queue.json候選佇列取出第一筆。名稱、風格描述、應用場景都預先寫好,佇列可以隨時手動增刪排序。 - 打自架的 codex-image-service 生純字圖跟應用圖。
- Gemini 視覺驗字:繁體字形對不對、有沒有錯字漏字、風格符不符合名稱。單張最多重生 3 次,全過才上線。
- 寫進
fonts.json、commit,Pages 自動更新。
重生三次還是不合格的字體,挪到佇列尾端換下一筆繼續,當天 13:30 跟 16:30 還有兩個補跑時段。生圖服務本身掛掉就直接讓 workflow 失敗,佇列原封不動。
佇列低於 14 筆時 workflow 會自動開 issue 提醒我補貨。補貨是批次補約 20 個候選、跟全表查重、補分類缺口,走 PR 人工審過再合。選題我故意不自動化,品味那部分留在手上。
它卡死了三天
7 月 28 到 30 號,站上沒有長出新字體,而且沒有任何人(包括我)發現。7 月 31 日修的時候找到兩個原因,兩個都很典型。
第一個是驗字硬要白背景。驗證的 prompt 寫死了「背景應該是白的」,於是任何本來就該有背景的風格全部被判不合格。咖啡拉花字沒有液面、黑板字沒有黑板,模型為了通過檢查就退化成通用字體只換個皮。這一條後來變成寫候選時的規則:如果風格本身隱含特定背景(黑板、液面、夜空),desc 就要點出來,不能假設一律白底。
第二個更蠢:單筆失敗會擋住整條佇列。第一筆過不了,後面 100 多筆就一起停在那裡等。修法就是前面寫的那句「挪到佇列尾端、換下一筆」,一行邏輯的事,但沒想到就是不會有。
我從這件事學到的不是「要加監控」這種漂亮話,是:一條每天跑的自動化產線,失敗要嘛吵到我,要嘛自己繞過去,安靜停住是最糟的第三種。
稽核那一輪:應用圖在自我介紹
7 月 23、24 兩天我把前面所有的應用圖重看一遍,抓到一個從一開始就存在的毛病:應用圖上的主標題直接寫字體名稱本身。電路板字的海報上寫著「電路板字」。
這看起來只是無聊,實際上它讓應用圖失去意義。應用圖要證明的是「這個字體放進真實案例好不好看」,標題寫字體名稱等於只是把名字貼到一張背景上。修法是候選佇列多一個 headline 欄位,寫那個場景裡真的會出現的一句話,電路板字配「DEV CONF 2026」這種。純字圖不受影響,純字圖本來就是拿名稱當展示文字。
同一輪還有一條規則寫進補貨守則:desc 要交代筆畫怎麼構成,線條走向、堆疊方式、鑲嵌結構、書寫筆觸,不能只寫材質形容詞。「金屬感」「絨毛感」這種字眼不夠具體,模型收到之後多半就是把一個普通字體換個表面。
怎麼用
任何圖卡生成都適用,格式就三行:
[主題與內容描述]
標題使用「科技標題字」,內文使用「現代知識字」
[版型、情緒、使用場景描述]
這些不是真的字型檔,是寫進提示詞的風格描述詞。做圖卡、封面、海報的時候直接指定,比說「幫我換一個好看的字」快很多。
不過講清楚它現在的程度:複製貼上不會一次到位,實測都還要自己再調一點。 這個公式目前只能做到「標題用這個、內文用那個」這種粗的指定,它給的是一種換字體的概念跟一套講得出口的詞彙,不是一貼就成的模板。
我覺得下一步要補的就是這裡:提示詞太簡易了。真正好用的版本應該要能指定到「這幾個字用這個字體、那一行用另一個」,甚至同一句話裡的重點字單獨換風格。現在的三行格式做不到,那是接下來要設計的東西。
站上擴充出來的字體會標「擴充」徽章,跟阿吉原本整理的 100 種明確區分開。
產線要不要全自動、哪裡留人工、失敗怎麼處理,是我定的;daily_font.py 跟那些工具腳本是 AI 寫的。
去挑一個字體試試看,把它當起點而不是終點。明天回來會多一種。