From 6fe2f31ccf8c13fa1ea88316772cf74277df918b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9D=92=E9=BE=8D=E8=81=96=E8=80=85=40bdsqlsz?= Date: Thu, 7 Dec 2023 03:32:31 +0800 Subject: [PATCH 1/5] add submodule --- .gitmodules | 3 +++ run_vid2dense_gui.ps1 | 16 ++++++++++++++++ 2 files changed, 19 insertions(+) create mode 100644 .gitmodules create mode 100644 run_vid2dense_gui.ps1 diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 00000000..5d33d90f --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "vid2pose"] + path = vid2pose + url = https://github.com/sdbds/vid2pose diff --git a/run_vid2dense_gui.ps1 b/run_vid2dense_gui.ps1 new file mode 100644 index 00000000..227b458e --- /dev/null +++ b/run_vid2dense_gui.ps1 @@ -0,0 +1,16 @@ +$mutil_gpu=0 + +Set-Location $PSScriptRoot +.\venv\Scripts\activate + +$Env:HF_HOME = "./huggingface" +$Env:XFORMERS_FORCE_DISABLE_TRITON = "1" +$Env:PYTHONPATH = $PSScriptRoot + +$laungh_script = "gradio_animate" + +if ($mutil_gpu) { + $laungh_script += "_dist" +} + +python.exe "demo/$laungh_script.py" \ No newline at end of file From a0d2d7b66de27b90ada8ad1c18a687b4bca5b163 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9D=92=E9=BE=8D=E8=81=96=E8=80=85=40bdsqlsz?= Date: Thu, 7 Dec 2023 03:42:37 +0800 Subject: [PATCH 2/5] add vid2pose --- install_cn.ps1 | 20 +++++++++++--------- run_vid2dense_gui.ps1 | 17 +++++++++++------ 2 files changed, 22 insertions(+), 15 deletions(-) diff --git a/install_cn.ps1 b/install_cn.ps1 index 2b16903a..f2a87f3e 100644 --- a/install_cn.ps1 +++ b/install_cn.ps1 @@ -3,35 +3,35 @@ Set-Location $PSScriptRoot $Env:PIP_DISABLE_PIP_VERSION_CHECK = 1 if (!(Test-Path -Path "venv")) { - Write-Output "创建python虚拟环境venv..." + Write-Output "鍒涘缓python铏氭嫙鐜venv..." python -m venv venv } .\venv\Scripts\activate -Write-Output "安装依赖..." -pip install -U -r requirements-windows.txt -i https://mirror.baidu.com/pypi/simple +Write-Output "瀹夎渚濊禆..." +#pip install -U -r requirements-windows.txt -i https://mirror.baidu.com/pypi/simple -Write-Output "检查模型..." +Write-Output "妫鏌ユā鍨..." if (!(Test-Path -Path "pretrained_models")) { - Write-Output "创建模型文件夹..." + Write-Output "鍒涘缓妯″瀷鏂囦欢澶..." mkdir "pretrained_models" } Set-Location .\pretrained_models if (!(Test-Path -Path "MagicAnimate")) { - Write-Output "下载MagicAnimate模型..." + Write-Output "涓嬭浇MagicAnimate妯″瀷..." git clone https://huggingface.co/zcxu-eric/MagicAnimate } if (Test-Path -Path "MagicAnimate/.git/lfs") { Remove-Item -Path MagicAnimate/.git/lfs/* -Recurse -Force } -$install_SD15 = Read-Host "是否需要下载huggingface的SD15模型? 若您本地没有任何SD15模型选择y,如果想要换其他SD1.5模型选择 n。[y/n] (默认为 y)" +$install_SD15 = Read-Host "鏄惁闇瑕佷笅杞絟uggingface鐨凷D15妯″瀷? 鑻ユ偍鏈湴娌℃湁浠讳綍SD15妯″瀷閫夋嫨y锛屽鏋滄兂瑕佹崲鍏朵粬SD1.5妯″瀷閫夋嫨 n銆俒y/n] (榛樿涓 y)" if ($install_SD15 -eq "y" -or $install_SD15 -eq "Y" -or $install_SD15 -eq "") { if (!(Test-Path -Path "stable-diffusion-v1-5")) { - Write-Output "下载 stable-diffusion-v1-5 模型..." + Write-Output "涓嬭浇 stable-diffusion-v1-5 妯″瀷..." git clone https://huggingface.co/bdsqlsz/stable-diffusion-v1-5 } @@ -40,5 +40,7 @@ if ($install_SD15 -eq "y" -or $install_SD15 -eq "Y" -or $install_SD15 -eq "") { } } -Write-Output "安装完毕" +git submodule update --recursive --init + +Write-Output "瀹夎瀹屾瘯" Read-Host | Out-Null ; diff --git a/run_vid2dense_gui.ps1 b/run_vid2dense_gui.ps1 index 227b458e..64912302 100644 --- a/run_vid2dense_gui.ps1 +++ b/run_vid2dense_gui.ps1 @@ -1,16 +1,21 @@ -$mutil_gpu=0 +$input_video_path="./vid2pose/sample_videos/input_video.mp4" +$output_video_path="./vid2pose/sample_videos/output_video1.mp4" Set-Location $PSScriptRoot .\venv\Scripts\activate $Env:HF_HOME = "./huggingface" $Env:XFORMERS_FORCE_DISABLE_TRITON = "1" -$Env:PYTHONPATH = $PSScriptRoot +#$Env:PYTHONPATH = $PSScriptRoot +$ext_args = [System.Collections.ArrayList]::new() -$laungh_script = "gradio_animate" +if ($input_video_path) { + [void]$ext_args.Add("-i=$input_video_path") +} -if ($mutil_gpu) { - $laungh_script += "_dist" +if ($output_video_path) { + [void]$ext_args.Add("-o=$output_video_path") } -python.exe "demo/$laungh_script.py" \ No newline at end of file + +python.exe "vid2pose/main.py" $ext_args From 12315e492d758ca1d22fed32f736a564348355e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9D=92=E9=BE=8D=E8=81=96=E8=80=85=40bdsqlsz?= Date: Thu, 7 Dec 2023 06:23:06 +0800 Subject: [PATCH 3/5] add video2openpose --- .gitignore | 3 ++- install_cn.ps1 | 13 ++++++++++++- run_vid2openpose_gui.ps1 | 27 +++++++++++++++++++++++++++ vid2pose | 1 + 4 files changed, 42 insertions(+), 2 deletions(-) create mode 100644 run_vid2openpose_gui.ps1 create mode 160000 vid2pose diff --git a/.gitignore b/.gitignore index 7c103f29..71d85332 100644 --- a/.gitignore +++ b/.gitignore @@ -11,4 +11,5 @@ pretrained_models demo/tmp demo/outputs huggingface/ -venv/ \ No newline at end of file +venv/ +outputs/ \ No newline at end of file diff --git a/install_cn.ps1 b/install_cn.ps1 index f2a87f3e..7f1983df 100644 --- a/install_cn.ps1 +++ b/install_cn.ps1 @@ -9,7 +9,7 @@ if (!(Test-Path -Path "venv")) { .\venv\Scripts\activate Write-Output "瀹夎渚濊禆..." -#pip install -U -r requirements-windows.txt -i https://mirror.baidu.com/pypi/simple +pip install -U -r requirements-windows.txt -i https://mirror.baidu.com/pypi/simple Write-Output "妫鏌ユā鍨..." @@ -40,7 +40,18 @@ if ($install_SD15 -eq "y" -or $install_SD15 -eq "Y" -or $install_SD15 -eq "") { } } +Write-Output "瀹夎Video2Pose..." + +git submodule update --recursive --init + +Set-Location $PSScriptRoot/vid2pose git submodule update --recursive --init +pip install ninja +pip install -U -r requirements.txt -i https://mirror.baidu.com/pypi/simple +mim install mmengine +mim install "mmcv>=2.0.1" +mim install "mmdet>=3.1.0" +mim install "mmpose>=1.1.0" Write-Output "瀹夎瀹屾瘯" Read-Host | Out-Null ; diff --git a/run_vid2openpose_gui.ps1 b/run_vid2openpose_gui.ps1 new file mode 100644 index 00000000..71ed67fe --- /dev/null +++ b/run_vid2openpose_gui.ps1 @@ -0,0 +1,27 @@ +$input_path="./vid2pose/sample_videos/input_video.mp4" +$output_path="./outputs/" +$pose_model="dwpose" + + +Set-Location $PSScriptRoot +.\venv\Scripts\activate + +$Env:HF_HOME = "./huggingface" +$Env:XFORMERS_FORCE_DISABLE_TRITON = "1" +#$Env:PYTHONPATH = $PSScriptRoot +$ext_args = [System.Collections.ArrayList]::new() + +if ($input_path) { + [void]$ext_args.Add("-i=$input_path") +} + +if ($output_path) { + [void]$ext_args.Add("-o=$output_path") +} + +if ($pose_model) { + [void]$ext_args.Add("--pose_model=$pose_model") +} + + +python.exe "vid2pose/video2openpose2.py" $ext_args diff --git a/vid2pose b/vid2pose new file mode 160000 index 00000000..91a2183c --- /dev/null +++ b/vid2pose @@ -0,0 +1 @@ +Subproject commit 91a2183c851525f9d4965d9e177822652d3e90c7 From ffef1e44acd01b346856269776a54b61bab6be18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9D=92=E9=BE=8D=E8=81=96=E8=80=85=40bdsqlsz?= Date: Fri, 8 Dec 2023 21:37:45 +0800 Subject: [PATCH 4/5] add video_controlnet_aux --- .gitmodules | 6 +-- configs/prompts/animation.yaml | 5 ++- demo/animate.py | 69 ++++++++++++++++++++----------- demo/gradio_animate.py | 6 +-- magicanimate/models/model_util.py | 7 ++++ vid2pose | 1 - video_controlnet_aux | 1 + 7 files changed, 64 insertions(+), 31 deletions(-) delete mode 160000 vid2pose create mode 160000 video_controlnet_aux diff --git a/.gitmodules b/.gitmodules index 5d33d90f..2138a611 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ -[submodule "vid2pose"] - path = vid2pose - url = https://github.com/sdbds/vid2pose +[submodule "video_controlnet_aux"] + path = video_controlnet_aux + url = https://github.com/sdbds/video_controlnet_aux diff --git a/configs/prompts/animation.yaml b/configs/prompts/animation.yaml index 6aab720d..328bbda6 100644 --- a/configs/prompts/animation.yaml +++ b/configs/prompts/animation.yaml @@ -1,6 +1,7 @@ -pretrained_model_path: "pretrained_models/stable-diffusion-v1-5" +pretrained_model_path: "D:\\sd-webui-aki-v4.1\\models\\Stable-diffusion\\鍔ㄦ极\\cetusMix_v4.safetensors" pretrained_vae_path: "" pretrained_controlnet_path: "pretrained_models/MagicAnimate/densepose_controlnet" +openpose_path: "pretrained_models/openpose" pretrained_appearance_encoder_path: "pretrained_models/MagicAnimate/appearance_encoder" pretrained_unet_path: "" @@ -40,3 +41,5 @@ max_length: null video_type: "condition" invert_video: false save_individual_videos: false + +openpose: false \ No newline at end of file diff --git a/demo/animate.py b/demo/animate.py index cb660411..54a45ad0 100644 --- a/demo/animate.py +++ b/demo/animate.py @@ -29,7 +29,7 @@ from magicanimate.models.controlnet import ControlNetModel from magicanimate.models.appearance_encoder import AppearanceEncoderModel from magicanimate.models.mutual_self_attention import ReferenceAttentionControl -from magicanimate.models.model_util import load_models +from magicanimate.models.model_util import load_models, torch_gc from magicanimate.pipelines.pipeline_animation import AnimationPipeline from magicanimate.utils.util import save_videos_grid from accelerate.utils import set_seed @@ -44,19 +44,23 @@ from pathlib import Path class MagicAnimate: - def __init__(self, config="configs/prompts/animation.yaml") -> None: + def __init__(self, config="configs/prompts/animation.yaml",controlnet_model="densepose") -> None: print("Initializing MagicAnimate Pipeline...") *_, func_args = inspect.getargvalues(inspect.currentframe()) func_args = dict(func_args) + self.config = config + config = OmegaConf.load(config) - + inference_config = OmegaConf.load(config.inference_config) motion_module = config.motion_module + + self.controlnet_model = controlnet_model ### >>> create animation pipeline >>> ### - tokenizer, text_encoder, unet, noise_scheduler, vae = load_models( + self.tokenizer, self.text_encoder, self.unet, noise_scheduler, self.vae = load_models( config.pretrained_model_path, scheduler_name="", v2=False, @@ -69,15 +73,15 @@ def __init__(self, config="configs/prompts/animation.yaml") -> None: # config.pretrained_model_path, subfolder="text_encoder" # ) if config.pretrained_unet_path: - unet = UNet3DConditionModel.from_pretrained_2d( + self.unet = UNet3DConditionModel.from_pretrained_2d( config.pretrained_unet_path, unet_additional_kwargs=OmegaConf.to_container( inference_config.unet_additional_kwargs ), ) else: - unet = UNet3DConditionModel.from_pretrained_2d( - unet.config, + self.unet = UNet3DConditionModel.from_pretrained_2d( + self.unet.config, subfolder=None, unet_additional_kwargs=OmegaConf.to_container( inference_config.unet_additional_kwargs @@ -93,38 +97,44 @@ def __init__(self, config="configs/prompts/animation.yaml") -> None: fusion_blocks=config.fusion_blocks, ) self.reference_control_reader = ReferenceAttentionControl( - unet, + self.unet, do_classifier_free_guidance=True, mode="read", fusion_blocks=config.fusion_blocks, ) if config.pretrained_vae_path: - vae = AutoencoderKL.from_pretrained(config.pretrained_vae_path) + self.vae = AutoencoderKL.from_pretrained(config.pretrained_vae_path) # else: # vae = AutoencoderKL.from_pretrained( # config.pretrained_model_path, subfolder="vae" # ) ### Load controlnet - controlnet = ControlNetModel.from_pretrained(config.pretrained_controlnet_path) + if "openpose" in self.controlnet_model: + self.controlnet = ControlNetModel.from_pretrained(config.openpose_path) + print("Using OpenPose ControlNet") + else: + self.controlnet = ControlNetModel.from_pretrained(config.pretrained_controlnet_path) + print("Using Densepose ControlNet") + - vae.to(torch.float16) - unet.to(torch.float16) - text_encoder.to(torch.float16) - controlnet.to(torch.float16) + self.vae.to(torch.float16) + self.unet.to(torch.float16) + self.text_encoder.to(torch.float16) + self.controlnet.to(torch.float16) self.appearance_encoder.to(torch.float16) - unet.enable_xformers_memory_efficient_attention() + self.unet.enable_xformers_memory_efficient_attention() self.appearance_encoder.enable_xformers_memory_efficient_attention() - controlnet.enable_xformers_memory_efficient_attention() + self.controlnet.enable_xformers_memory_efficient_attention() self.pipeline = AnimationPipeline( - vae=vae, - text_encoder=text_encoder, - tokenizer=tokenizer, - unet=unet, - controlnet=controlnet, + vae=self.vae, + text_encoder=self.text_encoder, + tokenizer=self.tokenizer, + unet=self.unet, + controlnet=self.controlnet, scheduler=DDIMScheduler( **OmegaConf.to_container(inference_config.noise_scheduler_kwargs) ), @@ -165,7 +175,7 @@ def __init__(self, config="configs/prompts/animation.yaml") -> None: _tmp_[_key] = motion_module_state_dict[key] else: _tmp_[key] = motion_module_state_dict[key] - missing, unexpected = unet.load_state_dict(_tmp_, strict=False) + missing, unexpected = self.unet.load_state_dict(_tmp_, strict=False) assert len(unexpected) == 0 del _tmp_ del motion_module_state_dict @@ -175,9 +185,20 @@ def __init__(self, config="configs/prompts/animation.yaml") -> None: print("Initialization Done!") + def reset_init(instance, *args, **kwargs): + instance.__init__(*args, **kwargs) + def __call__( - self, source_image, motion_sequence, random_seed, step, guidance_scale, size=512 + self, source_image, motion_sequence, random_seed, step, guidance_scale, controlnet_model="densepose", size=512, ): + if self.controlnet_model != controlnet_model: + self.vae.to("cpu") + self.unet.to("cpu") + self.text_encoder.to("cpu") + self.controlnet.to("cpu") + self.appearance_encoder.to("cpu") + torch_gc() + self.reset_init(config="configs/prompts/animation.yaml", controlnet_model=controlnet_model) prompt = n_prompt = "" random_seed = int(random_seed) step = int(step) @@ -252,3 +273,5 @@ def __call__( save_videos_grid(samples_per_video, animation_path) return animation_path + + \ No newline at end of file diff --git a/demo/gradio_animate.py b/demo/gradio_animate.py index 10eaa133..6fa2058a 100644 --- a/demo/gradio_animate.py +++ b/demo/gradio_animate.py @@ -18,8 +18,8 @@ animator = MagicAnimate() -def animate(reference_image, motion_sequence_state, seed, steps, guidance_scale): - return animator(reference_image, motion_sequence_state, seed, steps, guidance_scale) +def animate(reference_image, motion_sequence_state, seed, steps, guidance_scale,controlnet_model): + return animator(reference_image, motion_sequence_state, seed, steps, guidance_scale,controlnet_model) with gr.Blocks() as demo: @@ -74,7 +74,7 @@ def read_image(image, size=512): # when the `submit` button is clicked submit.click( animate, - [reference_image, motion_sequence, random_seed, sampling_steps, guidance_scale], + [reference_image, motion_sequence, random_seed, sampling_steps, guidance_scale, gr.Radio(["densepose", "openpose"], label="Controlnet Model", value="densepose")], animation ) diff --git a/magicanimate/models/model_util.py b/magicanimate/models/model_util.py index eed89c28..af1649ce 100644 --- a/magicanimate/models/model_util.py +++ b/magicanimate/models/model_util.py @@ -263,3 +263,10 @@ def create_noise_scheduler( raise ValueError(f"Unknown scheduler name: {name}") return scheduler + +def torch_gc(): + import gc; gc.collect() + if torch.cuda.is_available(): + with torch.cuda.device("cuda"): + torch.cuda.empty_cache() + torch.cuda.ipc_collect() \ No newline at end of file diff --git a/vid2pose b/vid2pose deleted file mode 160000 index 91a2183c..00000000 --- a/vid2pose +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 91a2183c851525f9d4965d9e177822652d3e90c7 diff --git a/video_controlnet_aux b/video_controlnet_aux new file mode 160000 index 00000000..98e3c33a --- /dev/null +++ b/video_controlnet_aux @@ -0,0 +1 @@ +Subproject commit 98e3c33a53e6a5360e73e6af06d0bced33203f0d From e1416b5a9b7bb70d58c586a00d978f9c333fa6bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9D=92=E9=BE=8D=E8=81=96=E8=80=85=40bdsqlsz?= Date: Sat, 9 Dec 2023 20:03:41 +0800 Subject: [PATCH 5/5] update magic anime --- configs/prompts/animation.yaml | 4 +- demo/gradio_animate.py | 112 ++++++++++++------ inputs/cai-xukun.mp4 | Bin 0 -> 86701 bytes install.ps1 | 16 +++ install_cn.ps1 | 44 ++++--- requirements-windows.txt | 4 +- ...se_gui.ps1 => run_VidControlnetAux_gui.ps1 | 9 +- run_vid2dense_gui.ps1 | 21 ---- 8 files changed, 125 insertions(+), 85 deletions(-) create mode 100644 inputs/cai-xukun.mp4 rename run_vid2openpose_gui.ps1 => run_VidControlnetAux_gui.ps1 (64%) delete mode 100644 run_vid2dense_gui.ps1 diff --git a/configs/prompts/animation.yaml b/configs/prompts/animation.yaml index 328bbda6..29d0a567 100644 --- a/configs/prompts/animation.yaml +++ b/configs/prompts/animation.yaml @@ -1,7 +1,7 @@ -pretrained_model_path: "D:\\sd-webui-aki-v4.1\\models\\Stable-diffusion\\鍔ㄦ极\\cetusMix_v4.safetensors" +pretrained_model_path: "pretrained_models/stable-diffusion-v1-5" pretrained_vae_path: "" pretrained_controlnet_path: "pretrained_models/MagicAnimate/densepose_controlnet" -openpose_path: "pretrained_models/openpose" +openpose_path: "pretrained_models/control_v11p_sd15_openpose" pretrained_appearance_encoder_path: "pretrained_models/MagicAnimate/appearance_encoder" pretrained_unet_path: "" diff --git a/demo/gradio_animate.py b/demo/gradio_animate.py index 6fa2058a..70feab7f 100644 --- a/demo/gradio_animate.py +++ b/demo/gradio_animate.py @@ -18,11 +18,26 @@ animator = MagicAnimate() -def animate(reference_image, motion_sequence_state, seed, steps, guidance_scale,controlnet_model): - return animator(reference_image, motion_sequence_state, seed, steps, guidance_scale,controlnet_model) -with gr.Blocks() as demo: +def animate( + reference_image, + motion_sequence_state, + seed, + steps, + guidance_scale, + controlnet_model, +): + return animator( + reference_image, + motion_sequence_state, + seed, + steps, + guidance_scale, + controlnet_model, + ) + +with gr.Blocks() as demo: gr.HTML( """
@@ -38,60 +53,89 @@ def animate(reference_image, motion_sequence_state, seed, steps, guidance_scale,
- """) + """ + ) animation = gr.Video(format="mp4", label="Animation Results", autoplay=True) - + with gr.Row(): - reference_image = gr.Image(label="Reference Image") - motion_sequence = gr.Video(format="mp4", label="Motion Sequence") - + reference_image = gr.Image(label="Reference Image") + motion_sequence = gr.Video(format="mp4", label="Motion Sequence") + with gr.Column(): - random_seed = gr.Textbox(label="Random seed", value=1, info="default: -1") - sampling_steps = gr.Textbox(label="Sampling steps", value=25, info="default: 25") - guidance_scale = gr.Textbox(label="Guidance scale", value=7.5, info="default: 7.5") - submit = gr.Button("Animate") + random_seed = gr.Textbox(label="Random seed", value=1, info="default: -1") + sampling_steps = gr.Textbox( + label="Sampling steps", value=25, info="default: 25" + ) + guidance_scale = gr.Textbox( + label="Guidance scale", value=7.5, info="default: 7.5" + ) + submit = gr.Button("Animate") def read_video(video): reader = imageio.get_reader(video) - fps = reader.get_meta_data()['fps'] + fps = reader.get_meta_data()["fps"] return video - + def read_image(image, size=512): return np.array(Image.fromarray(image).resize((size, size))) - + # when user uploads a new video - motion_sequence.upload( - read_video, - motion_sequence, - motion_sequence - ) + motion_sequence.upload(read_video, motion_sequence, motion_sequence) # when `first_frame` is updated - reference_image.upload( - read_image, - reference_image, - reference_image - ) + reference_image.upload(read_image, reference_image, reference_image) # when the `submit` button is clicked submit.click( animate, - [reference_image, motion_sequence, random_seed, sampling_steps, guidance_scale, gr.Radio(["densepose", "openpose"], label="Controlnet Model", value="densepose")], - animation + [ + reference_image, + motion_sequence, + random_seed, + sampling_steps, + guidance_scale, + gr.Radio( + [ + "densepose", + "openpose", # "animalpose" + ], + label="Controlnet Model", + value="densepose", + ), + ], + animation, ) # Examples gr.Markdown("## Examples") gr.Examples( examples=[ - ["inputs/applications/source_image/monalisa.png", "inputs/applications/driving/densepose/running.mp4"], - ["inputs/applications/source_image/demo4.png", "inputs/applications/driving/densepose/demo4.mp4"], - ["inputs/applications/source_image/0002.png", "inputs/applications/driving/densepose/demo4.mp4"], - ["inputs/applications/source_image/dalle2.jpeg", "inputs/applications/driving/densepose/running2.mp4"], - ["inputs/applications/source_image/dalle8.jpeg", "inputs/applications/driving/densepose/dancing2.mp4"], - ["inputs/applications/source_image/multi1_source.png", "inputs/applications/driving/densepose/multi_dancing.mp4"], + [ + "inputs/applications/source_image/monalisa.png", + "inputs/applications/driving/densepose/running.mp4", + ], + [ + "inputs/applications/source_image/demo4.png", + "inputs/applications/driving/densepose/demo4.mp4", + ], + [ + "inputs/applications/source_image/0002.png", + "inputs/applications/driving/densepose/demo4.mp4", + ], + [ + "inputs/applications/source_image/dalle2.jpeg", + "inputs/applications/driving/densepose/running2.mp4", + ], + [ + "inputs/applications/source_image/dalle8.jpeg", + "inputs/applications/driving/densepose/dancing2.mp4", + ], + [ + "inputs/applications/source_image/multi1_source.png", + "inputs/applications/driving/densepose/multi_dancing.mp4", + ], ], inputs=[reference_image, motion_sequence], outputs=animation, ) -demo.launch(share=True) \ No newline at end of file +demo.launch(share=True) diff --git a/inputs/cai-xukun.mp4 b/inputs/cai-xukun.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..88516758aa522b51d8d6a28458e46fe4224aaaf7 GIT binary patch literal 86701 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 IhM}MLmr-y;5jNq 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.0.1" -mim install "mmdet>=3.1.0" -mim install "mmpose>=1.1.0" - -Write-Output "瀹夎瀹屾瘯" + +Set-Location $PSScriptRoot/video_controlnet_aux +pip install -r requirements.txt -i https://mirror.baidu.com/pypi/simple +pip install -r requirements-video.txt -i https://mirror.baidu.com/pypi/simple + +Write-Output "安装完毕" Read-Host | Out-Null ; diff --git a/requirements-windows.txt b/requirements-windows.txt index fb64b77e..e08aeb9d 100644 --- a/requirements-windows.txt +++ b/requirements-windows.txt @@ -29,8 +29,8 @@ frozenlist==1.4.0 fsspec==2023.6.0 google-auth==2.22.0 google-auth-oauthlib==1.0.0 -gradio==3.41.2 -gradio-client==0.5.0 +gradio +gradio-client grpcio==1.57.0 h11==0.14.0 httpcore==0.17.3 diff --git a/run_vid2openpose_gui.ps1 b/run_VidControlnetAux_gui.ps1 similarity index 64% rename from run_vid2openpose_gui.ps1 rename to run_VidControlnetAux_gui.ps1 index 71ed67fe..6daaaa7d 100644 --- a/run_vid2openpose_gui.ps1 +++ b/run_VidControlnetAux_gui.ps1 @@ -1,6 +1,5 @@ -$input_path="./vid2pose/sample_videos/input_video.mp4" +$input_path="./inputs/cai-xukun.mp4" $output_path="./outputs/" -$pose_model="dwpose" Set-Location $PSScriptRoot @@ -19,9 +18,5 @@ if ($output_path) { [void]$ext_args.Add("-o=$output_path") } -if ($pose_model) { - [void]$ext_args.Add("--pose_model=$pose_model") -} - -python.exe "vid2pose/video2openpose2.py" $ext_args +python.exe "video_controlnet_aux/src/video_controlnet_aux.py" $ext_args diff --git a/run_vid2dense_gui.ps1 b/run_vid2dense_gui.ps1 deleted file mode 100644 index 64912302..00000000 --- a/run_vid2dense_gui.ps1 +++ /dev/null @@ -1,21 +0,0 @@ -$input_video_path="./vid2pose/sample_videos/input_video.mp4" -$output_video_path="./vid2pose/sample_videos/output_video1.mp4" - -Set-Location $PSScriptRoot -.\venv\Scripts\activate - -$Env:HF_HOME = "./huggingface" -$Env:XFORMERS_FORCE_DISABLE_TRITON = "1" -#$Env:PYTHONPATH = $PSScriptRoot -$ext_args = [System.Collections.ArrayList]::new() - -if ($input_video_path) { - [void]$ext_args.Add("-i=$input_video_path") -} - -if ($output_video_path) { - [void]$ext_args.Add("-o=$output_video_path") -} - - -python.exe "vid2pose/main.py" $ext_args