DeepSeek Harness 向けの動画ツールプラグイン:カット切り替えに基づいて動画を、9〜16 マスで構成され、マス番号とタイムスタンプが付いたストーリーボード画像に圧縮します。下部には音量バーを添付し、字幕または音声転写をマスごとに整列させます。モデルは画像を確認後、特定のマスを指定して拡大フレームを要求できます。
スター数 40
理由
- モデルに「動画を見せる」コストが高い問題を解決:作者によれば、1枚の画像で約 384 トークン、5 分の動画なら1枚の画像で全過程を確認できますが、1フレーム1画像のアプローチで同じ範囲をカバーするには 3,072〜6,144 トークン必要です。
- 切り替え点は HSV 色変化検出により判定し、各マスでは3フレームの中から最も鮮明な1フレームを選択します。早送り部分はより多くのマスに割り当てられます。作者によれば、自作テスト動画では 9 個のハードカットすべてを検出できましたが、ffmpeg の scdet デフォルト閾値では 4 個しか検出されませんでした。
- 長尺動画では from / to を使用して一度に 2〜5 分を確認でき、後続の展開を先に見てしまうのを防ぎます。textOnly 設定で転写テキストのみをページング読み取りし、画像出力を行いません。
- ffmpeg 以外のランタイム依存性なし、モデル重みも含まれません。リポジトリには 154 個のテストがあります。
使い方
- Node 20 以上、および PATH 内の ffmpeg / ffprobe が必要です。通常の profile では
dsh plugin --profile web add dsh-video-storyboardを使用し、デスクトップ版 profile ではリポジトリ内のnode scripts/install-dev.mjsを使用します。インストール後、DSH を再起動してください。 - 会話内で
video_storyboard({ input: "ローカル動画パス" })を呼び出します。詳細確認が必要な場合はvideo_zoomを使用します。コマンドラインでは、まずnode bin/storyboard.mjs your-video.mp4 --cells 9 --textを実行して、モデルが受け取る内容を確認できます。 - 動画に字幕がない場合は、OpenAI 互換の
/audio/transcriptions音声転写サービス(DSH_ASR_KEYを設定)を別途構成する必要があります。設定がない場合は、映像と音量バーのみが出力されます。
リスク
- 使用モデルは画像入力に対応している必要があります。マス数を増やしても、すべてのカットが確実に認識される保証はありません。作者も、高速なパンニングショットが誤ってカット切り替えとして検出される可能性があることを明記しています。
- Bilibili などのウェブリンクを渡すには、yt-dlp を自前でインストールし、cookies.txt を提供する必要があります。これは自身のログイン認証情報とプラットフォームの利用規約に関わります。速度に関する数値は作者による自己テスト結果です。