動画生成の性能を評価する
マルチモーダルな CLIP モデルを使うと、各動画フレーム画像とプロンプトの類似度を調べて、動画生成パイプラインの性能を評価できます。前の演習で生成した動画がプロンプトにどの程度一致しているかを、これで確認しましょう。
load_video() 関数は diffusers.utils からインポート済みです。clip_score モジュールも torchmetrics からインポートされています。
この演習はコースの一部です
Hugging Face で学ぶマルチモーダルモデル
演習の手順
clip_score()メトリクスから、clip_score_fn()という名前の CLIP スコア関数を作成します。frame_tensorsの各フレームテンソルとpromptの間で CLIP スコアを計算します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Setup CLIP scoring
clip_score_fn = partial(____, model_name_or_path="openai/clip-vit-base-patch32")
frame_tensors = []
for frame in frames:
frame = np.array(frame)
frame_int = (frame * 255).astype("uint8")
frame_tensor = torch.from_numpy(frame_int).permute(2, 0, 1)
frame_tensors.append(frame_tensor)
# Pass a list of CHW tensors as expected by clip_score
scores = clip_score_fn(____, [____] * len(frame_tensors)).detach().cpu().numpy()
avg_clip_score = round(np.mean(scores), 4)
print(f"Average CLIP score: {avg_clip_score}")