File size: 3,293 Bytes
da2362d
547bc6e
b877500
f8b1e61
da2362d
 
547bc6e
d8647a5
547bc6e
 
 
 
 
 
cecc2bb
b877500
cecc2bb
b877500
cecc2bb
 
33948f0
c21ae8a
58fa4f0
c21ae8a
 
 
 
58fa4f0
 
 
 
c21ae8a
 
 
33948f0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
fe59321
33948f0
 
 
 
cecc2bb
f8b1e61
3126ea4
382f18e
d142771
cf75ce8
b877500
 
 
 
cecc2bb
d62198c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import subprocess
import os
import gradio as gr
import spaces

subprocess.run(["git", "clone", "https://github.com/fat-ai/MuseV.git"])

os.chdir("./MuseV")
subprocess.run(["pip", "install", "-r", "requirements.txt"])
subprocess.run(["pip", "install", "--no-cache-dir", "-U", "openmim"])
subprocess.run(["mim", "install", "mmengine"])
subprocess.run(["mim", "install", "mmcv>=2.0.1"])
subprocess.run(["mim", "install", "mmdet>=3.1.0"])
subprocess.run(["mim", "install", "mmpose>=1.1.0"])
subprocess.run(["git", "clone", "--recursive", "https://github.com/fat-ai/MuseV.git"])
subprocess.run(["git", "clone", "https://huggingface.co/TMElyralab/MuseV", "./checkpoints"])

os.chdir("..")
command = "\"import sys; sys.path.append('./MuseV/MuseV'); sys.path.append('./MuseV/MuseV/MMCM'); sys.path.append('./MuseV/MuseV/diffusers/src'); sys.path.append('./MuseV/MuseV/controlnet_aux/src')\""
subprocess.run(["python","-c",command])

with open ("./MuseV/scripts/inference/text2video.py","r+") as scrip:
    s = scrip.read()
    s = s.replace("/checkpoints/embedding/badhandv4.pt", "/MuseV/checkpoints/embedding/badhandv4.pt")
    s = s.replace("/checkpoints/embedding/ng_deepnegative_v1_75t.pt", "/MuseV/checkpoints/embedding/ng_deepnegative_v1_75t.pt")
    s = s.replace("/checkpoints/embedding/EasyNegativeV2.safetensors", "/MuseV/checkpoints/embedding/EasyNegativeV2.safetensors")
    s = s.replace("/checkpoints/embedding/bad_prompt_version2-neg.pt", "/MuseV/checkpoints/embedding/bad_prompt_version2-neg.pt")
    scrip.write(s)
    scrip.truncate()
    scrip.seek(0)

subprocess.run(["mv", "./MuseV/scripts/inference/text2video.py", "./MuseV/text2video.py"])
subprocess.run(["mv", "./MuseV/scripts/inference/video2video.py", "./MuseV/video2video.py"])

with open ("./MuseV/configs/model/motion_model.py","r+") as scrip:
    s = scrip.read()
    s = s.replace('/content/MuseV/checkpoints', "/home/user/app/MuseV/checkpoints")
    scrip.write(s)
    scrip.truncate()
    scrip.seek(0)
    
with open ("./MuseV/configs/model/ip_adapter.py","r+") as scrip:
    s = scrip.read()
    s = s.replace('/content/MuseV/checkpoints', "/home/user/app/MuseV/checkpoints")
    scrip.write(s)
    scrip.truncate()
    scrip.seek(0)

with open ("./MuseV/configs/model/T2I_all_model.py","r+") as scrip:
    s = scrip.read()
    s = s.replace('/content/MuseV/checkpoints', "/home/user/app/MuseV/checkpoints")
    scrip.write(s)
    scrip.truncate()
    scrip.seek(0)

@spaces.GPU
def run(duration=180):
  subprocess.run(["python", "./MuseV/text2video.py", "--sd_model_name", "majicmixRealv6Fp16", "--unet_model_name", "musev_referencenet", "--referencenet_model_name", "musev_referencenet", "--ip_adapter_model_name", "musev_referencenet", "-test_data_path", "./MuseV/configs/tasks/example.yaml", "--output_dir", "./MuseV",  "--n_batch", "1",  "--target_datas", "Mona_Lisa.",  "--vision_clip_extractor_class_name", "ImageClipVisionFeatureExtractor", "--vision_clip_model_path", "./MuseV/checkpoints/IP-Adapter/models/image_encoder", "--motion_speed", "5.0", "--vae_model_path", "./MuseV/checkpoints/vae/sd-vae-ft-mse", "--time_size", "120", "--fps", "24"])
  return "./MuseV/Mona_Lisa.mp4"
    
with gr.Blocks() as demo:
  button = gr.Button()
  video = gr.Video()
  button.click(fn=run,outputs=video)

demo.launch()