編集ソフトが終わり、モデルが始まる場所。
多くの道具には継ぎ目があります。書き出して、アップロードして、待って、ダウンロードして、戻ってきたものを置き直し、まだ位置が合っていることを願う。その継ぎ目の片側にはあなたのプロジェクトがあり、反対側には、そのプロジェクトを一度も知らないプログラムがあります。Sparkle に継ぎ目はありません。それを無くすことが、このページに書かれた技術のほとんどです。
編集ソフトとは、ドキュメントと、それを変える操作のこと
パネルの下にある編集ソフトの正体は、ひとつです。いつ何が起きるかを記述したドキュメントと、それを変える唯一の手段である、名前の付いた操作の集まり。クリップを分割する、速度を変える、色を決める、字幕トラックを足す。ドキュメントに触れるものは、ほかにありません。
実装の細部のように聞こえますが、これが設計のすべてです。操作が唯一の入口になれば、あとで効いてくるものはすべて、つまり取り消し、同時実行、リプレイ、何が起きたかの監査は、入口そのものが持つ性質になります。入口を通る機能のひとつひとつに、後から付け足すものではなくなります。
だからアシスタントは、別のプログラムではなく、もうひとつの呼び出し側
アシスタントは、コードを生成しません。フレームも生成しません。メニュー項目が発行するのと同じ、名前の付いた操作を、同じ型の付いたパラメータで、同じドキュメントに向けて発行します。縦型の版を作ってくれと頼めば、編集ソフトが元から持っていた操作を呼び出します。
ここから二つのことが出てきます。どちらもこの設計の狙いです。まず、編集ソフトにできないことは表現できないので、あとからプロジェクトと突き合わせなければならない AI の出力というものが存在しません。そして、アシスタントがやったことは、あなたにもできたことです。つまり、読めるし、変えられるし、手で分解できます。
操作ひとつに、取り消しひとつ
アシスタントの操作ひとつが、100本のクリップに触れることがあります。速度を変え、色を変え、字幕の体裁をすべて変える。それでもまとまるチェックポイントはひとつなので、一度の取り消しで、頼む前の状態に戻ります。
これは便利さの話ではありません。編集のアシスタントを使えるものにするのは、正しく当たる回数ではなく、意見が合わないときに退ける安さです。きれいに拒めないアシスタントは、見張っていなければならないアシスタントであり、見張る手間は、自分でやる手間より高くつきます。
モデルは易しい部分です。その周りにあるものすべてが、編集ソフトです。
二つの手、ひとつのドキュメント
長い操作が動いているあいだも作業は続くので、ドキュメントには書き手が二人います。素朴に作ると、これは編集をひとつ失います。遅いほうが最後に保存し、もう一方のやったことを黙って上書きするからです。
保存はすべて、ドキュメントの現在の先頭操作に対するコンペアアンドスワップ(CAS)です。すでに動いた版の上に組み立てられた書き込みは、拒否されます。マージもしませんし、黙って適用することもありません。拒否することが、役に立つ振る舞いです。断られた保存は、正しい状態に対してやり直せます。失われた編集のほうは、それを行った本人が、何日も経ってから気づくことになります。
ちょうど一度、でなければ一度も
アシスタントの計画のステップは、いずれ次のどれかに出会います。再試行、二度押し、接続の切断、再読み込み、途中での異常終了、あるいは、どちらも自分の担当だと信じている二つの実行役。どれも編集を二度適用しかねません。タイムラインに二度適用された編集は、重複ではありません。別のタイムラインです。
だから、実行役に判断は任せません。何かを変える前に、プランストアからそのステップの実行権を確保しなければならず、ストアはロックの下で、それを不可分に与えます。与えられた実行権だけが編集を許可し、リプレイはドキュメントに触れずに最初の結果を返します。操作が起きたことを証明するのは、記録された操作 ID であって、ブラウザのタブに立っているフラグではありません。
モデルは、アップロードの向こうではなく、タイムラインの隣にある
マット処理、セグメンテーション、深度は、編集ソフトと同じプロセスの中で、すでに手元にあるフレームに対して動きます。書き出しも、アップロードも、待ち時間も、読み込み直しもありません。あとから位置を合わせ直すものも、ありません。
これは遅延についての設計上の選択であり、同時に、継ぎ目がたいてい開いたままにする問いに答えを出します。解禁前の素材は解禁前のままです。どこへも出ていないからです。本当にクラウドが必要な処理は、ひとつのゲートウェイを通り、そこで、要求したアカウントに紐づけて計測されます。
書き出しそのものであるプレビュー
再生ヘッドを動かしているときの絵も、最終レンダリングも、同じシェーダーが描きます。だから、承認したものが、そのまま納品するものになります。そうでなければ、AI による編集はどれも暫定です。絵を承認しておいて、ファイルはあとから確認し直すことになる。それは、パイプラインの反対側に継ぎ目が現れているということです。
ひとつのドキュメント、ひとつの操作の集まり、ひとつの取り消し、ひとつの先頭、ひとつの実行、ひとつのレンダリング経路。これらが揃うと、面白い問いはモデルの出来ではなくなります。どれだけ安く、モデルに異を唱えられるか。私たちが作っているのは、その部分です。