QinOwen
commited on
Commit
•
fe91ef5
1
Parent(s):
0e20ffa
add-example-fix-bug
Browse files- VADER-VideoCrafter/scripts/main/train_t2v_lora.py +10 -45
- app.py +88 -25
- gradio_cached_examples/34/log.csv +6 -0
- requirements.txt +2 -1
VADER-VideoCrafter/scripts/main/train_t2v_lora.py
CHANGED
@@ -573,54 +573,11 @@ def run_training(args, peft_model, **kwargs):
|
|
573 |
gradient_accumulation_steps=args.gradient_accumulation_steps,
|
574 |
mixed_precision=args.mixed_precision,
|
575 |
project_dir=args.project_dir
|
576 |
-
|
577 |
)
|
578 |
output_dir = args.project_dir
|
579 |
|
580 |
# Make one log on every process with the configuration for debugging.
|
581 |
create_logging(logging, logger, accelerator)
|
582 |
-
|
583 |
-
# ## ------------------------step 2: model config-----------------------------
|
584 |
-
# # download the checkpoint for VideoCrafter2 model
|
585 |
-
# ckpt_dir = args.ckpt_path.split('/') # args.ckpt='checkpoints/base_512_v2/model.ckpt' -> 'checkpoints/base_512_v2'
|
586 |
-
# ckpt_dir = '/'.join(ckpt_dir[:-1])
|
587 |
-
# snapshot_download(repo_id='VideoCrafter/VideoCrafter2', local_dir =ckpt_dir)
|
588 |
-
|
589 |
-
# # load the model
|
590 |
-
# config = OmegaConf.load(args.config)
|
591 |
-
# model_config = config.pop("model", OmegaConf.create())
|
592 |
-
# model = instantiate_from_config(model_config)
|
593 |
-
|
594 |
-
# assert os.path.exists(args.ckpt_path), f"Error: checkpoint [{args.ckpt_path}] Not Found!"
|
595 |
-
# model = load_model_checkpoint(model, args.ckpt_path)
|
596 |
-
|
597 |
-
|
598 |
-
# # convert first_stage_model and cond_stage_model to torch.float16 if mixed_precision is True
|
599 |
-
# if args.mixed_precision != 'no':
|
600 |
-
# model.first_stage_model = model.first_stage_model.half()
|
601 |
-
# model.cond_stage_model = model.cond_stage_model.half()
|
602 |
-
|
603 |
-
# # step 2.1: add LoRA using peft
|
604 |
-
# config = peft.LoraConfig(
|
605 |
-
# r=args.lora_rank,
|
606 |
-
# target_modules=["to_k", "to_v", "to_q"], # only diffusion_model has these modules
|
607 |
-
# lora_dropout=0.01,
|
608 |
-
# )
|
609 |
-
|
610 |
-
# peft_model = peft.get_peft_model(model, config)
|
611 |
-
|
612 |
-
# peft_model.print_trainable_parameters()
|
613 |
-
|
614 |
-
# # load the pretrained LoRA model
|
615 |
-
# if args.lora_ckpt_path is not None:
|
616 |
-
# if args.lora_ckpt_path == "huggingface-hps-aesthetic": # download the pretrained LoRA model from huggingface
|
617 |
-
# snapshot_download(repo_id='zheyangqin/VADER', local_dir ='VADER-VideoCrafter/checkpoints/pretrained_lora')
|
618 |
-
# args.lora_ckpt_path = 'VADER-VideoCrafter/checkpoints/pretrained_lora/vader_videocrafter_hps_aesthetic.pt'
|
619 |
-
# elif args.lora_ckpt_path == "huggingface-pickscore": # download the pretrained LoRA model from huggingface
|
620 |
-
# snapshot_download(repo_id='zheyangqin/VADER', local_dir ='VADER-VideoCrafter/checkpoints/pretrained_lora')
|
621 |
-
# args.lora_ckpt_path = 'VADER-VideoCrafter/checkpoints/pretrained_lora/vader_videocrafter_pickscore.pt'
|
622 |
-
# # load the pretrained LoRA model
|
623 |
-
# peft.set_peft_model_state_dict(peft_model, torch.load(args.lora_ckpt_path))
|
624 |
|
625 |
# Inference Step: only do inference and save the videos. Skip this step if it is training
|
626 |
# ==================================================================
|
@@ -749,7 +706,7 @@ def setup_model(lora_ckpt_path="huggingface-pickscore", lora_rank=16):
|
|
749 |
# download the checkpoint for VideoCrafter2 model
|
750 |
ckpt_dir = args.ckpt_path.split('/') # args.ckpt='checkpoints/base_512_v2/model.ckpt' -> 'checkpoints/base_512_v2'
|
751 |
ckpt_dir = '/'.join(ckpt_dir[:-1])
|
752 |
-
snapshot_download(repo_id='VideoCrafter/VideoCrafter2', local_dir
|
753 |
|
754 |
# load the model
|
755 |
config = OmegaConf.load(args.config)
|
@@ -766,7 +723,7 @@ def setup_model(lora_ckpt_path="huggingface-pickscore", lora_rank=16):
|
|
766 |
|
767 |
# step 2.1: add LoRA using peft
|
768 |
config = peft.LoraConfig(
|
769 |
-
r=
|
770 |
target_modules=["to_k", "to_v", "to_q"], # only diffusion_model has these modules
|
771 |
lora_dropout=0.01,
|
772 |
)
|
@@ -783,6 +740,14 @@ def setup_model(lora_ckpt_path="huggingface-pickscore", lora_rank=16):
|
|
783 |
elif lora_ckpt_path == "huggingface-pickscore": # download the pretrained LoRA model from huggingface
|
784 |
snapshot_download(repo_id='zheyangqin/VADER', local_dir ='VADER-VideoCrafter/checkpoints/pretrained_lora')
|
785 |
lora_ckpt_path = 'VADER-VideoCrafter/checkpoints/pretrained_lora/vader_videocrafter_pickscore.pt'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
786 |
# load the pretrained LoRA model
|
787 |
peft.set_peft_model_state_dict(peft_model, torch.load(lora_ckpt_path))
|
788 |
|
|
|
573 |
gradient_accumulation_steps=args.gradient_accumulation_steps,
|
574 |
mixed_precision=args.mixed_precision,
|
575 |
project_dir=args.project_dir
|
|
|
576 |
)
|
577 |
output_dir = args.project_dir
|
578 |
|
579 |
# Make one log on every process with the configuration for debugging.
|
580 |
create_logging(logging, logger, accelerator)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
581 |
|
582 |
# Inference Step: only do inference and save the videos. Skip this step if it is training
|
583 |
# ==================================================================
|
|
|
706 |
# download the checkpoint for VideoCrafter2 model
|
707 |
ckpt_dir = args.ckpt_path.split('/') # args.ckpt='checkpoints/base_512_v2/model.ckpt' -> 'checkpoints/base_512_v2'
|
708 |
ckpt_dir = '/'.join(ckpt_dir[:-1])
|
709 |
+
snapshot_download(repo_id='VideoCrafter/VideoCrafter2', local_dir=ckpt_dir)
|
710 |
|
711 |
# load the model
|
712 |
config = OmegaConf.load(args.config)
|
|
|
723 |
|
724 |
# step 2.1: add LoRA using peft
|
725 |
config = peft.LoraConfig(
|
726 |
+
r=lora_rank,
|
727 |
target_modules=["to_k", "to_v", "to_q"], # only diffusion_model has these modules
|
728 |
lora_dropout=0.01,
|
729 |
)
|
|
|
740 |
elif lora_ckpt_path == "huggingface-pickscore": # download the pretrained LoRA model from huggingface
|
741 |
snapshot_download(repo_id='zheyangqin/VADER', local_dir ='VADER-VideoCrafter/checkpoints/pretrained_lora')
|
742 |
lora_ckpt_path = 'VADER-VideoCrafter/checkpoints/pretrained_lora/vader_videocrafter_pickscore.pt'
|
743 |
+
elif lora_ckpt_path == "peft_model_532":
|
744 |
+
lora_ckpt_path = 'VADER-VideoCrafter/checkpoints/pretrained_lora/peft_model_532.pt'
|
745 |
+
elif lora_ckpt_path == "peft_model_548":
|
746 |
+
lora_ckpt_path = 'VADER-VideoCrafter/checkpoints/pretrained_lora/peft_model_548.pt'
|
747 |
+
elif lora_ckpt_path == "peft_model_536":
|
748 |
+
lora_ckpt_path = 'VADER-VideoCrafter/checkpoints/pretrained_lora/peft_model_536.pt'
|
749 |
+
elif lora_ckpt_path == "peft_model_400":
|
750 |
+
lora_ckpt_path = 'VADER-VideoCrafter/checkpoints/pretrained_lora/peft_model_400.pt'
|
751 |
# load the pretrained LoRA model
|
752 |
peft.set_peft_model_state_dict(peft_model, torch.load(lora_ckpt_path))
|
753 |
|
app.py
CHANGED
@@ -1,15 +1,27 @@
|
|
1 |
import gradio as gr
|
2 |
import os
|
3 |
-
|
4 |
import sys
|
5 |
sys.path.append('./VADER-VideoCrafter/scripts/main')
|
6 |
sys.path.append('./VADER-VideoCrafter/scripts')
|
7 |
sys.path.append('./VADER-VideoCrafter')
|
8 |
|
|
|
9 |
from train_t2v_lora import main_fn, setup_model
|
10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
model = None # Placeholder for model
|
12 |
|
|
|
13 |
def gradio_main_fn(prompt, seed, height, width, unconditional_guidance_scale, ddim_steps, ddim_eta,
|
14 |
frames, savefps):
|
15 |
global model
|
@@ -30,7 +42,7 @@ def gradio_main_fn(prompt, seed, height, width, unconditional_guidance_scale, dd
|
|
30 |
|
31 |
def reset_fn():
|
32 |
return ("A mermaid with flowing hair and a shimmering tail discovers a hidden underwater kingdom adorned with coral palaces, glowing pearls, and schools of colorful fish, encountering both wonders and dangers along the way.",
|
33 |
-
200,
|
34 |
|
35 |
def update_lora_rank(lora_model):
|
36 |
if lora_model == "huggingface-pickscore":
|
@@ -38,7 +50,7 @@ def update_lora_rank(lora_model):
|
|
38 |
elif lora_model == "huggingface-hps-aesthetic":
|
39 |
return gr.update(value=8)
|
40 |
else: # "Base Model"
|
41 |
-
return gr.update(value=
|
42 |
|
43 |
def update_dropdown(lora_rank):
|
44 |
if lora_rank == 16:
|
@@ -48,7 +60,7 @@ def update_dropdown(lora_rank):
|
|
48 |
else: # 0
|
49 |
return gr.update(value="Base Model")
|
50 |
|
51 |
-
|
52 |
def setup_model_progress(lora_model, lora_rank):
|
53 |
global model
|
54 |
|
@@ -60,15 +72,58 @@ def setup_model_progress(lora_model, lora_rank):
|
|
60 |
# Enable buttons after loading and update indicator
|
61 |
yield (gr.update(interactive=True), gr.update(interactive=True), gr.update(interactive=True), "Model loaded successfully")
|
62 |
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
69 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
70 |
|
71 |
-
with gr.Blocks(css=
|
72 |
with gr.Row():
|
73 |
with gr.Column():
|
74 |
gr.HTML(
|
@@ -152,21 +207,23 @@ with gr.Blocks(css=css) as demo:
|
|
152 |
"""
|
153 |
)
|
154 |
|
155 |
-
with gr.Row(
|
156 |
-
with gr.Column(scale=0.
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
value="huggingface-pickscore"
|
164 |
-
)
|
165 |
-
lora_rank = gr.Slider(minimum=0, maximum=16, label="LoRA Rank", step = 8, value=16)
|
166 |
load_btn = gr.Button("Load Model")
|
167 |
# Add a label to show the loading indicator
|
168 |
loading_indicator = gr.Label(value="", label="Loading Indicator")
|
|
|
|
|
|
|
169 |
|
|
|
|
|
170 |
prompt = gr.Textbox(placeholder="Enter prompt text here", lines=4, label="Text Prompt",
|
171 |
value="A mermaid with flowing hair and a shimmering tail discovers a hidden underwater kingdom adorned with coral palaces, glowing pearls, and schools of colorful fish, encountering both wonders and dangers along the way.")
|
172 |
|
@@ -176,7 +233,7 @@ with gr.Blocks(css=css) as demo:
|
|
176 |
|
177 |
|
178 |
with gr.Row():
|
179 |
-
height = gr.Slider(minimum=0, maximum=1024, label="Height", step = 16, value=
|
180 |
width = gr.Slider(minimum=0, maximum=1024, label="Width", step = 16, value=512)
|
181 |
|
182 |
with gr.Row():
|
@@ -205,6 +262,12 @@ with gr.Blocks(css=css) as demo:
|
|
205 |
lora_model.change(fn=update_lora_rank, inputs=lora_model, outputs=lora_rank)
|
206 |
lora_rank.change(fn=update_dropdown, inputs=lora_rank, outputs=lora_model)
|
207 |
|
208 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
209 |
|
210 |
-
|
|
|
1 |
import gradio as gr
|
2 |
import os
|
3 |
+
import spaces
|
4 |
import sys
|
5 |
sys.path.append('./VADER-VideoCrafter/scripts/main')
|
6 |
sys.path.append('./VADER-VideoCrafter/scripts')
|
7 |
sys.path.append('./VADER-VideoCrafter')
|
8 |
|
9 |
+
|
10 |
from train_t2v_lora import main_fn, setup_model
|
11 |
|
12 |
+
examples = [
|
13 |
+
["A fairy tends to enchanted, glowing flowers.", 'huggingface-hps-aesthetic', 8, 400, 384, 512, 12.0, 25, 1.0, 24, 10],
|
14 |
+
["A cat playing an electric guitar in a loft with industrial-style decor and soft, multicolored lights.", 'huggingface-hps-aesthetic', 8, 206, 384, 512, 12.0, 25, 1.0, 24, 10],
|
15 |
+
["A raccoon playing a guitar under a blossoming cherry tree.", 'huggingface-hps-aesthetic', 8, 204, 384, 512, 12.0, 25, 1.0, 24, 10],
|
16 |
+
["A mermaid with flowing hair and a shimmering tail discovers a hidden underwater kingdom adorned with coral palaces, glowing pearls, and schools of colorful fish, encountering both wonders and dangers along the way.",
|
17 |
+
"huggingface-pickscore", 16, 205, 384, 512, 12.0, 25, 1.0, 24, 10],
|
18 |
+
["A talking bird with shimmering feathers and a melodious voice leads an adventure to find a legendary treasure, guiding through enchanted forests, ancient ruins, and mystical challenges.",
|
19 |
+
"huggingface-pickscore", 16, 204, 384, 512, 12.0, 25, 1.0, 24, 10]
|
20 |
+
]
|
21 |
+
|
22 |
model = None # Placeholder for model
|
23 |
|
24 |
+
@spaces.GPU(duration=70)
|
25 |
def gradio_main_fn(prompt, seed, height, width, unconditional_guidance_scale, ddim_steps, ddim_eta,
|
26 |
frames, savefps):
|
27 |
global model
|
|
|
42 |
|
43 |
def reset_fn():
|
44 |
return ("A mermaid with flowing hair and a shimmering tail discovers a hidden underwater kingdom adorned with coral palaces, glowing pearls, and schools of colorful fish, encountering both wonders and dangers along the way.",
|
45 |
+
200, 384, 512, 12.0, 25, 1.0, 24, 16, 10, "huggingface-pickscore")
|
46 |
|
47 |
def update_lora_rank(lora_model):
|
48 |
if lora_model == "huggingface-pickscore":
|
|
|
50 |
elif lora_model == "huggingface-hps-aesthetic":
|
51 |
return gr.update(value=8)
|
52 |
else: # "Base Model"
|
53 |
+
return gr.update(value=8)
|
54 |
|
55 |
def update_dropdown(lora_rank):
|
56 |
if lora_rank == 16:
|
|
|
60 |
else: # 0
|
61 |
return gr.update(value="Base Model")
|
62 |
|
63 |
+
@spaces.GPU(duration=120)
|
64 |
def setup_model_progress(lora_model, lora_rank):
|
65 |
global model
|
66 |
|
|
|
72 |
# Enable buttons after loading and update indicator
|
73 |
yield (gr.update(interactive=True), gr.update(interactive=True), gr.update(interactive=True), "Model loaded successfully")
|
74 |
|
75 |
+
@spaces.GPU(duration=120)
|
76 |
+
def generate_example(prompt, lora_model, lora_rank, seed, height, width, unconditional_guidance_scale, ddim_steps, ddim_eta,
|
77 |
+
frames, savefps):
|
78 |
+
global model
|
79 |
+
model = setup_model(lora_model, lora_rank)
|
80 |
+
video_path = main_fn(prompt=prompt,
|
81 |
+
seed=int(seed),
|
82 |
+
height=int(height),
|
83 |
+
width=int(width),
|
84 |
+
unconditional_guidance_scale=float(unconditional_guidance_scale),
|
85 |
+
ddim_steps=int(ddim_steps),
|
86 |
+
ddim_eta=float(ddim_eta),
|
87 |
+
frames=int(frames),
|
88 |
+
savefps=int(savefps),
|
89 |
+
model=model)
|
90 |
+
return video_path
|
91 |
|
92 |
+
custom_css = """
|
93 |
+
#centered {
|
94 |
+
display: flex;
|
95 |
+
justify-content: center;
|
96 |
+
}
|
97 |
+
.column-centered {
|
98 |
+
display: flex;
|
99 |
+
flex-direction: column;
|
100 |
+
align-items: center;
|
101 |
+
width: 60%;
|
102 |
+
}
|
103 |
+
#image-upload {
|
104 |
+
flex-grow: 1;
|
105 |
+
}
|
106 |
+
#params .tabs {
|
107 |
+
display: flex;
|
108 |
+
flex-direction: column;
|
109 |
+
flex-grow: 1;
|
110 |
+
}
|
111 |
+
#params .tabitem[style="display: block;"] {
|
112 |
+
flex-grow: 1;
|
113 |
+
display: flex !important;
|
114 |
+
}
|
115 |
+
#params .gap {
|
116 |
+
flex-grow: 1;
|
117 |
+
}
|
118 |
+
#params .form {
|
119 |
+
flex-grow: 1 !important;
|
120 |
+
}
|
121 |
+
#params .form > :last-child{
|
122 |
+
flex-grow: 1;
|
123 |
+
}
|
124 |
+
"""
|
125 |
|
126 |
+
with gr.Blocks(css=custom_css) as demo:
|
127 |
with gr.Row():
|
128 |
with gr.Column():
|
129 |
gr.HTML(
|
|
|
207 |
"""
|
208 |
)
|
209 |
|
210 |
+
with gr.Row(elem_id="centered"):
|
211 |
+
with gr.Column(scale=0.3, elem_id="params"):
|
212 |
+
lora_model = gr.Dropdown(
|
213 |
+
label="VADER Model",
|
214 |
+
choices=["huggingface-pickscore", "huggingface-hps-aesthetic", "Base Model"],
|
215 |
+
value="huggingface-pickscore"
|
216 |
+
)
|
217 |
+
lora_rank = gr.Slider(minimum=8, maximum=16, label="LoRA Rank", step = 8, value=16)
|
|
|
|
|
|
|
218 |
load_btn = gr.Button("Load Model")
|
219 |
# Add a label to show the loading indicator
|
220 |
loading_indicator = gr.Label(value="", label="Loading Indicator")
|
221 |
+
|
222 |
+
with gr.Column(scale=0.3):
|
223 |
+
output_video = gr.Video(elem_id="image-upload")
|
224 |
|
225 |
+
with gr.Row(elem_id="centered"):
|
226 |
+
with gr.Column(scale=0.6):
|
227 |
prompt = gr.Textbox(placeholder="Enter prompt text here", lines=4, label="Text Prompt",
|
228 |
value="A mermaid with flowing hair and a shimmering tail discovers a hidden underwater kingdom adorned with coral palaces, glowing pearls, and schools of colorful fish, encountering both wonders and dangers along the way.")
|
229 |
|
|
|
233 |
|
234 |
|
235 |
with gr.Row():
|
236 |
+
height = gr.Slider(minimum=0, maximum=1024, label="Height", step = 16, value=384)
|
237 |
width = gr.Slider(minimum=0, maximum=1024, label="Width", step = 16, value=512)
|
238 |
|
239 |
with gr.Row():
|
|
|
262 |
lora_model.change(fn=update_lora_rank, inputs=lora_model, outputs=lora_rank)
|
263 |
lora_rank.change(fn=update_dropdown, inputs=lora_rank, outputs=lora_model)
|
264 |
|
265 |
+
gr.Examples(examples=examples,
|
266 |
+
inputs=[prompt, lora_model, lora_rank, seed, height, width, unconditional_guidance_scale, DDIM_Steps, DDIM_Eta, frames, savefps],
|
267 |
+
outputs=output_video,
|
268 |
+
fn=generate_example,
|
269 |
+
run_on_click=False,
|
270 |
+
cache_examples=True,
|
271 |
+
)
|
272 |
|
273 |
+
demo.launch(share=True)
|
gradio_cached_examples/34/log.csv
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
component 0,flag,username,timestamp
|
2 |
+
"{""video"": {""path"": ""gradio_cached_examples/34/component 0/098dac4a3713d5d7c6a8/temporal.mp4"", ""url"": ""/file=/tmp/gradio/4bc133becbc469de8da700250f7f7df1103c6f56/temporal.mp4"", ""size"": null, ""orig_name"": ""temporal.mp4"", ""mime_type"": null, ""is_stream"": false, ""meta"": {""_type"": ""gradio.FileData""}}, ""subtitles"": null}",,,2024-07-18 22:50:14.868519
|
3 |
+
"{""video"": {""path"": ""gradio_cached_examples/34/component 0/b32c2706faa4801becfc/temporal.mp4"", ""url"": ""/file=/tmp/gradio/7f62f2e865f6a6eef4c27968ad35c3102d6ba5a4/temporal.mp4"", ""size"": null, ""orig_name"": ""temporal.mp4"", ""mime_type"": null, ""is_stream"": false, ""meta"": {""_type"": ""gradio.FileData""}}, ""subtitles"": null}",,,2024-07-18 22:51:57.454233
|
4 |
+
"{""video"": {""path"": ""gradio_cached_examples/34/component 0/0ced86d109f80abd1456/temporal.mp4"", ""url"": ""/file=/tmp/gradio/2af48d5977a6b60b9c91982ef479e44a2ce2bd42/temporal.mp4"", ""size"": null, ""orig_name"": ""temporal.mp4"", ""mime_type"": null, ""is_stream"": false, ""meta"": {""_type"": ""gradio.FileData""}}, ""subtitles"": null}",,,2024-07-18 22:53:33.714132
|
5 |
+
"{""video"": {""path"": ""gradio_cached_examples/34/component 0/b3018d4fa1632c5c33d3/temporal.mp4"", ""url"": ""/file=/tmp/gradio/50c4df5d030c66ff3f75b5f427bb6ef42eb20597/temporal.mp4"", ""size"": null, ""orig_name"": ""temporal.mp4"", ""mime_type"": null, ""is_stream"": false, ""meta"": {""_type"": ""gradio.FileData""}}, ""subtitles"": null}",,,2024-07-18 22:55:14.236468
|
6 |
+
"{""video"": {""path"": ""gradio_cached_examples/34/component 0/73648e9d504425f92839/temporal.mp4"", ""url"": ""/file=/tmp/gradio/469d6c7ffc22a14449337ee8c966b3a517d581a3/temporal.mp4"", ""size"": null, ""orig_name"": ""temporal.mp4"", ""mime_type"": null, ""is_stream"": false, ""meta"": {""_type"": ""gradio.FileData""}}, ""subtitles"": null}",,,2024-07-18 22:56:46.543720
|
requirements.txt
CHANGED
@@ -9,7 +9,7 @@ Pillow==9.5.0
|
|
9 |
pytorch_lightning==2.3.1
|
10 |
PyYAML==6.0
|
11 |
setuptools==65.6.3
|
12 |
-
tqdm
|
13 |
transformers==4.25.1
|
14 |
moviepy==1.0.3
|
15 |
av==12.2.0
|
@@ -27,4 +27,5 @@ wandb==0.17.3
|
|
27 |
ipdb==0.13.13
|
28 |
huggingface-hub==0.23.4
|
29 |
gradio
|
|
|
30 |
-e git+https://github.com/tgxs002/HPSv2.git#egg=hpsv2
|
|
|
9 |
pytorch_lightning==2.3.1
|
10 |
PyYAML==6.0
|
11 |
setuptools==65.6.3
|
12 |
+
tqdm>=4.66.3
|
13 |
transformers==4.25.1
|
14 |
moviepy==1.0.3
|
15 |
av==12.2.0
|
|
|
27 |
ipdb==0.13.13
|
28 |
huggingface-hub==0.23.4
|
29 |
gradio
|
30 |
+
spaces
|
31 |
-e git+https://github.com/tgxs002/HPSv2.git#egg=hpsv2
|