Spaces:
Sleeping
Sleeping
Tobias Geisler
commited on
Commit
·
905eabc
1
Parent(s):
bd4a9d6
fixed user_id display
Browse files
app.py
CHANGED
@@ -6,6 +6,7 @@ import os
|
|
6 |
from openai import OpenAI
|
7 |
import random
|
8 |
import uuid
|
|
|
9 |
|
10 |
load_dotenv()
|
11 |
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))
|
@@ -29,7 +30,7 @@ def enhance_prompt(original_prompt):
|
|
29 |
{"role": "system", "content": "Verbessere den folgenden Bildgenerierungsprompt, um ihn detaillierter und kreativer zu machen."},
|
30 |
{"role": "user", "content": original_prompt}
|
31 |
],
|
32 |
-
max_tokens=
|
33 |
)
|
34 |
enhanced_prompt = response.choices[0].message.content.strip()
|
35 |
return enhanced_prompt
|
@@ -39,19 +40,22 @@ def enhance_prompt(original_prompt):
|
|
39 |
|
40 |
def generate_image(prompt, use_magic_prompt, style, password, user_id):
|
41 |
global last_generation_time
|
|
|
|
|
42 |
|
43 |
if password != APP_PASSWORD:
|
|
|
44 |
return "Falsches Passwort. Bitte versuche es erneut.", None
|
45 |
|
46 |
current_time = time.time()
|
47 |
if current_time - last_generation_time[user_id] < GENERATION_TIMEOUT:
|
48 |
remaining_time = int(GENERATION_TIMEOUT - (current_time - last_generation_time[user_id]))
|
|
|
49 |
return f"Bitte warte {remaining_time} Sekunden zwischen den Bildgenerierungen.", None
|
50 |
|
51 |
if use_magic_prompt:
|
52 |
prompt = enhance_prompt(prompt)
|
53 |
-
|
54 |
-
print("Finaler Prompt:", prompt)
|
55 |
|
56 |
try:
|
57 |
response = client.images.generate(
|
@@ -76,9 +80,6 @@ def generate_image(prompt, use_magic_prompt, style, password, user_id):
|
|
76 |
print("Ein Fehler ist aufgetreten:", e)
|
77 |
return f"Ein Fehler ist beim Generieren des Bildes aufgetreten: {error_message}", None
|
78 |
|
79 |
-
def get_user_id():
|
80 |
-
return str(uuid.uuid4())
|
81 |
-
|
82 |
examples = [
|
83 |
"Astronaut im Dschungel, kalte Farbpalette, gedämpfte Farben, detailliert, 8k",
|
84 |
"Ein Astronaut reitet auf einem grünen Pferd",
|
@@ -97,12 +98,22 @@ def update_button_state(user_id):
|
|
97 |
return gr.update(value=f"Bitte warte {remaining_time} Sekunden", interactive=False)
|
98 |
else:
|
99 |
return gr.update(value="Bild generieren", interactive=True)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
100 |
|
101 |
with gr.Blocks() as demo:
|
102 |
-
user_id = gr.State(
|
103 |
|
104 |
gr.Markdown("# codora DALL-E 3 Bildgenerator")
|
105 |
-
gr.Markdown(
|
106 |
gr.Markdown(f"Gib einen Bildprompt ein und verwende optional die magische Prompt-Funktion, um ihn zu verbessern. Du kannst nur ein Bild alle {GENERATION_TIMEOUT} Sekunden generieren.")
|
107 |
|
108 |
with gr.Row():
|
@@ -133,6 +144,14 @@ with gr.Blocks() as demo:
|
|
133 |
outputs=[final_prompt, generated_image]
|
134 |
)
|
135 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
136 |
demo.load(
|
137 |
fn=update_button_state,
|
138 |
inputs=[user_id],
|
|
|
6 |
from openai import OpenAI
|
7 |
import random
|
8 |
import uuid
|
9 |
+
import secrets
|
10 |
|
11 |
load_dotenv()
|
12 |
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))
|
|
|
30 |
{"role": "system", "content": "Verbessere den folgenden Bildgenerierungsprompt, um ihn detaillierter und kreativer zu machen."},
|
31 |
{"role": "user", "content": original_prompt}
|
32 |
],
|
33 |
+
max_tokens=300
|
34 |
)
|
35 |
enhanced_prompt = response.choices[0].message.content.strip()
|
36 |
return enhanced_prompt
|
|
|
40 |
|
41 |
def generate_image(prompt, use_magic_prompt, style, password, user_id):
|
42 |
global last_generation_time
|
43 |
+
|
44 |
+
print(f"\nGenerierungsversuch von User {user_id} mit Prompt:\n{prompt}")
|
45 |
|
46 |
if password != APP_PASSWORD:
|
47 |
+
print("Generierung abgebrochen: Falsches Passwort.")
|
48 |
return "Falsches Passwort. Bitte versuche es erneut.", None
|
49 |
|
50 |
current_time = time.time()
|
51 |
if current_time - last_generation_time[user_id] < GENERATION_TIMEOUT:
|
52 |
remaining_time = int(GENERATION_TIMEOUT - (current_time - last_generation_time[user_id]))
|
53 |
+
print("Generierung abgebrochen: Cooldown noch nicht abgelaufen")
|
54 |
return f"Bitte warte {remaining_time} Sekunden zwischen den Bildgenerierungen.", None
|
55 |
|
56 |
if use_magic_prompt:
|
57 |
prompt = enhance_prompt(prompt)
|
58 |
+
print("\nFinaler Prompt:", prompt)
|
|
|
59 |
|
60 |
try:
|
61 |
response = client.images.generate(
|
|
|
80 |
print("Ein Fehler ist aufgetreten:", e)
|
81 |
return f"Ein Fehler ist beim Generieren des Bildes aufgetreten: {error_message}", None
|
82 |
|
|
|
|
|
|
|
83 |
examples = [
|
84 |
"Astronaut im Dschungel, kalte Farbpalette, gedämpfte Farben, detailliert, 8k",
|
85 |
"Ein Astronaut reitet auf einem grünen Pferd",
|
|
|
98 |
return gr.update(value=f"Bitte warte {remaining_time} Sekunden", interactive=False)
|
99 |
else:
|
100 |
return gr.update(value="Bild generieren", interactive=True)
|
101 |
+
|
102 |
+
def update_welcome_message(user_id):
|
103 |
+
return f"Willkommen, {user_id}!"
|
104 |
+
|
105 |
+
def generate_user_id():
|
106 |
+
return secrets.token_urlsafe(16)
|
107 |
+
|
108 |
+
def initialize_session():
|
109 |
+
new_user_id = generate_user_id()
|
110 |
+
return new_user_id, update_welcome_message(new_user_id)
|
111 |
|
112 |
with gr.Blocks() as demo:
|
113 |
+
user_id = gr.State(generate_user_id)
|
114 |
|
115 |
gr.Markdown("# codora DALL-E 3 Bildgenerator")
|
116 |
+
welcome_message = gr.Markdown("Willkommen!")
|
117 |
gr.Markdown(f"Gib einen Bildprompt ein und verwende optional die magische Prompt-Funktion, um ihn zu verbessern. Du kannst nur ein Bild alle {GENERATION_TIMEOUT} Sekunden generieren.")
|
118 |
|
119 |
with gr.Row():
|
|
|
144 |
outputs=[final_prompt, generated_image]
|
145 |
)
|
146 |
|
147 |
+
demo.load(fn=initialize_session, outputs=[user_id, welcome_message])
|
148 |
+
|
149 |
+
"""demo.load(
|
150 |
+
fn=update_welcome_message,
|
151 |
+
inputs=[user_id],
|
152 |
+
outputs=[welcome_message]
|
153 |
+
)
|
154 |
+
"""
|
155 |
demo.load(
|
156 |
fn=update_button_state,
|
157 |
inputs=[user_id],
|