← 返回 Siami 首頁

把 Claude Code 輸入轉成圖像:開源工具 pxpipe 實測省下 60% API 帳單

▲ 189 💬 72
把 Claude Code 輸入轉成圖像:開源工具 pxpipe 實測省下 60% API 帳單

編按:本文綜合整理自 teamchong/pxpipe GitHub 倉庫、Hacker News 討論串(291 分)、DeepSeek-OCR 論文 arXiv:2510.18234,並加入 Siami 編輯部觀點與分析。

開源工具 pxpipe 兩天內衝上 Hacker News 291 分、72 則留言,宣稱能讓 Claude Code 使用者的 API 帳單直接砍 59–70%。方法聽起來很反直覺:把本來用文字送的 context 轉成 PNG 圖片,再讓模型「看圖」回來讀。作者 teamchong 把整個代理掛在 Claude Code 與 Anthropic API 之間,攔截請求、把體積最大的系統提示、工具說明、過期的對話歷史全部轉成圖塊,再丟給視覺編碼器。

為什麼圖片比文字便宜

一般人直覺會覺得「圖片比文字貴」,但 pxpipe 給的數字完全相反:在一張 1928×1928 像素的 PNG 裡,Anthropic 的視覺編碼器只算約 4,761 個 vision token,卻塞得下 92,000 個字元。換算下來是 每個 vision token 撐 19 個字元,而真實 Claude Code 流量每個文字 token 只能撐約 1.91 個字元(作者量測 N=391 個 production request)。

換句話說,模型硬體上 vision token 的 KV cache 比 text token 輕很多。文字 token 因為要承載豐富語意,每個 byte 在記憶體裡可能要吃 megabytes;vision token 是 lossy 表示,每個 byte 大概只要 kilobyte。文字贏的臨界點是 ~19 chars/token,低於這個密度把文字丟去當圖反而更省——Claude Code 預設 context 就是 ~1.91 chars/token 這種「內容密度高、字少訊息多」的工作負擔。

實測下來,一段約 48k 字元的系統提示 + 工具說明,純文字要 25,000 tokens,轉成圖只要 2,700 tokens。這是 9 倍壓縮。但成本不是 9 倍:因為 vision token 計價係數比 text token 低,最終帳單落在 59–70% 下降。


安裝方式:30 秒掛上本地代理

pxpipe 是純本地 proxy,夾在 Claude Code 跟 Anthropic API 中間:

npx pxpipe-proxy        # 啟動 127.0.0.1:47821

ANTHROPIC_BASE_URL=http://127.0.0.1:47821 claude   # 把 Claude Code 指過去

啟動後打開 http://127.0.0.1:47821/ 可以看 dashboard:每筆請求省了多少 token、text→image 的對照、kill switch、即時 model 切換。回應保持正常串流——pxpipe 只壓縮 request,不壓縮 model 的 output。最近幾輪對話保持文字,老的對話歷史、靜態 system prompt、工具說明才轉圖。

預設啟用的模型清單是 claude-fable-5, gpt-5.6。Opus 4.7/4.8 因為讀圖 misread 率約 7%,GPT 5.5 在圖 context 上表現退化,兩者都是 opt-in,要手動加 PXPIPE_MODELS 環境變數或從 dashboard 開。


測試結果:novel-number 評估 100 分,公開榜單幾乎不打折

作者很誠實地區分「公開榜單」跟「novel 評估」——因為 GSM8K 這種標準 benchmark 已經在訓練資料裡,分數漂亮不能說明 vision 壓縮的正確性。所以他自製了「模型一定沒背過的隨機數字題」來測:

測試Ntext 答對率pxpipe 答對率token 變化
novel arithmetic, claude-fable-5100100%100%−38%
novel arithmetic, claude-opus-4-8100100%93%−38%
gist recall(多輪記憶)98/arm98/9898/98—
state tracking(值改三次)18/arm18/1818/18—
confabulation(沒講過的事瞎掰)16/arm0/160/16—

比較硬的測試是 SWE-bench Pro:text arm 15/19,pxpipe arm 14/19,分歧的那一題重跑 3 次都是同一邊贏(run-to-run variance,不是壓縮問題)。SWE-bench Lite 兩邊都 10/10,token 降 65%。n 還太小,receipts 放在 eval/swe-bench-pro/。

