+
クリックまたはドラッグ&ドロップ
JPG / PNG 対応
動画の長さ(秒)
15
横移動量(px)
40
縦揺れ(px)
15
揺れ周期
4
ズーム倍率
1.25
解像度(幅px)
512
※ 高解像度にすると端末によっては処理に時間がかかります
ズーム中心
(50%, 50%)
プレビュー画像をクリックで設定
動画を生成するとここに表示されます
深度マップはアップロード後に生成されます
1 枚の写真には、本来「どこが手前でどこが奥か」という情報は入っていません。Parallax 3D が最初にやるのは、その推定です。AI モデルが写真を見て、各ピクセルの奥行きをグレースケールの明るさとして出力します。白いほど手前、黒いほど奥です。
あとは単純な作業になります。画面を細かい格子に分け、格子ごとに「奥行き × カメラの移動量」だけ位置をずらして描き直す。手前ほど大きくずれ、奥はほとんど動かない。カメラの位置を少しずつ変えながらこれを繰り返すと、止まった写真が視差で立体的に見えます。
ただし本物の 3D モデルを作っているわけではありません。手前の被写体をずらせば、その裏に隠れていた背景が見えるはずですが、写真にはそこが写っていないので、周囲を引き伸ばして埋めています。動きを強くしすぎると輪郭が溶けたように見えるのはこのためで、「効きすぎ」に見えるときは、たいてい横移動量が大きすぎます。
パラメータは 6 つありますが、動きの見え方を決めるものと、生成時間を決めるものが混ざっています。先に短く軽い設定で動きを決めて、最後に長さと解像度を上げるのがいちばん速い進め方です。
「深度マップ」タブには、AI が推定した奥行きがグレースケールで出ます。動画を作る前にここを見ておくと、何分か待ってからがっかりする回数が減ります。
見るところは 1 つだけです。主役の輪郭が背景と分かれているか。人物と背景の境目がぼんやり同じ明るさになっていれば、その写真では視差がほとんど出ません。逆に主役がはっきり白く抜けていれば、横移動量を控えめにしても十分立体的になります。
境目が推定しづらい写真には傾向があります。ガラス越しの撮影、金網やフェンス、細い枝や後れ毛、画面の大半が真っ白な空。それから、スクリーンショットや平面的なイラストのように、そもそも奥行きが存在しない画像。これらは動かしてもゆがむだけなので、別の 1 枚を試すほうが早いです。
生成にかかる時間は「フレーム数 × 1 フレームあたりの描画コスト」で決まります。フレーム数は 24fps × 秒数なので、15 秒なら 360 枚。描画コストは解像度が上がるほど増えます。
つまり解像度 1024px で 30 秒を選ぶと、512px で 15 秒のおよそ 8 倍の仕事になります。パラメータを探している間は 512px・5〜8 秒あたりで回し、気に入った動きが決まってから長さと解像度を上げてください。
深度推定が走るのは、画像を選んだ直後の 1 回だけです。ただし解像度スライダーだけは元画像から作り直すため、動かすともう一度推定が走ります。ほかのスライダーは推定をやり直さないので、プレビューを見ながら何度でも触って構いません。
深度推定はあなたの端末の中で動きますが、そのためのモデル本体は、最初に一度だけダウンロードする必要があります。取得先は Hugging Face(Depth Anything V2 Small の量子化版・約 26MB)と jsDelivr(実行に使う WebAssembly ランタイム)です。
外に出ていくのは「このモデルをください」というリクエストだけで、あなたの写真は含まれません。奥行きの推定も、フレームの描画も、MP4 への書き出しも、すべてブラウザの中で完結します。
2 回目以降はブラウザのキャッシュに乗るので、待ち時間はほぼ消えます。初回だけ通信量がかかる点は、モバイル回線で使うときに気に留めてください。
出力は H.264 の MP4 で、音声トラックはありません。SNS やメッセージアプリにそのまま投稿できます。動画の横幅は解像度スライダーで指定した値、高さは元画像の比率から決まります。
カメラの動きは、最後のフレームが最初のフレームにつながるように作ってあります。ループ再生させても切れ目で飛ばないので、ストーリーズやプロフィール動画のように繰り返し流す使い方に向いています。
エンコードにはブラウザの WebCodecs を使っています。最近のブラウザなら対応していますが、古い環境では「動画を生成する」を押しても書き出せないことがあります。その場合はブラウザを新しくしてください。