こすたろーんエンジニアの試行錯誤部屋

作成物の備忘録を書いていきますー

【Stable Video Diffusion】StableVideoDiffusionPipeline.from_pretrainedでハングアップする問題に対応する方法

スポンサーリンク

画像から動画を生成するstable video diffusionというmage2Videoモデルが公開されました touch-sp.hatenablog.com
huggingface.co

google colabでstable video diffusionを試そうとしたところ、モデルロードの箇所で止まってしまったので
対処法を調べました
この記事は対処法の備忘録になります

目次

スポンサーリンク

この記事でわかること

google colabでStable Video Diffusion実行時、StableVideoDiffusionPipeline.from_pretrainedでハングアップする問題に対応する方法

1.実行環境

Google Colab
Diffusers == 0.25.0

2.現象

以下のサンプルコードを実行すると、「StableVideoDiffusionPipeline.from_pretrained」の箇所から
永遠に進まない状況になりました

import torch
from diffusers import StableVideoDiffusionPipeline
from diffusers.utils import load_image, export_to_video

pipe = StableVideoDiffusionPipeline.from_pretrained(
    "stabilityai/stable-video-diffusion-img2vid-xt", torch_dtype=torch.float16, variant="fp16"
)
pipe.enable_model_cpu_offload()

# Load the conditioning image
image = load_image("https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/svd/rocket.png")
image = image.resize((1024, 576))

generator = torch.manual_seed(42)
frames = pipe(image, decode_chunk_size=8, generator=generator).frames[0]

export_to_video(frames, "generated.mp4", fps=7)

3. 対策方法

以下のコードを実行すると回避できるそうです

from huggingface_hub.utils import _runtime
_runtime._is_google_colab = False

改良後のコードは以下になります

import torch
from diffusers import StableVideoDiffusionPipeline
from diffusers.utils import load_image, export_to_video
from huggingface_hub.utils import _runtime
_runtime._is_google_colab = False

pipe = StableVideoDiffusionPipeline.from_pretrained(
    "stabilityai/stable-video-diffusion-img2vid-xt", torch_dtype=torch.float16, variant="fp16"
)
pipe.enable_model_cpu_offload()

# Load the conditioning image
image = load_image("https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/svd/rocket.png")
image = image.resize((1024, 576))

generator = torch.manual_seed(42)
frames = pipe(image, decode_chunk_size=8, generator=generator).frames[0]

export_to_video(frames, "generated.mp4", fps=7)

改良後無事に実行できました

スポンサーリンク

3.参考

github.com