【Diffusers】AnimateDiff + Multi-ControlNet で作成する動画のフレーム数上限を上げる方法

はじめに

こちらの続きです。
touch-sp.hatenablog.com
この記事ではフレーム数上限は32だと書きました。

その上限を上げる方法が見つかったので紹介します。

方法

こちらの記事で「convert_animatediff_motion_module_to_diffusers.py」を使ってモーションモジュールのckptファイルをDiffusersフォーマットに変換する方法を紹介しました。
touch-sp.hatenablog.com
変換する際に「motion_max_seq_length」でフレーム数上限を指定できるようです。

今回はv2を使いました。

変換方法

python convert_animatediff_motion_module_to_diffusers.py `
--ckpt_path mm_sd_v15_v2.ckpt `
--use_motion_mid_block `
--output_path motion-module-v1-5-2-max38 `
--motion_max_seq_length 38

Pythonスクリプト

こちらで使ったPythonスクリプトをそのまま使用しました。
touch-sp.hatenablog.com
ただしフレーム数上限を32に制限するための1行を適当な数字に変更しました。

n_frames = 32 if min([len(x) for x in controlimage])>32 else min([len(x) for x in controlimage])

YAMLファイル

pretrained_model_path: "model/mistoonAnimev20_ema"
vae: 
  single_file: True 
  model_path: "vae/vae-ft-mse-840000-ema-pruned.safetensors"

motion_module_path: "motion-module-v1-5-2-max38"

controlnet:
  - model_path: "controlnet/control_v11p_sd15_openpose"
    image_path: "controlnet-image/openpose.gif"
    conditioning_scale: 0.5
  - model_path: "controlnet/control_v11f1e_sd15_tile"
    image_path: "controlnet-image/tile.gif"
    conditioning_scale: 0.4

prompt: "anime style, high quality, best quality, man with black hair, wearing sunglasses, black sweater, dancing"
negative_prompt: "easynegative, worst quality, low quality"

seed: 222
steps: 30
guidance_scale: 8.5
width: 512
height: 512
clip_skip: None

ip_adapter:
  enable: False
  folder: "IP-Adapter"
  subfolder: "models"
  weight_name: "ip-adapter-plus-face_sd15.safetensors"
  image_path: "face.png"
  scale: 0.6

lcm_lora:
  enable: False
  model_path: "lora/lcm-lora-sdv1-5"
  weight: 1.0

結果




動画はGoogle Bloggerに載せています。
support-touchsp.blogspot.com




このエントリーをはてなブックマークに追加