照片不出電腦:開源證件照工具 HivisionIDPhotos 實測

HivisionIDPhotos 是開源 AI 證件照工具,實測在斷網環境 0.1 秒生成 300 DPI 大頭照,照片全程不出本機;命令列換底指令有顏色錯位陷阱、網頁介面在 2026 年的乾淨環境裝不起來,這篇整理實測數據、自訂台灣規格的做法與三條務實路線。

用 AI 摘要這篇文章:

把對外連線全部擋掉,HivisionIDPhotos 照樣在 0.148 秒生出一張 295×413(寬×高)、300 DPI 的標準大頭照。這不是宣傳話術,是我在 Mac 上實際跑出來的數字:摳圖、裁切、換底色、壓檔案大小,整條流程都在自己電腦裡完成,照片從頭到尾沒有離開這台機器。

HivisionIDPhotos 是一個開源的 AI 證件照製作工具,2023 年 6 月開源,程式碼以 Apache-2.0 授權,在 GitHub 上累積超過兩萬一千顆星。它解決的事情很具體:你手邊有一張隨手拍的人像照,需要把它變成符合規定的證件照,規定的尺寸、底色、檔案大小都有硬標準。這篇是我本機實測的完整紀錄,包括它快在哪裡、哪裡會讓人卡住,以及台灣讀者實際使用時要先知道的幾件事。

我實際測了什麼

測試環境是 Apple M4 Max、純 CPU 推論、Python 3.11 的乾淨虛擬環境。斷網的做法是在 Python 層把對外的 socket 連線全部攔下,任何程式想連外都會被擋並留下紀錄,所以「零外送」有攔截日誌可以對帳。測試照片用的是專案自帶的兩張官方範例圖,解析度分別是 512×715 與 764×1146。

結果先講:兩張圖的完整生成時間分別是 0.148 秒與 0.114 秒,記憶體官方參考值約 410MB。專案 README 的效能參考表列的是 M1 Max 上的 0.207 秒與 0.246 秒(官方數字,我這台的晶片比較新所以更快)。對一般讀者的意義是:這個等級的速度,任何近幾年買的電腦都用不動「等待」這兩個字,瓶頸不在算力。

攤開實際輸出:規格、DPI 與檔案大小都壓得準

實測輸出的檔案有三個值得拿出來講的細節。

先看中間產物。工具的流程是先把人像去背存成一張透明背景的圖,再依需要加上底色,所以你可以一張照片同時出白底、藍底、紅底版本,不用重新去背。這一步有個坑,下一節會細講:換底時務必帶上檔案大小參數,不帶的話輸出顏色會整個錯位。

輸出檔內建 300 DPI 中繼資料。沖印店和線上申請系統讀的就是這個數字,很多線上去背工具給你的圖沒帶這個資訊,印出來尺寸會跑掉。實測用檔案工具檢查,中繼資料確實寫了 300×300。

檔案大小也可以直接指定。它有一個 KB 壓縮參數,實測指定 30KB,輸出就是 30,720 bytes,剛好壓在 30KB 上限,而且是正常的 JPEG 而不是那種硬塞爛掉的怪格式。有電子表件經驗的人都知道,申請系統常卡一個「檔案請小於 XX KB」的規定,這個參數等於直接把這關填掉。

排版照也值得認識。去背後的單張大頭照可以自動排成整張相紙,實測六吋排版輸出 1795×1205 像素,一張紙排滿十張一寸照,拿去相館直接沖印裁切就是成品。介面版支援五種紙張:六吋、五吋、A4、3R、4R,A4 尺寸對應 2479×3508 像素。另外它還有一個「社群模板照」功能,把你的大頭照嵌進示範模板的框框裡,不過官方目前只附了兩張模板圖,這功能比較像留給使用者自己加素材的架子。

HivisionIDPhotos 六吋排版照輸出,一張相紙排滿十張一寸藍底大頭照Pin
六吋排版照實測輸出:1795×1205 像素,一張相紙排滿十張一寸照(本機實測輸出)

