Spaces:
Runtime error
Runtime error
lionelgarnier
commited on
Commit
·
5e367a0
1
Parent(s):
03778fa
enhance text generation: progress and error message
Browse files
app.py
CHANGED
@@ -65,7 +65,7 @@ def get_text_gen_pipeline():
|
|
65 |
return _text_gen_pipeline
|
66 |
|
67 |
@spaces.GPU()
|
68 |
-
def refine_prompt(prompt):
|
69 |
text_gen = get_text_gen_pipeline()
|
70 |
if text_gen is None:
|
71 |
return "Text generation model is unavailable."
|
@@ -73,7 +73,9 @@ def refine_prompt(prompt):
|
|
73 |
messages = [
|
74 |
{"role": "system", "content": "Vous êtes un designer produit avec de solides connaissances dans la génération de texte en image. Vous recevrez une demande de produit sous forme de description succincte, et votre mission sera d'imaginer un nouveau design de produit répondant à ce besoin.\n\nLe livrable (réponse générée) sera exclusivement un texte de prompt pour l'IA de texte to image FLUX.1-schnell.\n\nCe prompt devra inclure une description visuelle de l'objet mentionnant explicitement les aspects indispensables de sa fonction.\nA coté de ça vous devez aussi explicitement mentionner dans ce prompt les caractéristiques esthétiques/photo du rendu image (ex : photoréaliste, haute qualité, focale, grain, etc.), sachant que l'image sera l'image principale de cet objet dans le catalogue produit. Le fond de l'image générée doit être entièrement blanc.\nLe prompt doit être sans narration, peut être long mais ne doit pas dépasser 77 jetons."}, {"role": "user", "content": prompt},
|
75 |
]
|
76 |
-
|
|
|
|
|
77 |
|
78 |
# Extract just the assistant's content from the response
|
79 |
try:
|
@@ -83,11 +85,11 @@ def refine_prompt(prompt):
|
|
83 |
if not assistant_messages:
|
84 |
return "Error: No assistant response found"
|
85 |
assistant_content = assistant_messages[-1]['content']
|
86 |
-
return assistant_content
|
87 |
except (KeyError, IndexError):
|
88 |
-
return "Error: Unexpected response format from the model"
|
89 |
except Exception as e:
|
90 |
-
return f"Error refining prompt: {str(e)}"
|
91 |
|
92 |
def validate_dimensions(width, height):
|
93 |
if width * height > MAX_IMAGE_SIZE * MAX_IMAGE_SIZE:
|
@@ -254,7 +256,7 @@ def create_interface():
|
|
254 |
triggers=[prompt_button.click, prompt.submit],
|
255 |
fn=refine_prompt,
|
256 |
inputs=[prompt],
|
257 |
-
outputs=[refined_prompt]
|
258 |
)
|
259 |
|
260 |
gr.on(
|
|
|
65 |
return _text_gen_pipeline
|
66 |
|
67 |
@spaces.GPU()
|
68 |
+
def refine_prompt(prompt, progress=gr.Progress(track_tqdm=True)):
|
69 |
text_gen = get_text_gen_pipeline()
|
70 |
if text_gen is None:
|
71 |
return "Text generation model is unavailable."
|
|
|
73 |
messages = [
|
74 |
{"role": "system", "content": "Vous êtes un designer produit avec de solides connaissances dans la génération de texte en image. Vous recevrez une demande de produit sous forme de description succincte, et votre mission sera d'imaginer un nouveau design de produit répondant à ce besoin.\n\nLe livrable (réponse générée) sera exclusivement un texte de prompt pour l'IA de texte to image FLUX.1-schnell.\n\nCe prompt devra inclure une description visuelle de l'objet mentionnant explicitement les aspects indispensables de sa fonction.\nA coté de ça vous devez aussi explicitement mentionner dans ce prompt les caractéristiques esthétiques/photo du rendu image (ex : photoréaliste, haute qualité, focale, grain, etc.), sachant que l'image sera l'image principale de cet objet dans le catalogue produit. Le fond de l'image générée doit être entièrement blanc.\nLe prompt doit être sans narration, peut être long mais ne doit pas dépasser 77 jetons."}, {"role": "user", "content": prompt},
|
75 |
]
|
76 |
+
with progress.tqdm(total=1, desc="Generating text") as pbar:
|
77 |
+
refined_prompt = text_gen(messages)
|
78 |
+
pbar.update(1)
|
79 |
|
80 |
# Extract just the assistant's content from the response
|
81 |
try:
|
|
|
85 |
if not assistant_messages:
|
86 |
return "Error: No assistant response found"
|
87 |
assistant_content = assistant_messages[-1]['content']
|
88 |
+
return assistant_content, "Prompt refined successfully!"
|
89 |
except (KeyError, IndexError):
|
90 |
+
return "", "Error: Unexpected response format from the model"
|
91 |
except Exception as e:
|
92 |
+
return "", f"Error refining prompt: {str(e)}"
|
93 |
|
94 |
def validate_dimensions(width, height):
|
95 |
if width * height > MAX_IMAGE_SIZE * MAX_IMAGE_SIZE:
|
|
|
256 |
triggers=[prompt_button.click, prompt.submit],
|
257 |
fn=refine_prompt,
|
258 |
inputs=[prompt],
|
259 |
+
outputs=[refined_prompt, error_box]
|
260 |
)
|
261 |
|
262 |
gr.on(
|