magic-animate icon indicating copy to clipboard operation
magic-animate copied to clipboard

Easy to use Inference Code

Open Bilal143260 opened this issue 1 year ago • 6 comments

If someone has tried inferencing the model using shell scripts provided by the authors you may have found that videos are not saved in output directory.

I have a written a simple script for inferencing the model and it's easy to use.

import argparse
import numpy as np
from PIL import Image
import imageio

from demo.animate import MagicAnimate

def read_video(video_path):
    reader = imageio.get_reader(video_path)
    return reader

def read_image(image_path, size=512):
    image = Image.open(image_path)
    return np.array(image.resize((size, size)))

def main(reference_image_path, motion_sequence_path, seed, steps, guidance_scale):
    animator = MagicAnimate()

    reference_image = read_image(reference_image_path)
    motion_sequence = read_video(motion_sequence_path)

    animation = animator(reference_image, motion_sequence, seed, steps, guidance_scale)
    return animation

if __name__ == "__main__":
    parser = argparse.ArgumentParser(description="Animate images using MagicAnimate.")
    parser.add_argument("reference_image", help="Path to the reference image")
    parser.add_argument("motion_sequence", help="Path to the motion sequence video")
    parser.add_argument("--seed", type=int, default=1, help="Random seed (default: 1)")
    parser.add_argument("--steps", type=int, default=25, help="Sampling steps (default: 25)")
    parser.add_argument("--guidance_scale", type=float, default=7.5, help="Guidance scale (default: 7.5)")

    args = parser.parse_args()

    main(args.reference_image, args.motion_sequence, args.seed, args.steps, args.guidance_scale)

run this script like this

python script_name.py path_to_reference_image.jpg path_to_motion_sequence.mp4 --seed 123 --steps 50 --guidance_scale 5.0

Bilal143260 avatar Dec 07 '23 08:12 Bilal143260

pull request already created for this

Bilal143260 avatar Dec 07 '23 08:12 Bilal143260

awesome ty

FurkanGozukara avatar Dec 07 '23 19:12 FurkanGozukara

Hi thanks for this! I'm wondering if there is a typo at line 10, where you should return reader instead of return video_path? Also at line 22 you could just pass motion_sequence_path to animator and it will handle it.

JackChen890311 avatar Dec 12 '23 04:12 JackChen890311

Hi thanks for this! I'm wondering if there is a typo at line 10, where you should return reader instead of return video_path? Also at line 22 you could just pass motion_sequence_path to animator and it will handle it.

yes you are right. I have edited it and fixed the typo. Thanks

Bilal143260 avatar Dec 18 '23 07:12 Bilal143260

Is it possible to make this support non-square images or densepose videos?

ddpasa avatar Jan 02 '24 10:01 ddpasa

Is it possible to make this support non-square images or densepose videos?

i didn't try non-square but i tried 768x768 , it was terrible

so probably you can make. you need to edit code

FurkanGozukara avatar Jan 02 '24 21:01 FurkanGozukara