還有一個工程師會用到的進階入口:它內建 API 服務模式,一行指令能把整條流程包成 HTTP 介面,參數包含尺寸、底色、渲染模式、DPI、美顏美白強度等,直接從表單傳值。想在自家系統裡接一個自動生成證件照的環節,不必改它的原始碼,呼叫服務就行。美顏與美白這兩個參數我沒有實測效果,只知道介面有提供。

台灣讀者要先學的是自訂尺寸,不是找預設

打開它的尺寸清單會發現一件台灣使用者要知道的事:內建 18 組預設全部是中國考試與證件規格(一寸、二寸、教師資格考試、社會保障卡之類),外加美國、日本、韓國簽證三組。沒有台灣常用規格。

這不是缺陷,因為自訂尺寸就是主要功能。台灣常見的二吋照片是 35×45mm,換算 300 DPI 就是寬 413、高 531 像素,直接把對應數值打進指令就好。實測自訂這組尺寸生成一樣是 0.1 秒級。介面版還支援用毫米輸入,連換算都省了。真正要記的只有一件事:別在預設清單裡找「台灣」,直接自己填。

底色部分,內建六種顏色加上色碼自訂輸入,也有上下漸層與中心漸層兩種渲染方式。護照、簽證、證照考試報名仍然吃實體或電子大頭照,這些情境它都涵蓋得到。介面有四種語言(中英日韓),中文介面用的字是簡體,台灣使用者看得懂但別期待繁體化,這個專案的功能開發已經定稿,介面文字至今沒有再變動。

它輕在哪裡:四個去背模型與兩個離線臉部偵測

「輕量級」是這個專案對自己的描述,實測後我認為這個詞要拆成兩半講,先講成立的那一半。

模型層確實輕。去背模型有四個可選:MODNet 官方權重(24.7MB)、作者自訓的 hivision_modnet(24.7MB,對純色換底表現較好)、RMBG-1.4(176.2MB)、BiRefNet lite(224MB,分割精度最高)。前兩顆下載完就能跑,實測兩顆速度都在 0.1 秒級。臉部偵測預設用 MTCNN,完全離線、CPU 毫秒級;想換精度較高的 RetinaFace 也是離線模型。整包預設組合的權重不到 50MB,跟那些動輒幾 GB 的繪圖模型完全不是同一個量級。

授權有一個挑模型的理由要注意:MODNet 是 Apache-2.0、BiRefNet 是 MIT,都寬鬆;但 RMBG-1.4 的權重是 BRIA 的非商業授權,商業使用要另外跟 BRIA 談。個人或公司內部自己用沒問題,要拿去開服務收費的話,選模型時看清楚授權,別預設抓最大的那顆。

程式碼層我也翻過:核心目錄裡僅有一個會對外連線的程式,是選配的 Face++ 線上臉部偵測,預設關閉,要自己填 API 金鑰才會動。也就是說,只要不主動去開那個雲端選項,這套工具在你機器上沒有任何照片上傳的程式路徑。

順帶一提它有個「野獸模式」:把人臉偵測與去背模型常駐記憶體不釋放,用記憶體換第二次之後的推理速度,官方建議 16GB 以上記憶體再開。這是給要連續批次處理的人用的選項,單張應急用不到。

兩個反常發現:換底指令的顏色會錯位,網頁介面裝不起來

實測最有價值的部分通常是出錯的地方,這次有兩個,第一個的觸發條件相當刁鑽。

換底指令的陷阱藏在「-k 檔案大小」這個選項裡。這個參數的正式用途是壓縮輸出檔大小,但它同時兼職了色彩正確性的開關:不帶 -k 時,輸出的顏色通道會錯位。實測指定藍色底(色碼 4f83ce),不帶 -k 的輸出底色是橘色。這不是我的螢幕問題:輸出檔角落的像素值我用程式讀出來,輸入是藍色的 79,131,206,輸出變成 206,131,79,紅藍兩個通道整個對調。白底、黑底這類對稱顏色看不出異狀,但人的膚色會明顯偏藍紫,選什麼顏色就拿到紅藍對調後的顏色。原因在原始碼裡找得到:不帶 -k 的存檔路徑上,色彩通道被轉換了兩次,第二次把第一次的結果再度反轉,等於對調再對調,程式沒有報錯,圖就是靜靜的錯色;帶 -k 的路徑只轉換一次,顏色就正確。

