Spaces:
Sleeping
Sleeping
Img view
Browse files- 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 |
-
#
|
|
|
|
| 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 |
-
|
|
|
|
| 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 |
-
|
|
|
|
| 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}"
|