Spaces:
Runtime error
Runtime error
Commit
·
a8b3fe4
1
Parent(s):
556db34
add preview for input video
Browse files- FateZero/data/.gitignore +3 -1
- FateZero/data/teaser_car-turn.mp4 +0 -0
- FateZero/script/png_to_mp4.py +42 -0
- app_fatezero.py +29 -103
- example.py +5 -5
- inference_fatezero.py +5 -2
FateZero/data/.gitignore
CHANGED
|
@@ -2,4 +2,6 @@
|
|
| 2 |
!teaser_car-turn
|
| 3 |
!teaser_car-turn/*
|
| 4 |
!.gitignore
|
| 5 |
-
!download.sh
|
|
|
|
|
|
|
|
|
| 2 |
!teaser_car-turn
|
| 3 |
!teaser_car-turn/*
|
| 4 |
!.gitignore
|
| 5 |
+
!download.sh
|
| 6 |
+
!*.mp4
|
| 7 |
+
!*/*.mp4
|
FateZero/data/teaser_car-turn.mp4
ADDED
|
Binary file (147 kB). View file
|
|
|
FateZero/script/png_to_mp4.py
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import imageio
|
| 2 |
+
import os
|
| 3 |
+
from glob import glob
|
| 4 |
+
|
| 5 |
+
def png_to_mp4(example_input_path, out_path=None):
|
| 6 |
+
# Create output folder if it doesn't exist
|
| 7 |
+
if out_path is None:
|
| 8 |
+
out_path = example_input_path[0:-4] + '/out.mp4'
|
| 9 |
+
print(out_path)
|
| 10 |
+
# os.makedirs(out_path, exist_ok=True)
|
| 11 |
+
png_list = sorted(glob(example_input_path + '/*.*g'))
|
| 12 |
+
# Read the GIF file using imageio
|
| 13 |
+
frames = []
|
| 14 |
+
for png in png_list:
|
| 15 |
+
print(png)
|
| 16 |
+
# fps = reader.get_meta_data()['fps'] # Get the FPS of the GIF
|
| 17 |
+
|
| 18 |
+
|
| 19 |
+
|
| 20 |
+
# Iterate over each frame in the GIF and save it as a PNG image
|
| 21 |
+
# for i, frame in enumerate(reader):
|
| 22 |
+
# frame_path = os.path.join(out_path, f'frame_{i:05d}.png')
|
| 23 |
+
# imageio.imwrite(frame_path, frame)
|
| 24 |
+
frames.append(imageio.imread(png))
|
| 25 |
+
|
| 26 |
+
# Save the frames as an MP4 video using imageio
|
| 27 |
+
# mp4_path = os.path.join(out_path, 'output.mp4')
|
| 28 |
+
print(out_path)
|
| 29 |
+
# breakpoint()
|
| 30 |
+
imageio.mimsave(out_path, frames, fps=10)
|
| 31 |
+
|
| 32 |
+
|
| 33 |
+
video_all_folder = '/home/cqiaa/diffusion/hugging_face/FateZero/FateZero/data/style'
|
| 34 |
+
video_list = glob(video_all_folder+'/*')
|
| 35 |
+
for example_input_path in video_list:
|
| 36 |
+
print(example_input_path)
|
| 37 |
+
out_path = example_input_path+'.mp4'
|
| 38 |
+
png_to_mp4(example_input_path, out_path)
|
| 39 |
+
|
| 40 |
+
# example_input_path = 'data/style/blackswan'
|
| 41 |
+
# out_path = example_input_path+'.mp4'
|
| 42 |
+
# png_to_mp4(example_input_path, out_path)
|
app_fatezero.py
CHANGED
|
@@ -6,24 +6,8 @@ import os
|
|
| 6 |
|
| 7 |
import gradio as gr
|
| 8 |
|
| 9 |
-
# from inference import InferencePipeline
|
| 10 |
-
# from FateZero import test_fatezero
|
| 11 |
from inference_fatezero import merge_config_then_run
|
| 12 |
|
| 13 |
-
# class InferenceUtil:
|
| 14 |
-
# def __init__(self, hf_token: str | None):
|
| 15 |
-
# self.hf_token = hf_token
|
| 16 |
-
|
| 17 |
-
# def load_model_info(self, model_id: str) -> tuple[str, str]:
|
| 18 |
-
# # todo FIXME
|
| 19 |
-
# try:
|
| 20 |
-
# card = InferencePipeline.get_model_card(model_id, self.hf_token)
|
| 21 |
-
# except Exception:
|
| 22 |
-
# return '', ''
|
| 23 |
-
# base_model = getattr(card.data, 'base_model', '')
|
| 24 |
-
# training_prompt = getattr(card.data, 'training_prompt', '')
|
| 25 |
-
# return base_model, training_prompt
|
| 26 |
-
|
| 27 |
|
| 28 |
# TITLE = '# [FateZero](http://fate-zero-edit.github.io/)'
|
| 29 |
HF_TOKEN = os.getenv('HF_TOKEN')
|
|
@@ -93,32 +77,33 @@ with gr.Blocks(css='style.css') as demo:
|
|
| 93 |
</span>
|
| 94 |
</h2>
|
| 95 |
<h2 style="font-weight: 450; font-size: 1rem; margin-top: 0.5rem; margin-bottom: 0.5rem">
|
| 96 |
-
FateZero is
|
| 97 |
</h2>
|
| 98 |
</div>
|
| 99 |
""")
|
| 100 |
|
| 101 |
|
| 102 |
gr.HTML("""
|
| 103 |
-
<p>Note that due to
|
| 104 |
-
<p>
|
| 105 |
<br/>
|
| 106 |
<a href="https://huggingface.co/spaces/chenyangqi/FateZero?duplicate=true">
|
| 107 |
<img style="margin-top: 0em; margin-bottom: 0em" src="https://bit.ly/3gLdBN6" alt="Duplicate Space"></a>
|
| 108 |
-
<p>
|
| 109 |
</p>""")
|
| 110 |
|
| 111 |
with gr.Row():
|
| 112 |
with gr.Column():
|
| 113 |
with gr.Accordion('Input Video', open=True):
|
| 114 |
-
user_input_video = gr.File(label='Input Source Video')
|
|
|
|
| 115 |
with gr.Accordion('Temporal Crop offset and Sampling Stride', open=False):
|
| 116 |
-
n_sample_frame = gr.Slider(label='Number of Frames
|
| 117 |
minimum=0,
|
| 118 |
maximum=32,
|
| 119 |
step=1,
|
| 120 |
value=8)
|
| 121 |
-
stride = gr.Slider(label='Temporal
|
| 122 |
minimum=0,
|
| 123 |
maximum=20,
|
| 124 |
step=1,
|
|
@@ -153,16 +138,6 @@ with gr.Blocks(css='style.css') as demo:
|
|
| 153 |
stride
|
| 154 |
] + offset_list
|
| 155 |
|
| 156 |
-
|
| 157 |
-
data_path = gr.Dropdown(
|
| 158 |
-
label='Or use provided data in our paper',
|
| 159 |
-
choices=[
|
| 160 |
-
'FateZero/data/teaser_car-turn',
|
| 161 |
-
'FateZero/data/style/sunflower',
|
| 162 |
-
'FateZero/data/attribute/swan_swarov',
|
| 163 |
-
# add shape editing ckpt here
|
| 164 |
-
],
|
| 165 |
-
value='FateZero/data/teaser_car-turn')
|
| 166 |
model_id = gr.Dropdown(
|
| 167 |
label='Model ID',
|
| 168 |
choices=[
|
|
@@ -170,16 +145,6 @@ with gr.Blocks(css='style.css') as demo:
|
|
| 170 |
# add shape editing ckpt here
|
| 171 |
],
|
| 172 |
value='CompVis/stable-diffusion-v1-4')
|
| 173 |
-
# with gr.Accordion(
|
| 174 |
-
# label=
|
| 175 |
-
# 'Model info (Base model and prompt used for training)',
|
| 176 |
-
# open=False):
|
| 177 |
-
# with gr.Row():
|
| 178 |
-
# base_model_used_for_training = gr.Text(
|
| 179 |
-
# label='Base model', interactive=False)
|
| 180 |
-
# prompt_used_for_training = gr.Text(
|
| 181 |
-
# label='Training prompt', interactive=False)
|
| 182 |
-
|
| 183 |
|
| 184 |
|
| 185 |
with gr.Accordion('Text Prompt', open=True):
|
|
@@ -197,91 +162,60 @@ with gr.Blocks(css='style.css') as demo:
|
|
| 197 |
|
| 198 |
|
| 199 |
|
| 200 |
-
|
| 201 |
-
num_steps = gr.Slider(label='Number of Steps',
|
| 202 |
-
info='larger value has better editing capacity, but takes more time and memory',
|
| 203 |
-
minimum=0,
|
| 204 |
-
maximum=50,
|
| 205 |
-
step=1,
|
| 206 |
-
value=10)
|
| 207 |
-
guidance_scale = gr.Slider(label='CFG Scale',
|
| 208 |
-
minimum=0,
|
| 209 |
-
maximum=50,
|
| 210 |
-
step=0.1,
|
| 211 |
-
value=7.5)
|
| 212 |
|
| 213 |
run_button = gr.Button('Generate')
|
| 214 |
|
| 215 |
-
# gr.Markdown('''
|
| 216 |
-
# - It takes a few minutes to download model first.
|
| 217 |
-
# - Expected time to generate an 8-frame video: 70 seconds with T4, 24 seconds with A10G, (10 seconds with A100)
|
| 218 |
-
# ''')
|
| 219 |
-
# gr.Markdown('''
|
| 220 |
-
# todo
|
| 221 |
-
# ''')
|
| 222 |
with gr.Column():
|
| 223 |
result = gr.Video(label='Result')
|
| 224 |
-
result.style(height=512, width=512)
|
| 225 |
with gr.Accordion('FateZero Parameters for attention fusing', open=True):
|
| 226 |
-
cross_replace_steps = gr.Slider(label='
|
| 227 |
info='More steps, replace more cross attention to preserve semantic layout.',
|
| 228 |
minimum=0.0,
|
| 229 |
maximum=1.0,
|
| 230 |
step=0.1,
|
| 231 |
value=0.7)
|
| 232 |
|
| 233 |
-
self_replace_steps = gr.Slider(label='
|
| 234 |
info='More steps, replace more spatial-temporal self-attention to preserve geometry and motion.',
|
| 235 |
minimum=0.0,
|
| 236 |
maximum=1.0,
|
| 237 |
step=0.1,
|
| 238 |
value=0.7)
|
| 239 |
|
| 240 |
-
enhance_words = gr.Textbox(label='words
|
| 241 |
info='Amplify the target-words cross attention',
|
| 242 |
max_lines=1,
|
| 243 |
placeholder='Example: "watercolor "',
|
| 244 |
value='watercolor')
|
| 245 |
|
| 246 |
-
enhance_words_value = gr.Slider(label='
|
| 247 |
info='larger value, more elements of target words',
|
| 248 |
minimum=0.0,
|
| 249 |
maximum=20.0,
|
| 250 |
step=1,
|
| 251 |
value=10)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 252 |
with gr.Row():
|
| 253 |
from example import style_example
|
| 254 |
examples = style_example
|
| 255 |
-
|
| 256 |
-
# [
|
| 257 |
-
# 'CompVis/stable-diffusion-v1-4',
|
| 258 |
-
# 'FateZero/data/teaser_car-turn',
|
| 259 |
-
# 'a silver jeep driving down a curvy road in the countryside',
|
| 260 |
-
# 'watercolor painting of a silver jeep driving down a curvy road in the countryside',
|
| 261 |
-
# 0.8,
|
| 262 |
-
# 0.8,
|
| 263 |
-
# "watercolor",
|
| 264 |
-
# 10,
|
| 265 |
-
# 10,
|
| 266 |
-
# 7.5,
|
| 267 |
-
# ],
|
| 268 |
-
# [
|
| 269 |
-
# 'CompVis/stable-diffusion-v1-4',
|
| 270 |
-
# 'FateZero/data/style/sunflower',
|
| 271 |
-
# 'a yellow sunflower',
|
| 272 |
-
# 'van gogh style painting of a yellow sunflower',
|
| 273 |
-
# 0.5,
|
| 274 |
-
# 0.5,
|
| 275 |
-
# 'van gogh',
|
| 276 |
-
# 10,
|
| 277 |
-
# 10,
|
| 278 |
-
# 7.5,
|
| 279 |
-
# ],
|
| 280 |
-
# ]
|
| 281 |
gr.Examples(examples=examples,
|
| 282 |
inputs=[
|
| 283 |
model_id,
|
| 284 |
-
|
| 285 |
source_prompt,
|
| 286 |
target_prompt,
|
| 287 |
cross_replace_steps,
|
|
@@ -299,15 +233,9 @@ with gr.Blocks(css='style.css') as demo:
|
|
| 299 |
# cache_examples=os.getenv('SYSTEM') == 'spaces'
|
| 300 |
)
|
| 301 |
|
| 302 |
-
# model_id.change(fn=app.load_model_info,
|
| 303 |
-
# inputs=model_id,
|
| 304 |
-
# outputs=[
|
| 305 |
-
# base_model_used_for_training,
|
| 306 |
-
# prompt_used_for_training,
|
| 307 |
-
# ])
|
| 308 |
inputs = [
|
| 309 |
model_id,
|
| 310 |
-
|
| 311 |
source_prompt,
|
| 312 |
target_prompt,
|
| 313 |
cross_replace_steps,
|
|
@@ -319,9 +247,7 @@ with gr.Blocks(css='style.css') as demo:
|
|
| 319 |
user_input_video,
|
| 320 |
*ImageSequenceDataset_list
|
| 321 |
]
|
| 322 |
-
# prompt.submit(fn=pipe.run, inputs=inputs, outputs=result)
|
| 323 |
target_prompt.submit(fn=pipe.run, inputs=inputs, outputs=result)
|
| 324 |
-
# run_button.click(fn=pipe.run, inputs=inputs, outputs=result)
|
| 325 |
run_button.click(fn=pipe.run, inputs=inputs, outputs=result)
|
| 326 |
|
| 327 |
demo.queue().launch()
|
|
|
|
| 6 |
|
| 7 |
import gradio as gr
|
| 8 |
|
|
|
|
|
|
|
| 9 |
from inference_fatezero import merge_config_then_run
|
| 10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 11 |
|
| 12 |
# TITLE = '# [FateZero](http://fate-zero-edit.github.io/)'
|
| 13 |
HF_TOKEN = os.getenv('HF_TOKEN')
|
|
|
|
| 77 |
</span>
|
| 78 |
</h2>
|
| 79 |
<h2 style="font-weight: 450; font-size: 1rem; margin-top: 0.5rem; margin-bottom: 0.5rem">
|
| 80 |
+
FateZero is the first zero-shot framework for text-driven video editing via pretrained diffusion models without training.
|
| 81 |
</h2>
|
| 82 |
</div>
|
| 83 |
""")
|
| 84 |
|
| 85 |
|
| 86 |
gr.HTML("""
|
| 87 |
+
<p>Note that due to the limits of memory and computing resources on hugging-face, the results here are only toy examples and take longer to edit.
|
| 88 |
+
<p>You may duplicate the space and upgrade to GPU in settings for better performance and faster inference without waiting in the queue.
|
| 89 |
<br/>
|
| 90 |
<a href="https://huggingface.co/spaces/chenyangqi/FateZero?duplicate=true">
|
| 91 |
<img style="margin-top: 0em; margin-bottom: 0em" src="https://bit.ly/3gLdBN6" alt="Duplicate Space"></a>
|
| 92 |
+
<p>Alternatively, try our GitHub <a href=https://github.com/ChenyangQiQi/FateZero> code </a> on your GPU.
|
| 93 |
</p>""")
|
| 94 |
|
| 95 |
with gr.Row():
|
| 96 |
with gr.Column():
|
| 97 |
with gr.Accordion('Input Video', open=True):
|
| 98 |
+
# user_input_video = gr.File(label='Input Source Video')
|
| 99 |
+
user_input_video = gr.Video(label='Input Source Video', source='upload', type='numpy', format="mp4", visible=True).style(height="auto")
|
| 100 |
with gr.Accordion('Temporal Crop offset and Sampling Stride', open=False):
|
| 101 |
+
n_sample_frame = gr.Slider(label='Number of Frames',
|
| 102 |
minimum=0,
|
| 103 |
maximum=32,
|
| 104 |
step=1,
|
| 105 |
value=8)
|
| 106 |
+
stride = gr.Slider(label='Temporal stride',
|
| 107 |
minimum=0,
|
| 108 |
maximum=20,
|
| 109 |
step=1,
|
|
|
|
| 138 |
stride
|
| 139 |
] + offset_list
|
| 140 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 141 |
model_id = gr.Dropdown(
|
| 142 |
label='Model ID',
|
| 143 |
choices=[
|
|
|
|
| 145 |
# add shape editing ckpt here
|
| 146 |
],
|
| 147 |
value='CompVis/stable-diffusion-v1-4')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 148 |
|
| 149 |
|
| 150 |
with gr.Accordion('Text Prompt', open=True):
|
|
|
|
| 162 |
|
| 163 |
|
| 164 |
|
| 165 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 166 |
|
| 167 |
run_button = gr.Button('Generate')
|
| 168 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 169 |
with gr.Column():
|
| 170 |
result = gr.Video(label='Result')
|
| 171 |
+
# result.style(height=512, width=512)
|
| 172 |
with gr.Accordion('FateZero Parameters for attention fusing', open=True):
|
| 173 |
+
cross_replace_steps = gr.Slider(label='Cross-att replace steps',
|
| 174 |
info='More steps, replace more cross attention to preserve semantic layout.',
|
| 175 |
minimum=0.0,
|
| 176 |
maximum=1.0,
|
| 177 |
step=0.1,
|
| 178 |
value=0.7)
|
| 179 |
|
| 180 |
+
self_replace_steps = gr.Slider(label='Self-att replace steps',
|
| 181 |
info='More steps, replace more spatial-temporal self-attention to preserve geometry and motion.',
|
| 182 |
minimum=0.0,
|
| 183 |
maximum=1.0,
|
| 184 |
step=0.1,
|
| 185 |
value=0.7)
|
| 186 |
|
| 187 |
+
enhance_words = gr.Textbox(label='Enhanced words',
|
| 188 |
info='Amplify the target-words cross attention',
|
| 189 |
max_lines=1,
|
| 190 |
placeholder='Example: "watercolor "',
|
| 191 |
value='watercolor')
|
| 192 |
|
| 193 |
+
enhance_words_value = gr.Slider(label='Target cross-att amplification',
|
| 194 |
info='larger value, more elements of target words',
|
| 195 |
minimum=0.0,
|
| 196 |
maximum=20.0,
|
| 197 |
step=1,
|
| 198 |
value=10)
|
| 199 |
+
with gr.Accordion('DDIM Parameters', open=True):
|
| 200 |
+
num_steps = gr.Slider(label='Number of Steps',
|
| 201 |
+
info='larger value has better editing capacity, but takes more time and memory. (50 steps may produces memory errors)',
|
| 202 |
+
minimum=0,
|
| 203 |
+
maximum=50,
|
| 204 |
+
step=1,
|
| 205 |
+
value=10)
|
| 206 |
+
guidance_scale = gr.Slider(label='CFG Scale',
|
| 207 |
+
minimum=0,
|
| 208 |
+
maximum=50,
|
| 209 |
+
step=0.1,
|
| 210 |
+
value=7.5)
|
| 211 |
with gr.Row():
|
| 212 |
from example import style_example
|
| 213 |
examples = style_example
|
| 214 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 215 |
gr.Examples(examples=examples,
|
| 216 |
inputs=[
|
| 217 |
model_id,
|
| 218 |
+
user_input_video,
|
| 219 |
source_prompt,
|
| 220 |
target_prompt,
|
| 221 |
cross_replace_steps,
|
|
|
|
| 233 |
# cache_examples=os.getenv('SYSTEM') == 'spaces'
|
| 234 |
)
|
| 235 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 236 |
inputs = [
|
| 237 |
model_id,
|
| 238 |
+
user_input_video,
|
| 239 |
source_prompt,
|
| 240 |
target_prompt,
|
| 241 |
cross_replace_steps,
|
|
|
|
| 247 |
user_input_video,
|
| 248 |
*ImageSequenceDataset_list
|
| 249 |
]
|
|
|
|
| 250 |
target_prompt.submit(fn=pipe.run, inputs=inputs, outputs=result)
|
|
|
|
| 251 |
run_button.click(fn=pipe.run, inputs=inputs, outputs=result)
|
| 252 |
|
| 253 |
demo.queue().launch()
|
example.py
CHANGED
|
@@ -2,7 +2,7 @@ num_steps = 10
|
|
| 2 |
style_example = [
|
| 3 |
[
|
| 4 |
'CompVis/stable-diffusion-v1-4',
|
| 5 |
-
'FateZero/data/teaser_car-turn',
|
| 6 |
'a silver jeep driving down a curvy road in the countryside',
|
| 7 |
'watercolor painting of a silver jeep driving down a curvy road in the countryside',
|
| 8 |
0.8,
|
|
@@ -17,7 +17,7 @@ style_example = [
|
|
| 17 |
],
|
| 18 |
[
|
| 19 |
'CompVis/stable-diffusion-v1-4',
|
| 20 |
-
'FateZero/data/style/sunflower',
|
| 21 |
'a yellow sunflower',
|
| 22 |
'van gogh style painting of a yellow sunflower',
|
| 23 |
0.5,
|
|
@@ -30,7 +30,7 @@ style_example = [
|
|
| 30 |
],
|
| 31 |
[
|
| 32 |
'CompVis/stable-diffusion-v1-4',
|
| 33 |
-
'FateZero/data/style/surf',
|
| 34 |
'a man with round helmet surfing on a white wave in blue ocean with a rope',
|
| 35 |
'The Ukiyo-e style painting of a man with round helmet surfing on a white wave in blue ocean with a rope',
|
| 36 |
0.9,
|
|
@@ -43,7 +43,7 @@ style_example = [
|
|
| 43 |
],
|
| 44 |
[
|
| 45 |
'CompVis/stable-diffusion-v1-4',
|
| 46 |
-
'FateZero/data/style/train',
|
| 47 |
'a train traveling down tracks next to a forest filled with trees and flowers and a man on the side of the track',
|
| 48 |
'a train traveling down tracks next to a forest filled with trees and flowers and a man on the side of the track Makoto Shinkai style',
|
| 49 |
0.9,
|
|
@@ -57,7 +57,7 @@ style_example = [
|
|
| 57 |
|
| 58 |
[
|
| 59 |
'CompVis/stable-diffusion-v1-4',
|
| 60 |
-
'FateZero/data/attribute/swan_swarov',
|
| 61 |
'a black swan with a red beak swimming in a river near a wall and bushes',
|
| 62 |
'a Swarovski crystal swan with a red beak swimming in a river near a wall and bushes',
|
| 63 |
0.8,
|
|
|
|
| 2 |
style_example = [
|
| 3 |
[
|
| 4 |
'CompVis/stable-diffusion-v1-4',
|
| 5 |
+
'FateZero/data/teaser_car-turn.mp4',
|
| 6 |
'a silver jeep driving down a curvy road in the countryside',
|
| 7 |
'watercolor painting of a silver jeep driving down a curvy road in the countryside',
|
| 8 |
0.8,
|
|
|
|
| 17 |
],
|
| 18 |
[
|
| 19 |
'CompVis/stable-diffusion-v1-4',
|
| 20 |
+
'FateZero/data/style/sunflower.mp4',
|
| 21 |
'a yellow sunflower',
|
| 22 |
'van gogh style painting of a yellow sunflower',
|
| 23 |
0.5,
|
|
|
|
| 30 |
],
|
| 31 |
[
|
| 32 |
'CompVis/stable-diffusion-v1-4',
|
| 33 |
+
'FateZero/data/style/surf.mp4',
|
| 34 |
'a man with round helmet surfing on a white wave in blue ocean with a rope',
|
| 35 |
'The Ukiyo-e style painting of a man with round helmet surfing on a white wave in blue ocean with a rope',
|
| 36 |
0.9,
|
|
|
|
| 43 |
],
|
| 44 |
[
|
| 45 |
'CompVis/stable-diffusion-v1-4',
|
| 46 |
+
'FateZero/data/style/train.mp4',
|
| 47 |
'a train traveling down tracks next to a forest filled with trees and flowers and a man on the side of the track',
|
| 48 |
'a train traveling down tracks next to a forest filled with trees and flowers and a man on the side of the track Makoto Shinkai style',
|
| 49 |
0.9,
|
|
|
|
| 57 |
|
| 58 |
[
|
| 59 |
'CompVis/stable-diffusion-v1-4',
|
| 60 |
+
'FateZero/data/attribute/swan_swarov.mp4',
|
| 61 |
'a black swan with a red beak swimming in a river near a wall and bushes',
|
| 62 |
'a Swarovski crystal swan with a red beak swimming in a river near a wall and bushes',
|
| 63 |
0.8,
|
inference_fatezero.py
CHANGED
|
@@ -92,8 +92,11 @@ class merge_config_then_run():
|
|
| 92 |
config_now['train_dataset'].update(ImageSequenceDataset_dict)
|
| 93 |
if user_input_video and data_path is None:
|
| 94 |
raise gr.Error('You need to upload a video or choose a provided video')
|
| 95 |
-
if user_input_video is not None
|
| 96 |
-
|
|
|
|
|
|
|
|
|
|
| 97 |
config_now['validation_sample_logger_config']['prompts'] = [target_prompt]
|
| 98 |
|
| 99 |
|
|
|
|
| 92 |
config_now['train_dataset'].update(ImageSequenceDataset_dict)
|
| 93 |
if user_input_video and data_path is None:
|
| 94 |
raise gr.Error('You need to upload a video or choose a provided video')
|
| 95 |
+
if user_input_video is not None:
|
| 96 |
+
if isinstance(user_input_video, str):
|
| 97 |
+
config_now['train_dataset']['path'] = user_input_video
|
| 98 |
+
elif hasattr(user_input_video, 'name') and user_input_video.name is not None:
|
| 99 |
+
config_now['train_dataset']['path'] = user_input_video.name
|
| 100 |
config_now['validation_sample_logger_config']['prompts'] = [target_prompt]
|
| 101 |
|
| 102 |
|