ByteScope

Portrait Blur

ポートレートモードで撮らなかった写真にも、後からボケを。AI の奥行き推定はこのタブの中で動き、写真はどこにも送られません。

ファイルはブラウザから送信されません — 処理はすべてローカルで行われます。

写真

ここに写真をドロップ

クリックして選ぶか、貼り付け(Ctrl+V)でも読み込めます。1 枚ずつ処理します。

最初の 1 枚だけ、約 125 MB のモデル(Depth Anything V2 Small 99 MB と MODNet 26 MB)をダウンロードします。2 回目からはブラウザのキャッシュを使います。

写真はアップロードされません。奥行きの推定も被写体の切り出しもボケの描画も、すべてこのタブの中で行います。

正直な限界

  • 奥行きは 1 枚の写真から AI が推測したもので、測ったものではありません。髪の毛、ガラス、鏡、細い手すりの輪郭はよく間違えます。被写体保護を使うとかなり良くなりますが、毎回うまくいくとは限りません。
  • 本物のレンズではありません。明るい点にできる玉ボケの形と大きさは、あくまでシミュレーションです。
  • WebGPU がないブラウザでは、遅くて粗めの方式に切り替わります。どちらで動いているかはステータス欄に表示します。
  • 被写体保護は人物向けに調整しています。ペットや商品は奥行きマップだけが頼りです。
  • 写真はアップロードされません。

このツールについて

スマホのポートレートモードは、深度センサーや 2 つ目のカメラを使ってボケを作っています。デジカメや古いスマホで撮った写真、スキャンした写真にはその奥行き情報がありません。そこでこのページでは、Depth Anything V2 Small(Apache-2.0)が写真のどこがどれくらい遠いかを推測し、MODNet が人物を見つけ、ピントを合わせた距離から離れるほど強くぼかします。人物、商品、ペットの写真の散らかった背景をぼかす作業が、写真を誰にも渡さずにこのタブだけで終わります。

ピント、F 値、ボケの形

ピントは最初、見つかった被写体に合っています。結果の画像をタップすると、その位置の奥行きにピントが移ります。このときやり直すのはボケの計算だけで、モデルは再実行しません。ボケの強さを f/1.4〜f/8 で表しているのは写真好きに通じやすいからで、実際のレンズの設定ではありません。ボケの形は円形と六角形から選べます。計算はリニアな光の値で行うので、明るい点はちゃんと明るい玉ボケになります。元の写真と結果はスワイプで見比べられ、モデルが何を手前・奥と判断したかは奥行きマップで確認できます。

正直な限界

奥行きは 1 枚の写真から AI が推測したもので、測ったものではありません。髪の毛、ガラス、鏡、細い手すりの輪郭はよく間違えます。被写体保護をオンにすると、奥行きマップが髪を読み違えた部分も人物はくっきり残るのでかなり改善しますが、毎回うまくいくわけではありません。しかも人物向けに調整しているため、ペットや商品は奥行きマップだけが頼りです。玉ボケの形と大きさはシミュレーションで、本物のレンズが描くものとは違います。WebGPU がないブラウザでは遅くて粗めの方式に切り替わり、どちらで動いているかを画面に表示します。

ダウンロードするものと保存されるもの

最初の 1 枚では Hugging Face から約 125 MB のモデル(奥行き用 99 MB、被写体用 26 MB)をダウンロードし、以降はこのブラウザのキャッシュに残ります。写真そのものはアップロードされず、アップロード先のサーバーもありません。結果は元の写真と同じサイズ(長辺 8,192 px・1,600 万画素まで)で、JPEG(品質 0.92)か PNG で保存できます。

よくある質問

写真はアップロードされますか?

されません。写真の読み込み、解析、ぼかし、書き出しはすべてこのタブの中で行い、サイトにはアップロード先がありません。通信は 2 つのモデルファイルの取得だけで、そこに写真は含まれません。気になる場合は DevTools の Network タブで確認できます。

最初に約 125 MB もダウンロードするのはなぜですか?

ブラウザの中で 2 つのモデルを動かすためです。奥行きモデルの Depth Anything V2 Small は 99 MB。27 MB の軽量版もありますが、ブラウザではかえって遅く精度も落ちたので、フル精度版を使っています。人物を見つける MODNet は 26 MB で、「背景を消す」や「証明写真」のページと同じファイルです。どちらも一度ダウンロードすればキャッシュに残るので、2 枚目からはすぐ始まります。

髪の毛やガラスの輪郭がおかしくなるのはなぜ?被写体保護とは?

奥行きは 1 枚の写真から、元の写真よりずっと低い解像度で推測され、そのあと輪郭に合わせて引き伸ばされます。細い髪、ガラス、鏡、細い手すりはこの推測を間違えやすく、背景がくっきり残ったり人物の輪郭がぼけたりします。被写体保護は人物を見つける別のモデルを使い、人物と判断した部分は奥行きマップに関係なくくっきり残します。髪の輪郭の多くはこれで直りますが、毎回ではありません。人物が見つからなかった写真では保護がオフになり、その理由を表示します。

f/1.4 は本物のレンズと同じ意味ですか?

違います。F 値はボケの強さのたとえで、f/1.4 がいちばん強く、f/8 がいちばん弱いボケです。焦点距離やセンサーサイズ、撮影距離といった実際の条件は計算に入っておらず、玉ボケの形や大きさも特定のレンズを再現したものではなくシミュレーションです。

パソコンによって遅いのはなぜですか?

WebGPU があれば、奥行きモデルとボケ計算のいちばん重い部分をグラフィックスカードで処理します。ない場合はすべて WebAssembly で CPU が担当し、実用的な速度にするため奥行きモデルへの入力を小さくし、ボケも粗めのグリッドで計算します。どちらで動いているかは画面に表示します。使えないわけではなく、時間がかかってボケが少し粗くなるだけです。

ペットや商品の写真にも使えますか?

使えます。ボケは奥行きマップに沿って付くので、手前と奥がはっきりした写真なら被写体を問いません。ただし被写体保護は人物向けの調整なので、ペットや商品では何も見つからずに自動でオフになったり、被写体の一部しか守れなかったりします。被写体をタップすれば、そこにピントを合わせられます。

保存される画像のサイズは?

元の写真と同じサイズです。上限は長辺 8,192 px、合計 1,600 万画素で、それより大きい写真は収まるように縮小し、保存前に出力サイズを表示します。JPEG は品質 0.92 で、透明な部分は白で埋めます。PNG は透明部分をそのまま残します。