はじめに
こちらの続きです。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