デジタルガーデン
doubao-nomark 巡城記:一つの透かし除去ツールの軽量な真相
すべての城が重兵を置く必要があるわけではない。あるツールの優雅さはまさにその軽さにある——今回測量した豆包の透かし除去ツールは、六つの純 Python パッケージと百いくらかの MB のメモリで、「足りればよい」という工学の哲学を語りかける。
一、Linux で動くか:一等市民
README のインストール説明には source .venv/bin/activate # Linux/Mac と明確に書かれている——Linux はぎりぎりのサポートではなく一等市民である。三重の検証が隠れたプラットフォーム制限を排除した——requirements.txt は六つの純 Python パッケージ(cryptography、fastapi、uvicorn[standard]、httpx、pydantic、pydantic-settings)だけで、すべて Linux の wheel があり Windows 专属の依存は一切なし;リポジトリには .dll/.exe のようなプラットフォーム专属バイナリはなく、すべて Python ソースと Web 拡張;Dockerfile は python:3.11-slim(Debian Linux)を基礎とし、Docker Hub にはできあいのイメージもある——それ自身がコンテナ化デプロイの産物である。三つの走り方を任選——uv(公式推奨)、pip、Docker、Python 3.10 以上で、起動後は 8000 ポートをリッスンし、ブラウザ拡張(Chrome MV3/Edge/Tampermonkey)は OS と無関係。
二、占用は高いか:下限のない軽さ
ユーザーの第二の問いはコード層の検証を導いた。結論は非常に軽量——本質は小さな FastAPI 非同期 Web API 一つで、重いリソースコンポーネントには一切触れない。全部の仕事は三つだけ——httpx で非同期的に共有ページの HTML を取る、正規表現で埋め込み JSON を抽出する、解析して画像・動画のオリジナル URL を出して返す——本当のメディアファイルはブラウザ拡張が豆包 CDN から直接引き、このサービスを通らないので、メモリはファイルが大きいことで暴騰しない。ブラウザエンジンはなし(多くの同類の透かし除去ツールは Chromium を動かす、それはメモリを食う本命)、PIL/OpenCV/ffmpeg のような画像・動画処理ライブラリもなし、復号は URL トークンレベルの操作のみ(video_crypto.py は cryptography で一つの動画アドレスのトークンを解く、単一リクエストはミリ秒級)、キャッシュなし、サブプロセスなし、常駐スレッドなし。規模の参考——単一ワーカーの uvicorn プロセスはアイドル時 RSS 約百から二百 MB(Python 本体とライブラリのインポートオーバーヘッド)、安定運行はリクエスト量とともに显著に増えない;CPU はアイドル時ほぼゼロ;ディスクは数 MB のコードでログの膨張なし。これは一コア一 G の廉価 VPS やラズベリーパイでも動くことを意味し、Docker デプロイではとても低い memory limit(例えば 256m)を設定でき、並行に対応するにはワーカーをもう少し立てて水平拡張すればよい。
真実の座標
- プロジェクト:ihmily/doubao-nomark、FastAPI + 六つの純 Python 依存(cryptography/fastapi/uvicorn/httpx/pydantic/pydantic-settings)
- Linux サポート:README が uv インストールに Linux/Mac の手順を含むことを明示;.dll/.exe のようなプラットフォームバイナリなし;Dockerfile は python:3.11-slim ベース + Docker Hub のできあいイメージ ihmily/doubao-nomark;Python 3.10 以上、8000 ポート、クロスプラットフォームのブラウザ拡張
- 軽量の真相:httpx が共有ページ HTML を取得+正規表現で埋め込み JSON を抽出、メディアファイルはブラウザ拡張が CDN から直接引きサービスを通らない;Playwright/Selenium なし、PIL/OpenCV/ffmpeg なし;video_crypto.py は URL トークンレベルの復号のみ;単一ワーカーはアイドル時 RSS 百から二百 MB、CPU はほぼゼロ、ディスクは数 MB
- デプロイの結論:一コア一 G VPS/ラズベリーパイで動く;Docker —memory=256m が可行;マルチワーカーの水平拡張にボトルネックなし
コメント