重要警告:lossy。作者坦白說「12 字元 hex string」這種要逐字對的東西,imaged 後只剩 13/15 對(Fable 5),Opus 是 0/15,而且錯的時候 model 會自信地掰一個答案給你,不會丟錯。SHAs、hash、secrets 必須留在文字;需要 byte-exact 工作的話用 CLAUDE_CODE_SUBAGENT_MODEL=claude-sonnet-4-6 把 subagent 路由到非 allowlist 模型,會原樣 pass-through。


🚨 為什麼這件事重要

這不是「單純一個 proxy 工具」,而是 Anthropic vision encoder 計價模型的試金石。Claude Code 一個月重度使用者帳單可以到 $300-$1,200,光一個本地 proxy 不用改任何 model 行為、不用換 model、純靠把 text 轉 vision 就能砍 60%,等於直接挑戰 Anthropic 對「一個 token 值多少錢」的定價假設。

更值得注意的是 DeepSeek 10 月公開的 DeepSeek-OCR: Contexts Optical Compression 論文(arXiv:2510.18234)已經系統性地證明:vision encoder 可以把 10 倍以上的文字量壓進極少 vision token,20× 壓縮還能保留 60% 精度。也就是說,「文字 vs 圖」不是哪個比較便宜的問題,是要看 vision encoder 怎麼設計。Anthropic 的 vision encoder 設計顯然讓 vision token 計價係數偏低——這是設計決策,不是 bug。

對企業 IT 跟 FinOps 團隊的含意更直接:「用哪個模型」不再是唯一的成本槓桿,「怎麼把 context 餵給模型」是另一條獨立變數。把 pxpipe 這種工具當作「短期省錢外掛」會誤判形勢——它的真正訊號是 vision encoder 的成本結構正在快速改變,未來一年的 LLM 計價模型很可能會重新設計。

🚨 數據解讀與質疑

幾個不能跳過的質疑:

  1. 「end-to-end 59–70%」是 anomaly case,不是平均。作者在 FAQ 裡坦白:13,709 個 production request 量下來是 59%($100 → $41),但後來 8,904 個 request 跑到 70%。只壓縮的子集(compressed-only)可以到 72-74%,但那不是 end-to-end。如果你只關心 10% 的高密度 text,那個數字漂亮;關心平均帳單,就是 60% 出頭。

  2. Anthropic 可能隨時改計價模型。hn_throwaway_99 的 89 分留言直接點出:Gemini 處理 PDF 是「OCR + text+image 同送」但不收 text token 費用,Claude 八成也是同一條計價邏輯。這不是成本優勢,是 token 計算的疏漏。一旦 Anthropic 修補(比方說把 vision token 計價係數拉到跟 1.5× 或 2× text token 看齊),pxpipe 的省錢效果會直接蒸發。

  3. 「59%」是 30 天前的工作負載,未來不一定重現。作者在 FAQ 明確說「the exact figure is workload-dependent — reproduce it on your own log」。如果你跑的全是稀疏自然語言對話(每句話很多字但少結構化資料),可能完全省不下來——profitability gate 在 ~3.5 chars/token 之上就會放棄影像化。

  4. Opus 4.7/4.8 為什麼被排除?作者說 misread 率 7%,但 Fable 5 的 hex string 也只有 13/15。如果哪天 Anthropic 推的 default model 換到 misread 率更高的版本,這條路就不通了。整個 pxpipe 假設 Fable 5 永遠是「讀圖最好的 frontier model」——這個假設比你想的脆弱。

  5. lossy 是結構性問題,不是工程問題。verbatim string 從圖裡撈回來不可靠是視覺 token 化的根本限制,不會因為換模型就消失。SHAs、API key、secrets、UUID——這些 12-char hex 識別符本來就是 token 經濟裡的「大宗成本」,但偏偏是最不能省的。pxpipe 把這塊放在 escape hatch(subagent route),但代表整體節省率還有上限。


實際用法與限制

import { renderTextToPngs, transformAnthropicMessages } from "pxpipe";

const imgs = await renderTextToPngs(toolResultText);     //  RenderedImage[]
const { body, applied, info } = await transformAnthropicMessages({
  body: requestBytes,
  model: "claude-fable-5",
});

