Spaces:
Sleeping
Sleeping
Yaron Koresh
commited on
Update app.py
Browse files
app.py
CHANGED
@@ -16,7 +16,7 @@ import threading
|
|
16 |
import asyncio
|
17 |
from queue import Queue as BlockingQueue
|
18 |
from functools import partial
|
19 |
-
from multiprocessing import Process
|
20 |
|
21 |
# external
|
22 |
|
@@ -137,10 +137,7 @@ def parallel(*pairs):
|
|
137 |
return
|
138 |
if len(pairs) == 1:
|
139 |
pairs = pairs[0]
|
140 |
-
|
141 |
-
out = []
|
142 |
running_tasks = []
|
143 |
-
|
144 |
for pair in pairs:
|
145 |
task = pair.pop(0)
|
146 |
running_tasks.append(Process(target=task, args=(pair,)))
|
@@ -148,8 +145,6 @@ def parallel(*pairs):
|
|
148 |
running_task.start()
|
149 |
for running_task in running_tasks:
|
150 |
running_task.join()
|
151 |
-
out.append(running_task.get())
|
152 |
-
return out
|
153 |
|
154 |
# functionality
|
155 |
|
@@ -202,33 +197,37 @@ def generate_random_string(length):
|
|
202 |
characters = str(ascii_letters + digits)
|
203 |
return ''.join(random.choice(characters) for _ in range(length))
|
204 |
|
205 |
-
def
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
|
|
|
|
|
|
|
|
232 |
|
233 |
inp = list(inp)
|
234 |
|
@@ -251,9 +250,9 @@ def handle(*inp):
|
|
251 |
ln = len(result)
|
252 |
|
253 |
parargs = [[calc,*inp] for i in range(ln)]
|
254 |
-
|
255 |
names = []
|
256 |
-
for i in
|
257 |
name = generate_random_string(12)+".png"
|
258 |
export_to_gif(i.frames[0],name,fps=fps)
|
259 |
names.append( name )
|
@@ -314,7 +313,7 @@ def ui():
|
|
314 |
prompt.submit,
|
315 |
prompt2.submit
|
316 |
],
|
317 |
-
fn=
|
318 |
inputs=[img,prompt,prompt2,motion],
|
319 |
outputs=result
|
320 |
)
|
|
|
16 |
import asyncio
|
17 |
from queue import Queue as BlockingQueue
|
18 |
from functools import partial
|
19 |
+
from multiprocessing import Process, , Queue
|
20 |
|
21 |
# external
|
22 |
|
|
|
137 |
return
|
138 |
if len(pairs) == 1:
|
139 |
pairs = pairs[0]
|
|
|
|
|
140 |
running_tasks = []
|
|
|
141 |
for pair in pairs:
|
142 |
task = pair.pop(0)
|
143 |
running_tasks.append(Process(target=task, args=(pair,)))
|
|
|
145 |
running_task.start()
|
146 |
for running_task in running_tasks:
|
147 |
running_task.join()
|
|
|
|
|
148 |
|
149 |
# functionality
|
150 |
|
|
|
197 |
characters = str(ascii_letters + digits)
|
198 |
return ''.join(random.choice(characters) for _ in range(length))
|
199 |
|
200 |
+
def handle_generate(*inp):
|
201 |
+
|
202 |
+
calc_out = []
|
203 |
+
|
204 |
+
def calc(img,p1,p2,motion):
|
205 |
+
global last_motion
|
206 |
+
global pipe
|
207 |
+
|
208 |
+
if last_motion != motion:
|
209 |
+
if last_motion != "":
|
210 |
+
pipe.unload_lora_weights()
|
211 |
+
if motion != "":
|
212 |
+
pipe.load_lora_weights(motion, adapter_name="motion")
|
213 |
+
pipe.fuse_lora()
|
214 |
+
pipe.set_adapters("motion", [0.7])
|
215 |
+
last_motion = motion
|
216 |
+
|
217 |
+
pipe.to(device,dtype=dtype)
|
218 |
+
|
219 |
+
calc_out.append(
|
220 |
+
pipe(
|
221 |
+
prompt=p1,
|
222 |
+
negative_prompt=p2,
|
223 |
+
height=height,
|
224 |
+
width=width,
|
225 |
+
ip_adapter_image=img.convert("RGB"),
|
226 |
+
num_inference_steps=step,
|
227 |
+
guidance_scale=accu,
|
228 |
+
num_frames=(fps*time)
|
229 |
+
)
|
230 |
+
)
|
231 |
|
232 |
inp = list(inp)
|
233 |
|
|
|
250 |
ln = len(result)
|
251 |
|
252 |
parargs = [[calc,*inp] for i in range(ln)]
|
253 |
+
parallel(parargs)
|
254 |
names = []
|
255 |
+
for i in calc_out:
|
256 |
name = generate_random_string(12)+".png"
|
257 |
export_to_gif(i.frames[0],name,fps=fps)
|
258 |
names.append( name )
|
|
|
313 |
prompt.submit,
|
314 |
prompt2.submit
|
315 |
],
|
316 |
+
fn=handle_generate,
|
317 |
inputs=[img,prompt,prompt2,motion],
|
318 |
outputs=result
|
319 |
)
|