手工去背與合成agent 可以調用的 GPU 服務
桌面寵物與遠端去背服務
從 AI 生成素材、去背管線到桌面渲染的完整鏈路。家裡那台顯示卡不夠力,就把去背拆成一支遠端服務,再包成 agent 直接能呼叫的工具。
- 技術
- PySide6、ONNX Runtime、MCP、Tailscale
問題
想把自己養的貓做成 Windows 桌寵。素材用 AI 影片生成, 但每一段影片都要逐幀去背成透明 PNG,筆電的顯示卡跑一支要好幾十分鐘。
真正的問題不是慢,是這件事沒有介面: 去背是一個人坐在那裡開軟體、拖檔案、等進度條。
做法
把去背獨立成一支跑在家用桌機顯示卡上的服務,只綁在私有網路內、不對外開放。 筆電這端是一層很薄的 MCP adapter,對外只暴露一個阻塞式的工具:丟一支影片進去,拿一包去背好的幀出來。
送影片而不是送幀,用內容雜湊做冪等——同一支影片重送不會重算。 於是「去背」從一個人的操作,變成 agent 對話中的一次工具呼叫。
踩坑
- Windows 的檔案改名在目標被讀取時會直接拒絕。 只加重試沒有用, 真正的修法是在行程內用鎖把「寫完 → 換上去」變成不可分割的一步,並且保證任務一定落到終態, 不然工作會永遠卡在排隊中。
- 自我測試沒有隔離性,就會在升級時假性通過。 舊版產出的檔案被誤認成本次結果, 修法是把一次性亂數寫進輸出的中繼資料,逼測試只認這一輪的產物。
- 首幀特別慢不是效能問題,是引擎冷啟動。 每個行程要付一次編譯成本, 拿首幀算平均值會得到完全錯誤的結論。
驗收
不靠感覺,靠對照:新舊管線對同一批素材輸出逐位元組相同; 與參考結果的重疊度 0.9997;穩態每幀 0.383 秒。 競態條件的回歸測試帶對照組——沒修的版本 300 次會壞 12 次,修完 0 次。