關於這個網站
一個人做的小工具:把靜態照片變成會呼吸、會眨眼的循環肖像, 全部跑在自己家裡的一張顯示卡上。
為什麼做這個
起點是家裡那本相簿。抽屜深處泛黃的合照、只剩一張的爺爺奶奶年輕時的樣子。 看著看著會想,如果他們能再眨一次眼、再笑一次,會是什麼感覺。 現在的影像生成模型其實已經做得到,但一般人要用得先裝 Python、裝 ComfyUI、 下載幾十 GB 的模型、再看懂節點圖怎麼接。技術早就不是問題了,缺的是有人把它包好。
所以這個網站把整條流程收成三個步驟:選一張照片、選一個動作、等四十秒。 背後的指令措辭、畫面尺寸、循環方式、失敗攔截,都已經替你調好了。
關於作者
我是 William Hsu,全端工程師,做的是從 0 到 1 的完整系統: 產品設計、系統架構、開發、部署到商業化。作品集在 lazebot.com, 上面有 ERP 系統、遊戲伺服器基礎設施、AI 系統整合等十幾個專案。
這個網站是其中比較好玩的一個:它同時是影像生成模型的實作練習, 也是「把一個難用的技術包成任何人都能用」這件事的實驗。
做這個網站時學到的事
大部分的工作不在「讓模型跑起來」,而在處理各種真實世界的意外:
- 在指令裡叫模型「不要移動鏡頭」,畫面反而推得更兇(實測位移量從 6.6 惡化到 39.2)
- 讓模型畫相框,畫出來的框會歪,改成網頁疊上去
- 指令寫「這個人」,但照片裡是一隻鳥,模型會憑空生一個人出來
- 整套跑得慢,時間花在把 30GB 模型搬進 16GB 顯示卡,不在計算
- 使用者的手機把分頁凍結,前端以為斷線就放棄,其實後端一路跑完了
這些踩坑的細節都寫在技術說明和使用教學裡, 有興趣的話那兩頁比這頁有料。
技術棧
MiniMax H3 影像轉影片模型、ComfyUI、NVIDIA RTX 5070 Ti、Python + Flask、 ffmpeg、OpenCV,前端是沒有框架的原生 HTML/CSS/JavaScript。 沒有用任何雲端 AI API。你的照片會傳到我們自己的伺服器處理(這是網頁服務必然的事), 但它不會再被轉交給任何第三方服務,也不會被拿去訓練,七天後自動刪除。
三個設計原則
一、能不讓使用者選的,就不要讓他選
這個工具沒有開放自由輸入指令,只能從十一個預設動作裡選。 做得到,但指令的措辭一亂掉,出現奇怪東西的機率就會上升。 「照片裡是一隻鳥,指令寫 the person,於是憑空長出一個人」就是最好的例子。 把選擇收斂到少數幾個確定可行的組合,成功率比給你一個輸入框高太多。
二、失敗要看得懂
模型做不好的時候,使用者不該只看到「生成失敗」四個字。 所以有失敗案例這一頁,把每一種常見的壞掉長什麼樣、為什麼、怎麼修, 用真的跑出來的影片攤開講。
三、不要偷偷處理使用者的照片
整套跑在自己的機器上,照片不會被轉交給任何第三方 AI 服務,不做訓練、不做人臉比對、 七天自動刪除。這幾句在技術說明裡都寫得出實作細節的東西。
接下來想做的
- 讓成品長度可以選(目前固定 6 秒循環)
- 更多動作,特別是動物組(現在只有五個)
- 把 VAE 解碼那 11 秒再壓下去,目標單張 30 秒以內
- 批次處理:一次上傳整本相簿
有想要的功能歡迎直接告訴我。
看看其他作品 → lazebot.com站上其他工具
- 變老變年輕 — 上傳正面照,看同一個人變老或變年輕
- 交通事故熱點地圖 — 警政署 99 萬件傷亡事故的熱力圖,可拉時間、篩車種
- 露營場合法查詢 — 1,807 家露營場哪些符合、違反哪條法規、還是不在名單上
- 淹水潛勢查詢 — 水利署 10 種降雨情境的模擬淹水深度地圖,各鄉鎮淹水比例
- 找回毛孩 — 全台走失/撿到毛孩地圖,沒晶片也能刊登,撿到的人免登入回報目擊
全部跑在同一台家用機器上;資料類工具用的是政府公開資料,每個都有寫清楚限制。