Ashrafb commited on
Commit
dc165b6
โ€ข
1 Parent(s): 5125f67

Create main.py

Browse files
Files changed (1) hide show
  1. main.py +113 -0
main.py ADDED
@@ -0,0 +1,113 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from fastapi import FastAPI
2
+ from fastapi.staticfiles import StaticFiles
3
+ from fastapi.responses import FileResponse
4
+ import os
5
+ import sys
6
+ import random
7
+ import string
8
+ import time
9
+ from queue import Queue
10
+ from threading import Thread
11
+
12
+ app = FastAPI()
13
+
14
+ text_gen = gr.Interface.load("models/Gustavosta/MagicPrompt-Stable-Diffusion")
15
+ proc1 = gr.Interface.load("models/dreamlike-art/dreamlike-photoreal-2.0")
16
+
17
+
18
+
19
+ def add_random_noise(prompt, noise_level=0.00):
20
+ if noise_level == 0:
21
+ noise_level = 0.00
22
+ percentage_noise = noise_level * 5
23
+ num_noise_chars = int(len(prompt) * (percentage_noise / 100))
24
+ noise_indices = random.sample(range(len(prompt)), num_noise_chars)
25
+ prompt_list = list(prompt)
26
+ noise_chars = list(string.ascii_letters + string.punctuation + ' ' + string.digits)
27
+ noise_chars.extend(['๐Ÿ˜', '๐Ÿ’ฉ', '๐Ÿ˜‚', '๐Ÿค”', '๐Ÿ˜Š', '๐Ÿค—', '๐Ÿ˜ญ', '๐Ÿ™„', '๐Ÿ˜ท', '๐Ÿคฏ', '๐Ÿคซ', '๐Ÿฅด', '๐Ÿ˜ด', '๐Ÿคฉ', '๐Ÿฅณ', '๐Ÿ˜”', '๐Ÿ˜ฉ', '๐Ÿคช', '๐Ÿ˜‡', '๐Ÿคข', '๐Ÿ˜ˆ', '๐Ÿ‘น', '๐Ÿ‘ป', '๐Ÿค–', '๐Ÿ‘ฝ', '๐Ÿ’€', '๐ŸŽƒ', '๐ŸŽ…', '๐ŸŽ„', '๐ŸŽ', '๐ŸŽ‚', '๐ŸŽ‰', '๐ŸŽˆ', '๐ŸŽŠ', '๐ŸŽฎ', 'โค๏ธ', '๐Ÿ’”', '๐Ÿ’•', '๐Ÿ’–', '๐Ÿ’—', '๐Ÿถ', '๐Ÿฑ', '๐Ÿญ', '๐Ÿน', '๐ŸฆŠ', '๐Ÿป', '๐Ÿจ', '๐Ÿฏ', '๐Ÿฆ', '๐Ÿ˜', '๐Ÿ”ฅ', '๐ŸŒง๏ธ', '๐ŸŒž', '๐ŸŒˆ', '๐Ÿ’ฅ', '๐ŸŒด', '๐ŸŒŠ', '๐ŸŒบ', '๐ŸŒป', '๐ŸŒธ', '๐ŸŽจ', '๐ŸŒ…', '๐ŸŒŒ', 'โ˜๏ธ', 'โ›ˆ๏ธ', 'โ„๏ธ', 'โ˜€๏ธ', '๐ŸŒค๏ธ', 'โ›…๏ธ', '๐ŸŒฅ๏ธ', '๐ŸŒฆ๏ธ', '๐ŸŒง๏ธ', '๐ŸŒฉ๏ธ', '๐ŸŒจ๏ธ', '๐ŸŒซ๏ธ', 'โ˜”๏ธ', '๐ŸŒฌ๏ธ', '๐Ÿ’จ', '๐ŸŒช๏ธ', '๐ŸŒˆ'])
28
+ for index in noise_indices:
29
+ prompt_list[index] = random.choice(noise_chars)
30
+ return "".join(prompt_list)
31
+
32
+ # Existing code...
33
+
34
+ import uuid # Import the UUID library
35
+
36
+ # Existing code...
37
+
38
+ # Existing code...
39
+
40
+ request_counter = 0 # Global counter to track requests
41
+
42
+ def send_it1(inputs, noise_level, proc=proc1):
43
+ global request_counter
44
+ request_counter += 1
45
+ timestamp = f"{time.time()}_{request_counter}"
46
+ prompt_with_noise = add_random_noise(inputs, noise_level) + f" - {timestamp}"
47
+
48
+ try:
49
+ while queue.qsize() >= queue_threshold:
50
+ time.sleep(2)
51
+ queue.put(prompt_with_noise)
52
+ output = proc(prompt_with_noise)
53
+ return output
54
+ except Exception as e:
55
+ # Display a generic error message to the user
56
+ raise gr.Error("Experiencing high demand. Please retry shortly. Thank you for your patience.")
57
+
58
+ import random
59
+
60
+ import random
61
+ import time
62
+
63
+ # ... (existing code)
64
+
65
+ import random
66
+ import time
67
+
68
+ # ... (existing code)
69
+
70
+ def get_prompts(prompt_text):
71
+ if not prompt_text:
72
+ return "Please enter text before generating prompts.ุฑุฌุงุก ุงุฏุฎู„ ุงู„ู†ุต ุงูˆู„ุง"
73
+ raise gr.Error("Please enter text before generating prompts.ุฑุฌุงุก ุงุฏุฎู„ ุงู„ู†ุต ุงูˆู„ุง")
74
+ else:
75
+ global request_counter
76
+ request_counter += 1
77
+ timestamp = f"{time.time()}_{request_counter}"
78
+
79
+ options = [
80
+ "Cyberpunk android",
81
+ "2060",
82
+ "newyork",
83
+ "style of laurie greasley" , "studio ghibli" , "akira toriyama" , "james gilleard" , "genshin impact" , "trending pixiv fanbox" , "acrylic palette knife, 4k, vibrant colors, devinart, trending on artstation, low details"
84
+ "Editorial Photography, Shot on 70mm lens, Depth of Field, Bokeh, DOF, Tilt Blur, Shutter Speed 1/1000, F/22, 32k, Super-Resolution, award winning,",
85
+ "high detail, warm lighting, godrays, vivid, beautiful, trending on artstation, by jordan grimmer, huge scene, grass, art greg rutkowski ",
86
+ "highly detailed, digital painting, artstation, illustration, art by artgerm and greg rutkowski and alphonse mucha.",
87
+ "Charlie Bowater, stanley artgerm lau, a character portrait, sots art, sharp focus, smooth, aesthetic, extremely detailed, octane render,solo, dark industrial background, rtx, rock clothes, cinematic light, intricate detail, highly detailed, high res, detailed facial features",
88
+ "portrait photograph" , "realistic" , "concept art" , "elegant, highly detailed" , "intricate, sharp focus, depth of field, f/1. 8, 85mm, medium shot, mid shot, (((professionally color graded)))" ," sharp focus, bright soft diffused light" , "(volumetric fog),",
89
+ "Cinematic film still" ," (dark city street:1.2)" , "(cold colors), damp, moist, intricate details" ,"shallow depth of field, [volumetric fog]" , "cinematic lighting, reflections, photographed on a Canon EOS R5, 50mm lens, F/2.8, HDR, 8k resolution" , "cinematic film still from cyberpunk movie" , "volumetric fog, (RAW, analog, masterpiece, best quality, soft particles, 8k, flawless perfect face, intricate details" , "trending on artstation, trending on cgsociety, dlsr, ultra sharp, hdr, rtx, antialiasing, canon 5d foto))" , "((skin details, high detailed skin texture))" , "(((perfect face))), (perfect eyes)))",
90
+
91
+ # Add other prompt options here...
92
+ ]
93
+
94
+ if prompt_text:
95
+ chosen_option = random.choice(options)
96
+ return text_gen(f"{prompt_text}, {chosen_option} - {timestamp}")
97
+ else:
98
+ return text_gen("", timestamp)
99
+
100
+ app.mount("/", StaticFiles(directory="static", html=True), name="static")
101
+
102
+ @app.get("/")
103
+ def index() -> FileResponse:
104
+ return FileResponse(path="/app/static/index.html", media_type="text/html")
105
+
106
+ @app.get("/generate_prompts")
107
+ def generate_prompts(prompt_text: str):
108
+ return get_prompts(prompt_text)
109
+
110
+ @app.get("/send_inputs")
111
+ def send_inputs(inputs: str, noise_level: float):
112
+ return send_it1(inputs, noise_level)
113
+