HivisionIDPhotos 命令列換底指令指定藍色色碼 4f83ce,輸出照片底色卻是橘色的實測證據Pin
指定藍底(4f83ce)、未帶 -k 參數的命令列輸出:底色變橘、膚色偏藍紫(本機實測輸出)

弔詭的地方在於:官方文件的範例指令恰好帶著 -k 30,照抄整條會過。但換底不一定想壓檔案大小,想要原圖輸出而省略這個「壓縮」參數,是很自然的用法,中雷時沒有任何警告。官方線上版走的是另一套處理程式,實測顏色正常,這個錯位只存在於命令列的這一條路。實務做法很明確:命令列換底每次都帶著 -k(例如 -k 300),把檔案大小與顏色一次管好。

不帶 -k 的輸出還有第二個連鎖問題:存出來的檔案副檔名雖然寫著 .jpg,實際內容是帶透明層的 PNG(用檔案工具一驗就知道),而下一步的六吋排版功能預期吃三通道的圖,兩邊對不上,Python 直接拋出值錯誤。帶 -k 的輸出是正常 JPEG,可以直接送排版;「先出原圖、再送排版」這條路就會斷在這裡。繞法不難,先把圖轉成三通道再餵給排版功能,我轉完之後六吋排版照(1795×1205)就正常產出,顏色也正確。這兩個坑在 2025 年 1 月的最後一版就在,至今沒修。

第二個反常更實際:網頁介面在 2026 年的乾淨環境裝不起來。這個專案的程式碼從 2025 年 7 月之後就沒有新功能了,最後一個正式版本 v1.3.1 停在 2025 年 1 月,但依賴清單裡的網頁框架沒有寫版本上限。照著官方文件兩行安裝指令走,2026 年裝到的是最新版框架,網頁介面入口直接起不來。我逐一把相關套件降級到 2024 年的版本組合,中間又連續踩過三個版本相容性坑,最後卡在其中一個框架元件的相容性問題上,網頁介面仍然進不去。命令列的去背與生成這兩步倒是全程穩定,一次都沒炸過。

這些事合起來指向同一個結論:這個專案的模型鏈是凍結前就打磨好的,穩;但命令列的外圍與安裝體驗是被時間凍傷的,文件範例會帶你踩坑,愈新的環境愈容易踩到版本漂移。

務實的三條路:Docker、線上版、命令列

依實測結果,我會把使用路徑分成三條,按省事程度排。

想要網頁介面又不想跟 Python 依賴纏鬥的,走官方 Docker 映像。專案有維護映像檔,一個指令就能把網頁介面跑起來。要誠實說明:Docker 這條路我這次沒有實測(本機沒開 Docker 環境),它的可用性來自官方文件的描述與映像倉庫的版本紀錄,映像最後更新停在 v1.3.1,與原始碼最後版本一致。

完全不想安裝任何東西的,用官方線上版。它在 Hugging Face 上有常駐的示範空間,我實際上傳一張測試照片跑完整流程,「標準照」「高清照」「排版照」三個輸出都正常產出,去背邊緣的髮絲處理得乾淨。代價要講清楚:線上版等於把照片上傳到 HF 的伺服器處理,本機零外送的優點在這條路上不存在。適合不在意隱私、臨時應急的人。

HivisionIDPhotos 官方線上示範介面,上傳照片後生成標準照、高清照與排版照三種輸出Pin
官方線上版實際生成結果:藍底標準照、高清照與排版照(Hugging Face Space 截圖)

在意照片隱私的,走命令列,這也是我實測的主路線。安裝上有個文件沒寫的小坑:核心依賴清單漏列了影像函式庫 Pillow,只照核心清單裝會在啟動時報模組缺失,補裝就好。補完之後,去背、生成、換底、排版、壓縮全線可用。

