TechMoon 科技月球
WordPress、SEO 與 AI 工具實測指南
TechMoon 科技月球
WordPress、SEO 與 AI 工具實測指南

MagicMirror 是開源的桌面 AI 換臉工具,宣稱完全離線處理、不用獨立顯示卡。讀碼與實測確認照片不出電腦屬實,CPU 約 1.6 秒換一張臉,四個模型共 759MB;代價是 Windows 防毒誤刪引擎、macOS 未簽章等安裝關卡,且專案已停更約 15 個月、免責聲明禁止商用。
用 AI 摘要這篇文章:
想在電腦上玩 AI 換臉,多數人會遇到兩種方案:一種要架環境、裝顯示卡驅動,門檻在工程能力;另一種是網頁服務,照片上傳別人伺服器,門檻在你的隱私底線。開源工具 MagicMirror 走第三條路:把整條換臉流水線裝進你的電腦,拖兩張照片進視窗就完成,宣稱完全離線、不用獨立顯示卡。
實測與讀碼之後,我的結論是:它的隱私宣稱在程式碼層面成立,普通 CPU 的速度也夠用,但入場要過三道系統關卡,而且專案已經停更約十五個月。把它當個人娛樂工具裝來玩,值得;要拿去做正經專案,先看完整篇再決定。
MagicMirror 是北京開發者 Del Wang(GitHub 帳號 idootop)的作品,MIT 授權,提供 Windows 與 macOS 版,GitHub 上累積約 2,900 顆星。安裝包只有 5 到 10MB,但別被這個數字騙了,真正的引擎接近 800MB,第一次啟動才會下載,後面會解釋。

打開它的原始碼,隱私宣稱不是行銷文案。這個 App 分成兩半:Tauri 做的外殼介面,和一個 Python 引擎伺服器。介面所有請求都指向本機的 localhost:8023,整個儲存庫掃不到任何分析或追蹤元件,Sentry、PostHog 這類常見的遙測函式庫一個都沒有。
對外連線只出現在一個地方:第一次啟動時,從 GitHub Releases 下載引擎包。程式碼裡不存在任何其他對外連線,引擎裝好之後不需要網路。這對「拿自己或朋友照片來玩」的場景很實際,照片從頭到尾沒有離開你的硬碟,輸出檔也直接存在原圖旁邊。
不過有一個但書值得知道。引擎伺服器綁的位置對整個區域網路開放(0.0.0.0:8023),而非只限本機使用的 127.0.0.1,而且開了跨來源資源共用、沒有任何鑑別。意思是:App 運行期間,同一個區域網路裡的其他設備,理論上也能呼叫這個換臉端點。它在家的 Wi-Fi 裡風險很低,端點也只有換臉功能,但如果你習慣帶筆電泡咖啡店,用的時候留個心。
換臉本身是四個開源模型接力:SCRFD 找出臉的位置,ArcFace 算出臉的特徵,inswapper 128 把新臉生成上去,GFPGAN 1.4 負責把畫質補回來。四個模型全部從開發者自己的 GitHub Releases 下載,附帶 SHA-256 雜湊值驗證。
| 模型 | 負責的工作 | 檔案大小 |
|---|---|---|
| SCRFD 2.5g | 偵測臉的位置 | 約 3MB |
| ArcFace w600k r50 | 抽取臉部特徵 | 約 166MB |
| inswapper 128(fp16 版) | 生成並替換臉部 | 約 265MB |
| GFPGAN 1.4 | 臉部畫質增強 | 約 325MB |
我在 Mac 上用同一套引擎實測(開發者抽出的 Python 套件 TinyFace,模型檔與 App 內建的完全同一批,App 直接打包在引擎包裡,套件版則從開發者的 TinyFace 儲存庫下載同一批檔案):四個模型下載並載入後,偵測一張 960 像素肖像照的臉花 0.19 秒,換臉加畫質增強共 1.59 秒,全程 CPU 推論,沒用到 GPU。第二次啟動時模型從快取載入只要 0.57 秒,也就是說漫長等待只發生在第一次。輸出與輸入的像素差集中在臉部區域,場景、衣服、背景基本原樣保留,換臉確實發生了。
「不用 GPU 也能跑」這句宣稱成立,而且有官方立場背書:常見問題集明寫目前只有 CPU 推論,不提供硬體加速選項。這代表兩件事:入門機器跑得動;反過來說,你有高階顯示卡它也用不上,追求速度的人要往下看替代方案。
操作流程比想像更簡單:先拖一張自己的正面照,再拖任何一張目標照片,幾秒後結果就出爐。想試新髮型,就拖那個髮型的照片進去;想看某套穿搭上身的樣子,拖穿搭照。它沒有內建範本圖庫,任何照片都是素材,這也是它體積能壓下來的原因之一。
兩張照片的分工值得說清楚,這決定你怎麼挑素材。目標照片提供場景:姿勢、光線、髮型、衣服、背景全部保留,只有臉被換掉。你的照片只提供臉:引擎從裡面抽出臉部特徵,貼到目標照片原本的臉的位置上。所以目標照片的臉越小、越側、越被遮住,效果就越勉強;官方文件也提醒,冷門格式、檔名含特殊字元、解析度過大都可能讓換臉直接失敗。成品不會另開資料夾,直接存在輸入照片旁邊,檔名加上 output 後綴。
還有一個從版本紀錄看出來的細節:引擎包其實在 2024 年 12 月出過 v2.0.0,修正了 macOS 的架構處理問題、補上 macOS 13 與 Windows 10 的支援說明,但 App 內建的下載網址從未更新,至今抓的仍是 v1.0.0。也就是說,部分使用者拿到的其實是已知問題未修正的舊引擎,這是「專案進入冰凍期」最直接的證據之一。

