marcomameli01 commited on
Commit
5d1d734
·
verified ·
1 Parent(s): 8c5c24b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +41 -1
app.py CHANGED
@@ -3,6 +3,7 @@ import datetime
3
  import requests
4
  import pytz
5
  import yaml
 
6
  from tools.final_answer import FinalAnswerTool
7
 
8
  from Gradio_UI import GradioUI
@@ -33,6 +34,44 @@ def get_current_time_in_timezone(timezone: str) -> str:
33
  except Exception as e:
34
  return f"Error fetching time for timezone '{timezone}': {str(e)}"
35
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36
 
37
  final_answer = FinalAnswerTool()
38
 
@@ -55,7 +94,8 @@ with open("prompts.yaml", 'r') as stream:
55
 
56
  agent = CodeAgent(
57
  model=model,
58
- tools=[final_answer], ## add your tools here (don't remove final answer)
 
59
  max_steps=6,
60
  verbosity_level=1,
61
  grammar=None,
 
3
  import requests
4
  import pytz
5
  import yaml
6
+ import torch
7
  from tools.final_answer import FinalAnswerTool
8
 
9
  from Gradio_UI import GradioUI
 
34
  except Exception as e:
35
  return f"Error fetching time for timezone '{timezone}': {str(e)}"
36
 
37
+ @tool
38
+ def generate_open_source_image(prompt: str) -> str:
39
+ """
40
+ Genera un'immagine a partire da un prompt di testo utilizzando un modello open source di diffusion (Stable Diffusion).
41
+
42
+ Args:
43
+ prompt: Una stringa contenente il prompt testuale da usare per generare l'immagine.
44
+
45
+ Returns:
46
+ Una stringa che rappresenta il percorso del file in cui l'immagine generata è stata salvata.
47
+ """
48
+ try:
49
+ # Importa il pipeline di Stable Diffusion
50
+ from diffusers import StableDiffusionPipeline
51
+
52
+ # Specifica l'ID del modello open source su Hugging Face
53
+ model_id = "stabilityai/stable-diffusion-2-1"
54
+
55
+ # Determina il dispositivo da usare (GPU se disponibile, altrimenti CPU)
56
+ device = "cuda" if torch.cuda.is_available() else "cpu"
57
+
58
+ # Carica il modello; utilizza torch.float16 se disponibile la GPU per prestazioni migliori
59
+ pipe = StableDiffusionPipeline.from_pretrained(
60
+ model_id,
61
+ torch_dtype=torch.float16 if device == "cuda" else torch.float32
62
+ )
63
+ pipe = pipe.to(device)
64
+
65
+ # Genera l'immagine a partire dal prompt
66
+ image = pipe(prompt).images[0]
67
+
68
+ # Crea un nome di file unico per salvare l'immagine
69
+ filename = f"generated_image_{datetime.datetime.now().strftime('%Y%m%d_%H%M%S')}.png"
70
+ image.save(filename)
71
+
72
+ return f"Immagine generata e salvata in: {filename}"
73
+ except Exception as e:
74
+ return f"Si è verificato un errore nella generazione dell'immagine: {str(e)}"
75
 
76
  final_answer = FinalAnswerTool()
77
 
 
94
 
95
  agent = CodeAgent(
96
  model=model,
97
+ tools=[final_answer,
98
+ generate_open_source_image], ## add your tools here (don't remove final answer)
99
  max_steps=6,
100
  verbosity_level=1,
101
  grammar=None,