可以不用 proxy 直接用 library:options.keepSharp(block) 強制某個 block 留文字;options.emitRecoverable 拿回原始文字 fallback。整個 runtime 是純 JS,Node 跟 edge/Workers 都能跑,@napi-rs/canvas 只在 build time 用。

roadmap 上的方向:更清楚的 glyph 渲染(eval/glyph-matrix/,跑一半暫停)、imaged bulk 是否能把有效 context 撐到 2×、更小的 active context 能否提升 long-task 精準度。作者說「這些是 hypothesis,不是 claim,要嘛有 n 撐起來,要嘛砍掉」——這個態度在開源 AI 工具裡算少見的誠實。

整個 repo 本身(包括 README)就是用 pxpipe 加上 Opus/Fable agent session 寫出來的,agent 在工作中讀自己的 collapsed history(imaged 過的)來保持 context 不爆。作者親自示範了「吃自己的狗糧」。


相關研究與延伸閱讀

  • DeepSeek-OCR: Contexts Optical Compression(arXiv 2510.18234, 2025-10-21)— 這篇是 vision token 壓縮的學術基礎,arXiv 全文、官方 GitHub、BentoML 技術解析。
  • 12 Ways to Cut Token Consumption in Claude Code(Firecrawl 工程部落格, 2026-06-05)— 另一條路線:靠 CLAUDE.md 精簡、path-scoped rules、model routing 達到 77-91% 節省,但這條靠的是減少 context,不改 token 計價結構。
  • Hacker News 討論串 #48776464(291 分, 92 則留言)— 主要爭論在「這是計價漏洞還是物理便宜」,技術細節 deep dive 很值得讀。
  • AI Weekly 二手報導(2026-07-04)— pxpipe renders Claude context to PNGs to cut bills 59-70%,可作為快速摘要,但深度建議讀原始 GitHub README。

同主題延伸影片:Tokenmaxxing: My Claude Code Workflow — 講的是另一條「$100/month 計畫榨到極限」的路線,可以對照看。

網友熱門留言 (5)

#1 hn_throwaway_99(Hacker News) ▲ 89
Gemini 處理 PDF 是先 OCR 再把『文字 + 圖』一起送進模型,文字 token 還不收費。所以 Claude 的後端八成也在做一樣的事——這個工具能省 60% 比較像是 token 計價的漏洞,一旦 Claude 把這條路堵掉,省錢效果可能就消失了。
#2 Taek(Hacker News) ▲ 56
LLM 文字 token 在記憶體裡的表示其實非常肥大,KV cache 每個 byte 的文字可能要吃掉 megabytes;但圖片是 lossy 表示可以接受,KV cache 大概只要 kilobyte per byte of image。如果你能把一段文字先轉成 100 byte 的圖、再讓模型把圖 lossless 展開成 100 kB 的 KV cache,光看運算量反而是划算的。差別在於你的任務能不能接受 lossy。
#3 Gooblebrai(Hacker News) ▲ 47
DeepSeek-OCR 的『Contexts Optical Compression』論文給了一個關鍵:圖進 LLM 時會先切成 tile,每塊 tile 過 vision encoder 變成 vision token,再丟回 LLM。訓練得好之後,vision encoder 可以用很小的 token 數量承載 10 倍以上文字量。所以 pxpipe 不是 bug,是踩到 Anthropic 自己 vision encoder 的成本設計。
#4 yorwba(Hacker News) ▲ 31
一開始我也覺得『底層總要轉回文字 token,Anthropic 怎麼可能真的比較省』,但下面有人提到 DeepSeek 視覺壓縮的新作法,其實不是單純計價漏洞,而是物理層面就可能比較便宜。技術細節我沒完全看懂,但這跟傳統理解差蠻多的。
#5 esafak(Hacker News) ▲ 24
沒那麼誇張啦,text token 大概 8 kB,3-4 字一個 token → 每字 2 kB。image token 16x16 pixel → 每 pixel 32 bytes overhead;一個字至少要 20 pixel(含空白),所以 1 個字從 text 的 4 字/token 變成 image 的 12 字/token。算下來 3 倍省,這跟 60% 成本下降其實對得起來。