見出し画像

SAM2(Segment Anything Model 2)でマスク動画を作成する話@ComfyUI

※ワークフロー更新(2024/10)

最近は、本業が忙しくなかなか記事が書けなくなっています。
さらに、別にフォント作成のスクリプトが上手くいかず時間がそちらで溶けているのもあります。

さて、ちょい遊びということで、マスク動画の作成をSAM2を使用して行ってみました。
とても簡単に作成出来ると思いますので、参考になればと思います。

SAM2に関しては、上のリンクの記事がとても詳しく解説されています。
非常に参考になる記事でした。
この記事の最後の所で、Points Editorを使用したマスク動画を作成する部分があり、今回はこれを使用しています。

使用したノードのGithubサイトは最後に一覧としてリンクを貼っておきます。

また、フリーの動画サイトがありますので、動画はそれを使用しています。便利ですね。

https://www.pexels.com/ja-jp/

マスク動画の作成

①元動画の準備

サイトからダウンロードしたmp4の状態だと、解像度やFPSが高めなので、使用に耐えうる範囲で修正しています。これだとFPSを15にして、1:1のアスペクト比にしています。

完成したマスク動画は以下です。

②ワークフロー

これは以下のフローで作成しています。

このフロー自体は、公式が出しているワークフローの一部を変えただけです(公式のはSAM2のexamplesにワークフローがあります)。
ComfyUIで使用して見た個人的な感想は、このPoints Editorの画像がものすごく大きくなり見づらくなるというところです。ノードの文字が見えない。。

<ワークフローで設定するところ>

①Load videoのところ。
ここで、調整したmp4をアップロードする。
load capのところで、変換したいフレーム数を指定する。以下だと300フレーム分(15FPSにしているため、20秒分)。他は変えなくても良い。

②Points editor
最初にmp4を設定した時は、画像が出てこないため、一度queueをすることでこの画像を出すのが最速。その場合は上のload capは1とかで良い
その後、指定したいものに緑のマークを配置するだけ。

③SAM2のところはデフォルトのまま

④Video Combine
マスク動画を作成するため、「convert mask to image」を使用しています。
Video Combineでは、動画のFPSに合わせた数値:今回だと15と、保存形式:今回だとmp4の指定をする。

これで実行すれば、最初に提示したマスク動画が作製されます。



<以下、使用したカスタムノードのGithubサイトです>


この記事が気に入ったらサポートをしてみませんか?