換臉快,裝起來慢,這是官方文件自己都承認的現實。三道關卡:
Windows:防毒軟體會把引擎刪掉。 引擎是用 Nuitka 編譯的 Python 程式,這種編譯方式跟很多惡意軟體相同,所以 Windows Defender 常把它誤標成病毒並刪除。官方教學附了截圖,教你去保護歷史記錄裡把被刪的 server.exe 還原。同一關還有個前置條件:得先裝微軟 VC++ 執行期元件,否則引擎起不來。
macOS:App 沒有簽章。 開發者在文件裡直說,他沒有購買一年 99 美元的蘋果開發者帳號,所以第一次打開會跳「MagicMirror 已損壞」的警告,要靠右鍵開啟之類的方式繞過,macOS 15 之後繞過步驟更囉嗦。Apple Silicon 機器第一次啟動還要經過轉譯,官方說 3 到 5 分鐘屬正常。
關卡之外還有幾筆舊案,安裝前可以當參考:有 Windows 10 企業版 LTSC 使用者反映引擎起不來,有 Mac 使用者被「App 損毀」的警告卡住,兩筆回報至今仍開著沒有真正修復。開發者當年有現身回覆、提供繞過方法,問題本身則從未解決。初始化畫面停超過十分鐘也是官方 FAQ 明載的已知症狀。遇到同樣狀況時翻 issue 比自己瞎試快。
下載管道有地域色彩。 App 內建的下載位址直連 GitHub Releases,台灣網路可以直接用。但官方安裝文件給的連結全部經過 gh-proxy.com 這個中國大陸代理,還準備了中國大陸讀者慣用的雲端硬碟鏡像,為的是繞過當地連不上 GitHub 的問題。無論走哪條路,認明 GitHub 專案頁是正貨來源。
還有一件必須誠實交代的事:2026 年 6 月有人在使用者回報區留了一句「server zip 裡有木馬」,這是單一、未經任何分析驗證的指控,專案無人回應,目前也沒有第二個案例或安全報告佐證。它與官方自認的 Nuitka 誤報模式長得像,但不能畫上等號。保守的做法是只從 GitHub Releases 官方資產下載,下載後自己再掃一次。
安裝包確實小,Windows 版 4.9MB、Mac 通用版 10.1MB。原因是它用 Tauri 框架,直接呼叫系統內建的瀏覽器元件,不用像 Electron 那樣把整個瀏覽器打包進 App,官方 FAQ 對這段的解釋相當誠實。
但安裝包不等於軟體本體。第一次啟動時,App 會再下載一個 773 到 796MB 的引擎包(依系統而定),裡面裝了前述四個模型和編譯好的引擎,解壓後放在你家目錄的 MagicMirror 資料夾。所以實際的安裝體驗是「裝一個 5MB 的殼,然後等一個 800MB 的下載」。初次設定前先確認硬碟空間和網路,下載中斷的話官方也給了手動下載解壓的補救步驟。
這個設計對隱私是加分的:模型和引擎都在本機,換臉過程不需要任何雲端服務。代價是你的第一次啟動體驗取決於 GitHub 的下載速度。
開發者在 FAQ 裡把自己的血統講得很白:MagicMirror 可以視為 FaceFusion 的精簡版。FaceFusion 是業界知名的開源換臉工作台,功能全面但設定繁複;作者把 FaceFusion 砍到只剩換臉核心,做成 Python 套件 TinyFace,再包上圖形介面,就是 MagicMirror。
對讀者的分流其實很清楚。要「一鍵、本機、隱私」的輕量體驗,MagicMirror 是目前門檻最低的選項之一;要 GPU 加速、批次處理、多臉編輯這類工作台級控制,去用 FaceFusion,我們先前寫過完整介紹。中間還有一條路:TinyFace 本身有命令列介面,會一點 Python 的人可以跳過圖形介面直接用它,兩個指令就能跑一次換臉:
pip install tinyface
tinyface swap -i 目標照片.jpg -r 目標照片.jpg -d 自己的照片.jpg
參數的分工是:-i 放被換臉的目標照片,-r 指定要換掉畫面裡的哪張臉(通常就是同一張照片),-d 才是提供新臉的照片。這條路線換到的是彈性:可以寫進腳本批次處理,也可以換掉模型路徑做實驗。代價是命令列的門檻,以及一切出錯都要自己讀原始碼。
站上介紹過的臉部處理工具還有好幾款,恰好湊成一條處理鏈:怕被辨識可以先用 Deface 把影片裡的人臉打模糊,想把照片玩出新花樣可以試 EmojiMyFace 把臉換成表情貼圖,或用 Nero 讓照片裡的臉動起來。這類工具的共同前提都一樣:拿自己或取得同意的照片來玩。
三層授權事實疊在一起,值得拆開講。最寬鬆的一層是程式碼本身:MIT 授權,幾乎你想得到的用法都允許。再往上一層就開始收緊:README 的免責聲明用英文明寫僅供個人娛樂與創作用途、禁止商業使用,這個立場與 MIT 條款之間存在張力,嚴格的商業授權結論要問法律專業。最緊的一層在模型:換臉核心 inswapper 128 出自 InsightFace 生態,作者自己也說它是整個應用的核心,而這類模型的授權長期偏向非商業研究用途。三層疊起來的實際建議:自己玩、朋友間分享,沒問題;想商用,先停下來釐清。
用途邊界也寫在免責聲明裡:不得用於帶惡意的冒充、散布不實資訊、侵犯隱私或製作不當內容。這不是官腔,近幾年各國對深偽(deepfake,用 AI 合成以假亂真的影像)的管制都在收緊,台灣也不例外,涉及真實他人的換臉內容散布出去,法律風險由使用者自己承擔。拿自己的照片試髮型穿搭,是這個工具最安全的用法,也正是它被設計出來的初衷。
適合的人:想拿自己照片試髮型、穿搭、玩創作,又不想把照片交給雲端服務的一般使用者。電腦不用好,CPU 就夠;作業系統要 Windows 10 或 macOS 13 以上。
不適合的人:需要商業授權確定性的團隊;需要 GPU 加速或批次處理的重度使用者,你們該去 FaceFusion;以及無法接受「防毒誤報要自己還原檔案」這種摩擦的人。
最後是時間線現實:主分支最後一次更新停在 2025 年 7 月,而且只是文件修改;App 至今只有 v1.0.0 一個版本(2024 年 11 月發布);2026 年的三件使用者回報,包括那件木馬指控,全部無人回應。好消息是它依賴的模型和下載管線目前都活著,安裝包累計下載約 3.2 萬次、引擎包合計約 7.8 萬次,裝來用沒問題。壞消息是遇到問題沒有維護者會修,把它當一個「現狀可用、未來自負」的工具看待,期待會比較準確。
回頭看整個專案的節奏也印證了這一點:2024 年 11 月 11 日建立儲存庫,從 Python 命令列換臉、跨平台引擎構建、介面設計到 v1.0.0 發布只花兩週,是一位開發者的衝刺型作品。衝刺結束後就轉往別的專案了,留下的東西完整、能用、開源,只是不再長大。