Fullgrade
ビデオ向けの自動・優しいカラー補正ツール。すべてが ffmpeg + Python でローカル動作。GPU、クラウドAPI、トークンはほぼ不要(フレームを直接見るのではなく、スクリプトが分析を行います)。
言語: ユーザーの言語で応答します。ユーザーが中国語で書いた場合は --lang zh を指定し、レポートと比較画像を中国語にします。それ以外は --lang en を使用します。
1. 環境(初回実行時、または何か失敗したとき)
python3 <skill_dir>/scripts/fullgrade.py --check
不足しているものがあれば、ユーザーに必要なコマンドを1つだけ伝えてください:
| 不足 | macOS | Windows | Linux |
|---|---|---|---|
| ffmpeg | brew install ffmpeg | winget install ffmpeg | sudo apt install ffmpeg |
| numpy / Pillow | python3 -m pip install numpy pillow(pipが拒否する場合は --break-system-packages を追加) | ||
| 顔認識クロップ(オプション) | python3 -m pip install opencv-python-headless |
スクリプトはビデオがあるマシン上で実行します。ファイルがサンドボックスにアップロードされた場合は、そこで実行して出力を返します。
Windowsで python3 が見つからない場合は python を使用します。
オプション:python3 <skill_dir>/scripts/fullgrade.py --selftest で合成映像を生成し、すべての機能をチェックします(約2~3分)。ユーザーが「このパソコンで動く?」と聞いてきた場合に使用してください。
2. リクエストを1つのコマンドに変換
python3 <skill_dir>/scripts/fullgrade.py <ファイルまたはフォルダ> [オプション] --lang <en|zh>
| ユーザーが言ったこと… | オプション |
|---|---|
| スタイルについて何も言わない / 「とにかく直して」 / 自然 | --preset natural(デフォルト) |
| 不動産、屋内、明るく風通しの良い / 房产, 明亮通透 | --preset real-estate |
| 暖かく、居心地良く、夕方 / 温暖, 温馨 | --preset warm |
| 鮮やか、料理、商品 / 鲜艳, 美食 | --preset vivid |
| 清潔感、クール、モダン、テック / 清冷, 现代 | --preset cool-modern |
| シネマティック、映画風、vlog / 电影感 | --preset cinematic |
| 縦向き、TikTok、Reels、Shorts、抖音、小红书 | --ratio 9:16 |
| YouTube、横長 / 横屏 | --ratio 16:9 |
| 正方形 / Instagramフィード | --ratio 1:1 または --ratio 4:5 |
| フレームいっぱいに、黒帯なし / 裁切 | --fit crop |
| 全体を表示 / 不要裁, 补边 | --fit blur |
| 黒/白の帯 / 黒/白のバー | --fit color --pad-color black(または white) |
| ドローン / DJI D-Log | --log dlog |
| Sony S-Log3 · Panasonic V-Log · iPhone Apple Log | --log slog3 · --log vlog · --log applelog |
| すべてをこのクリップ/写真に合わせる | --match <ファイル>(--match-method mkl デフォルト;reinhard、hist) |
| すべてのクリップを互いに厳密に合わせる | --match hero |
| 軽めの調整 / やりすぎない / 轻一点 | --strength 0.6 |
| 高速エクスポート | --fast(Apple / NVIDIA / Intel ハードウェアエンコーダー、自動フォールバック) |
| 最高品質 | --quality best |
| サブフォルダを含める | --recursive |
| 分析のみ、エクスポートしない | --analyze-only |
| ファイル全体に1つのグレード | --no-split |
| Premiere / DaVinci / Final Cut / CapCut 用のLUTファイル | <skill_dir>/luts/ を指定(または --export-luts <フォルダ>) |
ほとんどの人に適したデフォルト設定:--fit auto(画像の60%以上を保持できる場合はクロップ、それ以外はぼかし背景 — よって16:9 ↔ 9:16ではユーザーがクロップを要求しない限りぼかし背景を使用)、--dynamic auto、--denoise auto。
ユーザーが言及しない限り、アスペクト比については尋ねないでください — 元の比率を維持します。リクエストが本当に不明確な場合のみ質問してください(例:「LOG」と言ったがどのカメラかは言わなかった場合)。
3. 内部動作(聞かれた場合のみ簡潔に説明)
- iPhone HDR → SDRに自動変換。
--logが指定された場合はLOGをデコード(スクリプトはクリップがLOGのように見える場合に警告を出します)。 - 完成した編集はショットに分割され(シーン検出)、各ショットが個別にグレーディングされます。
- ショットごと:ホワイトバランス → 黒/白レベル(ハイライト保護) → 露出を快適な範囲に調整 → コントラスト → 彩度 → プリセットルック → オプションでマッチング。安全性リミット付きの単一の3D LUTに焼き付けられるため、やりすぎは発生しません。
- ショット内で明るさが変動する場合(暗い廊下から明るい部屋に歩いていくなど)はスムージング処理されます(動的露出)。強く明るくしたショットには軽いノイズ除去が適用されます。
- リフレーミングでは画像が引き伸ばされることはありません。スマートクロップは顔(OpenCVがインストールされている場合)または最も詳細な領域を追跡します。
- すでに適切に見えるクリップは再エンコードせずにコピーされます。
速度:1080pの場合、処理時間は動画の長さの約1~3倍です(4Kはさらに時間がかかります)。長い動画や多数のファイルの場合は、実行中であることをユーザーに伝えて待機し、キャンセルしないでください。急いでいる場合は --fast を使用します。
終了コード: 0 = すべて完了 · 2 = 一部のファイルで失敗(その他は正常 — 出力の最後に Done: X OK, Y failed と表示され、レポートに理由が記載されます) · 1 = 処理できるものがなし。どのファイルがなぜ失敗したかを必ずユーザーに伝えてください(よくある原因:動画でない、ファイル破損、音声のみのファイル)。
4. 出力
- 動画:
<入力フォルダ>/_graded/<ファイル名>_<プリセット>[_9x16].mp4— 上書きはしません(_v2を追加)、元のファイルはそのまま。 _graded/compare/*_compare.jpg— ビフォー/アフター静止画。必ず少なくとも1枚をユーザーに表示してください。_graded/fullgrade_report.html— ビフォー/アフターのスライダー、数値、各ショットの波形スコープ。提供してください。_graded/fullgrade_report.md— 同じ数値がテキストで書かれています。サマリーを書くためにこれを読んでください。
5. 応答
ユーザーの言語で短いサマリー:動画の数、使用したプリセット/アスペクト比、ファイルの場所、何が変わったかの1~2文(レポートから、例:「ショット2は非常に黄色かったが、今はニュートラルになっています。窓のハイライトは保護されました」)、比較画像、そして1つ有用な次のステップ(別のプリセット、9:16バージョン、軽めにしたい場合は --strength)。
正直な限界
- 完全に白飛びした窓や空は復元できません。ただし、画像の他の部分は改善されます。
- 非常に暗い映像を明るくするとノイズが現れます(軽いノイズ除去が役立ちますが、魔法ではありません)。
- 1つのショット内の混合光(オレンジ色のランプ+青色の日光)は妥協点でバランスを取ります。
- 大きく異なる2つのショット間のディゾルブでは、カット位置に小さな段差が生じることがあります。
- DJI D-Log M およびリストにない他のLOGカーブはV1ではサポートされていません —
--logなしでグレーディングし、--strengthを使用してください。