0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

「もっと長く」ボタンを作るときに決めないといけない五つのこと

0
Posted at

「もっと長く」ボタンを作るときに決めないといけない五つのこと

動画生成のフロントを作っていると、必ず出てくる要望がある。「この動画をもう少し
長くしたい」

一見すると、既存の生成リクエストに秒数を足して投げ直すだけに見える。実際にはそうで
はなくて、このボタン一つの裏に独立した意思決定が五つある。全部決めないと、
UI が嘘をつくか、請求が想定外になるかのどちらかになる。

Wan 3.0 を例にするが、形は他の従量課金の生成 API でもだいたい同じだ。

1. 「延長」は再生成なのか、継続なのか

まずここを決めないと何も進まない。

  • 再生成:同じプロンプトで、尺だけ長くしてもう一度回す。前の映像とは別物になる。
  • 継続:既存のクリップを入力として渡し、その続き(あるいは前)を生成させる。

Wan 3.0 には後者のモードがある。前方向・後方向・両方向に伸ばせる。つまり「継続」は
選択肢として実在する。ただし継続を選んだ瞬間に、以下の四つが全部効いてくる

UI 的には、この二つを同じボタンにまとめてはいけない。ユーザーが期待しているのは
たいてい「継続」で、実装が楽なのは「再生成」だからだ。黙って後者をやると、
「同じ動画が長くなる」と思っていた人に別の動画が返る。

2. 上限は「出力の尺」ではなく「入力+出力の合計」

ここが一番間違えやすい。

input_video_seconds + output_seconds <= 30

入力に動画を渡すと、その入力の尺も 30 秒の上限を食う。超えた場合は切り詰めでは
なく、リクエストごと拒否される。

なので「あと何秒伸ばせますか?」の答えは固定値ではなく引き算になる。

アップロードするクリップ 伸ばせる最大 完成尺
3 秒 27 秒 30 秒
10 秒 20 秒 30 秒
20 秒 10 秒 30 秒
28 秒 2 秒 30 秒

UI にスライダーを出すなら、最大値は入力尺に応じて動的に変える必要がある。
固定で 30 を出すと、ユーザーが選べる値の半分が必ず失敗する。

3. 入力の秒数も課金される

二つめの引き算。入力動画の秒数は、出力と同じレートで課金される。
参照画像は 10 枚まで無料なのに、参照動画は自分の長さぶん請求される。

billed_seconds = input_video_seconds + output_seconds

この二つの式を並べると、直感に反する結論が出る。

一回の延長リクエストは、どう使ってもだいたい 30 秒ぶん課金される。
変わるのは「そのうち何秒が新しい映像か」だけ。

  • 20 秒を入れる → 30 秒ぶん払って、新しい映像は 10 秒。
  • 3 秒を入れる → 30 秒ぶん払って、新しい映像は 27 秒。

同じ請求額で、得られる新規映像は 9 倍違う。

したがって実装としての正解は明確で、送る前にクリップの末尾だけを切り出す
モデルが動きと光と被写体を拾うのに必要なのは末尾の 2〜3 秒で、その前の 20 秒は
課金されて上限を食うだけの存在になる。

これは UI に出したほうがいい。「末尾 3 秒だけを使って延長します(推奨)」という
チェックを既定で入れておくと、ユーザーは何も考えずに正しい側に落ちる。

4. 音は繋がらない

音声は画と同じパスで生成される。つまりパスが変われば音も変わる

  • 元のクリップと延長ぶんで、音楽が繋がらない
  • ステムは返ってこないので、音だけ差し替えることもできない。

なので「延長」の結果は、映像は繋がっているように見えても音は継ぎ目がある、という
状態になりやすい。ここは UI で先に言っておく類の制約だ。後から気づかれると
「壊れている」と受け取られる。

実務的な回避策は一つだけで、編集側で連続した音を下に敷く。プロダクトとして
そこまで面倒を見るなら、延長を選んだ時点で「音声なしで書き出す」オプションを
出すのが親切になる——ただし音を切っても料金は下がらない(切るべき二回目の
パスが存在しないため)ことも同時に書いておく必要がある。

5. 45 秒を要求されたときの答えを先に決めておく

上限は 30 秒なので、45 秒は一回の呼び出しでは出ない。ここで UI が取れる態度は三つ。

  1. できないと言う。 一番正直で、一番早い。
  2. 二回に分けて、繋ぎ目をユーザーに選ばせる。 カットを置く位置を生成前に決めて
    もらう。動きが解決した瞬間(カメラ移動の終わり)を推奨として提示する。
  3. 黙って二回投げて繋げる。 やめたほうがいい。繋ぎ目の品質を保証できないうえに、
    課金が二倍になったことがユーザーから見えない。

2 を選ぶ場合、見積もり表示は「2 リクエスト・合計 N 課金秒」と分解して出す。
従量課金のプロダクトで一番不信を買うのは、一回の操作が裏で何回課金されたか
分からないこと
なので、ここは冗長なくらい明示していい。

まとめ

「もっと長く」は機能ではなく、五つの意思決定の束になっている。

  1. 継続なのか再生成なのか
  2. 上限は入力+出力の合計
  3. 入力秒数も課金される(=末尾だけ送る)
  4. 音は繋がらないしステムもない
  5. 上限超えの要求にどう答えるか

上限や課金の根拠になっている値は、出典と確認日つきで
Wan 3.0 の仕様表にまとめてある。
ブラウザから実際に一度投げて挙動を見たい場合は
wan-3.run から一本目を無料で試せる。

wan-3.run は Wan 3.0 の上に作られた独立した第三者インターフェースであり、
Alibaba Group および Alibaba Cloud とは提携関係にありません。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?