Spaces:
Runtime error
Runtime error
Commit
•
ad223ef
1
Parent(s):
9dccf54
add more
Browse files
app.py
CHANGED
@@ -4,6 +4,7 @@ import gradio as gr
|
|
4 |
from datasets import load_dataset
|
5 |
from PIL import Image
|
6 |
|
|
|
7 |
# from model import get_sd_small, get_sd_tiny, get_sd_every
|
8 |
from trans_google import google_translator
|
9 |
import replicate
|
@@ -52,7 +53,6 @@ re_sampler = [
|
|
52 |
rand = random.Random()
|
53 |
translator = google_translator()
|
54 |
|
55 |
-
|
56 |
# tiny_pipe = get_sd_tiny()
|
57 |
# small_pipe = get_sd_small()
|
58 |
# every_pipe = get_sd_every()
|
@@ -66,8 +66,29 @@ translator = google_translator()
|
|
66 |
# else:
|
67 |
# return every_pipe
|
68 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
69 |
|
70 |
-
def infer(prompt: str, negative: str, width: int, height: int, sampler: str, steps: int, seed: int, scale):
|
71 |
global is_gpu_busy
|
72 |
|
73 |
if seed == 0:
|
@@ -350,7 +371,7 @@ with block:
|
|
350 |
Also Change params to have a try <br />
|
351 |
more size may cost more time. <br />
|
352 |
It's just a simplified demo, you can use more advanced features optimize image quality <br />"""
|
353 |
-
tutorial_link = "https://docs.cworld.ai/docs/cworld-ai
|
354 |
|
355 |
gr.HTML(
|
356 |
f"""
|
|
|
4 |
from datasets import load_dataset
|
5 |
from PIL import Image
|
6 |
|
7 |
+
from set import ExpiringMap
|
8 |
# from model import get_sd_small, get_sd_tiny, get_sd_every
|
9 |
from trans_google import google_translator
|
10 |
import replicate
|
|
|
53 |
rand = random.Random()
|
54 |
translator = google_translator()
|
55 |
|
|
|
56 |
# tiny_pipe = get_sd_tiny()
|
57 |
# small_pipe = get_sd_small()
|
58 |
# every_pipe = get_sd_every()
|
|
|
66 |
# else:
|
67 |
# return every_pipe
|
68 |
|
69 |
+
time_client_map = ExpiringMap()
|
70 |
+
count_client_map = ExpiringMap()
|
71 |
+
|
72 |
+
|
73 |
+
def infer(prompt: str, negative: str, width: int, height: int, sampler: str,
|
74 |
+
steps: int, seed: int, scale, request: gr.Request):
|
75 |
+
client_ip = request.client.host
|
76 |
+
if client_ip != '127.0.0.1' and client_ip != 'localhost' and client_ip != '0.0.0.0':
|
77 |
+
if time_client_map.get(client_ip):
|
78 |
+
return "Too many requests from this IP, please try again later."
|
79 |
+
else:
|
80 |
+
time_client_map.put(client_ip, 1, 10) # 添加一个过期时间为 10 秒的项
|
81 |
+
|
82 |
+
count = count_client_map.get(client_ip)
|
83 |
+
if count is None:
|
84 |
+
count = 0
|
85 |
+
|
86 |
+
count += 1
|
87 |
+
if count > 5:
|
88 |
+
return "Too many requests from this IP, please try again later."
|
89 |
+
else:
|
90 |
+
count_client_map.put(client_ip, count, 24 * 60 * 60) # 添加一个过期时间为 24 小时的项
|
91 |
|
|
|
92 |
global is_gpu_busy
|
93 |
|
94 |
if seed == 0:
|
|
|
371 |
Also Change params to have a try <br />
|
372 |
more size may cost more time. <br />
|
373 |
It's just a simplified demo, you can use more advanced features optimize image quality <br />"""
|
374 |
+
tutorial_link = "https://docs.cworld.ai/docs/cworld-ai/quick-start-stable-diffusion"
|
375 |
|
376 |
gr.HTML(
|
377 |
f"""
|
set.py
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from datetime import datetime, timedelta
|
2 |
+
|
3 |
+
|
4 |
+
class ExpiringMap:
|
5 |
+
def __init__(self):
|
6 |
+
self.data = defaultdict(dict)
|
7 |
+
|
8 |
+
def put(self, key, value, expire_time):
|
9 |
+
current_time = datetime.now()
|
10 |
+
expire_timestamp = current_time + timedelta(seconds=expire_time)
|
11 |
+
self.data[key] = {'value': value, 'expire_time': expire_timestamp}
|
12 |
+
|
13 |
+
def get(self, key):
|
14 |
+
current_time = datetime.now()
|
15 |
+
if key in self.data and self.data[key]['expire_time'] > current_time:
|
16 |
+
return self.data[key]['value']
|
17 |
+
else:
|
18 |
+
return None
|
19 |
+
|
20 |
+
def remove(self, key):
|
21 |
+
if key in self.data:
|
22 |
+
del self.data[key]
|