lionelgarnier commited on
Commit
5e367a0
·
1 Parent(s): 03778fa

enhance text generation: progress and error message

Browse files
Files changed (1) hide show
  1. app.py +8 -6
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
- refined_prompt = text_gen(messages)
 
 
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(