Claude Code の料金を下げる小技が出回っています。システムプロンプト、ツール説明、ログ、過去の会話のようなかさばるコンテキストを、テキストではなく文字を詰め込んだ PNG 画像で送る方法です。画像は中に何文字入っていてもピクセルサイズで課金されるので、小さな文字で埋めた画像は同じ内容のテキストよりずっと少ないトークンで済みます。
オープンソースのプロキシ pxpipe がまさにこれを行い、料金が59〜70%下がったと公表しています。README でも正確な値は失われうると正直に書いています。そこで両面を独立に測りました。トークンが実際にどれだけ減るか、そしてモデルが中身をどれだけ正確に読み返せるかです。
測り方
- 文書6本(10,600〜23,200文字):自分たちの記事の英語・韓国語・日本語版、JavaScript のコード、生成した JSON の API レスポンス、生成した230行のサーバーログ
- 各文書に「チケット T123 のビルドハッシュは 3f9a1c7e02bd、タイムアウトは 19043 ms」のような行を5本埋め込みました。JSON とログでは元からあるレコード5件も質問しました
- 送り方は3通り:テキストのまま、pxpipe が実際に作る形(画像+正確な識別子を集めたテキストの「ファクトシート」)、画像だけ
- Claude Haiku 5.5・Sonnet 5.5・Opus 5.5・Fable 5.1 を Claude Code で各2回、計144回、完全一致で採点
- システムプロンプト:文書にあることだけ答え、確信がなければ null
トークン:削減は本物
| 文書 | テキスト | pxpipe 画像 | 変化 |
|---|---|---|---|
| 英語の記事 | 5,870 | 2,100 | -64% |
| 韓国語の記事 | 9,483 | 2,142 | -77% |
| 日本語の記事 | 8,678 | 2,374 | -73% |
| コード | 7,586 | 1,906 | -75% |
| JSON | 8,274 | 2,022 | -76% |
| サーバーログ | 13,053 | 2,935 | -78% |
(Opus 5.5。Haiku と Sonnet も数トークンの差で同じ。Fable 用のより密な配置では -68〜-81%。)
テキストで送るとトークンが多くかかる言語ほど、画像にしたときの削減幅が大きくなりました。日本語と韓国語が大きく減っています。
正確な値:ここで崩れる
テキストで送れば4モデルとも全項目に正解しました。pxpipe 経由ではこうなります。
| モデル | 埋め込んだハッシュ | 埋め込んだ数字 | JSON・ログ内の元のID |
|---|---|---|---|
| Haiku 5.5 | 21/60 | 22/60 | 0/20 |
| Sonnet 5.5 | 49/60 | 40/60 | 0/20 |
| Opus 5.5 | 58/60 | 44/60 | 0/20 |
| Fable 5.1 | 41/60 | 28/60 | 0/20 |
目立った点は3つです。
- ハッシュは画像ではなくファクトシートのおかげで当たっていました。 埋め込んだハッシュはすべて pxpipe のテキスト一覧に入っていました。ログには ID が235個ありましたが一覧に入ったのは94個だけで、漏れた ID は4モデル合計80回中1回も読めませんでした。
- 数字が弱点でした。 一番良かった Opus 5.5 でも60個中44個、韓国語の記事では10個中3個でした。
- 間違いがもっともらしかった。 「確信がなければ null」と指示しても、94392 を 9392 と読んだり、文書にない数字を答えたり、Fable 5.1 はファクトシートにある本物の値を別のチケットに付けて答えました。
では、いつ使えるか
モデルが理解すればよい内容には使い、そのまま書き写す必要がある内容には使わない、が答えです。要約する長文、レビューする設計書、過去の会話履歴なら問題ありません。ID、ハッシュ、価格、行番号、修正してほしいコードはテキストのまま残すべきです。
ボタンを作りました
日本語のようにトークンが多くかかる長文は削減幅が大きいので、無料のトークンカウンター https://tokensave.app/ja/ に試験機能の テキスト → 画像 ボタンを入れました。ブラウザ内で文章を PNG にし(サーバーには送りません)、選んだ GPT・Claude・Gemini のモデルでの画像トークンをテキストのトークンと並べて表示し、画像をコピー・ダウンロードできます。韓国語の記事9,000文字を入れると、Claude ではテキスト8,229トークンに対し画像は約1,400トークンでした。
注意点が2つあります。このボタンは pxpipe の 5×8 ピクセルの文字より大きくシンプルなフォントを使うので削減幅はやや小さく、読み返しの正確さはまだ測っていません。そして上の警告はそのまま当てはまります。正確さが必要な内容には使わないでください。
今回の限界
各セル2回・文書6本なので、個々のセルは例として見てください。測ったのは正確な値の読み返しだけで、pxpipe 側で良い結果が出ている要旨・計算の質問は測り直していません。pxpipe は実際には過去の履歴とシステムプロンプトだけを画像にし、直近の会話はテキストのままにするため、料金全体がどれだけ減るかはセッション次第です。
表・方法・CSV(CC BY 4.0):https://tokensave.app/data/text-as-image-token-cost
文書・レンダリング画像・回答の生データ・スクリプト:https://github.com/johnisking/token-cost-by-language/tree/main/text-as-image