照片零外送之外,套件遙測是另一件事

斷網攔截的日誌裡有一個值得拿出來講的細節。照片本身確實零外送(攔截期間所有輸出正常產出),但安裝套件層的網頁框架在命令列執行時也會嘗試對外的遙測連線(我這套環境單次執行實測十六次),對象是遙測服務,不是照片傳輸。這些連線被我攔掉之後對輸出完全沒有影響,所以它是統計性質的遙測。

想關乾淨的話,設一個環境變數(GRADIO_ANALYTICS_ENABLED=False)就歸零,實測攔截日誌從十六次變零次。這裡的分層要說清楚:模型鏈零照片外送是架構事實;套件遙測是額外的、可關的、與照片無關的統計連線;線上版則是照片整張出本機。三個層次各自成立,不要混成一個「隱私安全」的籠統說法。

集中限制:使用前要接受的幾件事

功能面已經凍結。最後一次功能性提交是 2025 年 7 月,之後只有 README 更新徽章,README 上掛的「智慧換正裝」功能標註的是等待中,至今沒有實作。對它的期待應該停在現有功能:去背、裁切、換底、排版、美顏(美顏參數我沒有實測)、壓縮。

不過凍結不等於死掉。兩萬一千顆星養出的周邊生態還在:有人移植了 C++ 版本,有人做成 ComfyUI 的工作流節點,有人包了 Windows 圖形介面,也有人寫了 NAS 部署教學與小程式版本。核心不動,周邊自轉,這是開源工具定型之後常見的健康狀態。

去背品質有上限。它是通用去背模型,不是證件照專用的沙龍級修圖,雜亂背景、毛髮邊緣這類難例要自己看輸出驗收。我實測的兩張官方範例圖與線上版一張都乾淨,但樣本就是三張,不構成品質保證。真要追求把關品質的證件照,攝影棚還是有它的價值。

台灣的相館生態有自己的慣例。許多證件申請其實相館現拍現沖最省事,這個工具的甜蜜點是:照片隱私敏感、需要大量不同規格版本、半夜急用、或單純不想再為一張大頭照出門的人。反過來說,想要有人幫你確認照片合規、想要修到好看、想要立刻拿到實體照片的人,它不是答案。

想順著這個主題再挖的人,TechMoon 有幾篇可以接著看。同樣走本機路線的 LiYing 離線證件照工具 把去背、裁切、排版全部裝進單機,規格表與列印排版走得更深,兩篇對照著看會更清楚這個品類的取捨;用途更廣的一般 免費去背工具 收了不同路線的選擇;而「照片不出自己機器」這件事,MagicMirror 本機換臉 App 與 Immich 自架相簿 是同一個顧慮在別的場景的答案。

授權與專案狀態

程式碼 Apache-2.0,商用、修改、再散布都寬鬆,授權條款全文在 repo 的 LICENSE 檔。模型權重各自帶授權:MODNet(Apache-2.0)、BiRefNet(MIT)、hivision_modnet(放在專案的 GitHub 發布資產裡)、RMBG-1.4(BRIA 非商業授權,商用需另行取得授權)。專案未宣告停止維護,但功能提交停在 2025 年 7 月、正式版停在 2025 年 1 月的 v1.3.1,2026 年的活動以 README 徽章與宣傳自家其他產品為主。

判斷收在最後:要「快、免費、照片不出電腦」的證件照加工,它是目前公開可驗證的最好選項之一;要「有人幫忙扛規格與品質」,把錢付給相館仍然成立。兩萬一千顆星不會幫你選邊,這篇的實測數字至少讓你不用碰運氣。

Sliven 褚崇名
Sliven 褚崇名

每日分享科技新知、免費資源以及 WordPress、虛擬主機相關主題,任何問題歡迎在科技月球下方留言,或是發送 Email 至 [email protected] 與我聯繫。

文章: 1650

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


Share to...