Voiid-m commited on
Commit
d5cf56e
·
verified ·
1 Parent(s): 6658aa3
Files changed (1) hide show
  1. tools/image_wrapper.py +20 -15
tools/image_wrapper.py CHANGED
@@ -1,27 +1,32 @@
1
  from smolagents import tool
2
  import os
3
  from datetime import datetime
4
- from app import image_generation_tool
5
 
6
- # image_generation_tool est déjà chargé via load_tool(...)
 
7
 
8
- @tool
9
- def generate_image_and_save(prompt: str) -> str:
10
- """Génère une image à partir d'un prompt, la sauvegarde dans /tmp
11
- et renvoie le chemin du fichier enregistré.
12
- Args:
13
- prompt: description textuelle de l'image à générer.
14
- """
15
- # 1. Génération de l'image via le tool HF
16
- img = image_generation_tool(prompt=prompt)
17
 
18
- # 2. Création d'un nom de fichier unique
 
19
  ts = datetime.utcnow().strftime("%Y%m%d_%H%M%S")
20
  filename = f"generated_image_{ts}.webp"
21
  filepath = os.path.join("/tmp", filename)
22
-
23
- # 3. Sauvegarde (img est un objet PIL.Image.Image)
24
  img.save(filepath, format="WEBP")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25
 
26
- # 4. Retour d'un chemin affichable par Gradio
 
27
  return f"Image sauvegardée dans : {filepath}"
 
1
  from smolagents import tool
2
  import os
3
  from datetime import datetime
 
4
 
5
+ # Ce wrapper NE connaît PAS image_generation_tool.
6
+ # On lui passera la fonction au moment de l'appel.
7
 
 
 
 
 
 
 
 
 
 
8
 
9
+ def _save_image_to_tmp(img) -> str:
10
+ """Sauvegarde une image PIL dans /tmp et renvoie le chemin."""
11
  ts = datetime.utcnow().strftime("%Y%m%d_%H%M%S")
12
  filename = f"generated_image_{ts}.webp"
13
  filepath = os.path.join("/tmp", filename)
 
 
14
  img.save(filepath, format="WEBP")
15
+ return filepath
16
+
17
+
18
+ @tool
19
+ def generate_image_and_save(prompt: str, _image_tool=None) -> str:
20
+ """Génère une image via _image_tool, la sauvegarde dans /tmp et renvoie le chemin.
21
+ Args:
22
+ prompt: Description textuelle de l'image à générer.
23
+ _image_tool: fonction/tool à appeler, injectée depuis app.py.
24
+ """
25
+ if _image_tool is None:
26
+ return (
27
+ "Erreur: aucun tool d'image n'a été fourni à generate_image_and_save."
28
+ )
29
 
30
+ img = _image_tool(prompt=prompt)
31
+ filepath = _save_image_to_tmp(img)
32
  return f"Image sauvegardée dans : {filepath}"