vladd19 commited on
Commit
0f42e34
·
verified ·
1 Parent(s): 859ece5

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +14 -12
app.py CHANGED
@@ -12,13 +12,16 @@ from Gradio_UI import GradioUI
12
  # Below is an example of a tool that does nothing. Amaze us with your creativity !
13
  from smolagents.agent_types import AgentImage # 🔑 Импортируем AgentImage
14
 
 
 
 
15
  @tool
16
  def generate_image(
17
  prompt: str,
18
  negative_prompt: str = "blurry, text, watermark, low quality",
19
  width: int = 1024,
20
  height: int = 1024
21
- ) -> AgentImage: # 🔑 Указываем тип возвращаемого значения AgentImage
22
  """
23
  Генерирует изображение по текстовому описанию.
24
 
@@ -38,7 +41,7 @@ def generate_image(
38
  from huggingface_hub import InferenceClient
39
  from PIL import Image
40
  import io
41
- import os, tempfile, sys
42
 
43
  print(f"🔍 generate_image: prompt='{prompt[:50]}...', size={width}x{height}", file=sys.stderr)
44
 
@@ -55,21 +58,20 @@ def generate_image(
55
  guidance_scale=3.5
56
  )
57
 
58
- # Получаем PIL объект
59
  if isinstance(result, Image.Image):
60
  image = result
61
  else:
62
  image = Image.open(io.BytesIO(result))
63
-
64
- # 🔑 Возвращаем сохранение во временный файл
65
- with tempfile.NamedTemporaryFile(suffix=".png", delete=False) as tmp:
66
- image.save(tmp.name, format="PNG")
67
- file_path = tmp.name
68
 
69
- print(f"✅ generate_image: сохранено в {file_path}", file=sys.stderr)
 
 
 
 
70
 
71
- # 🔑 Возвращаем AgentImage, передав ему путь к сохраненному файлу!
72
- return AgentImage(file_path)
73
 
74
  except Exception as e:
75
  print(f"❌ generate_image exception: {e}", file=sys.stderr)
@@ -113,7 +115,7 @@ with open("prompts.yaml", 'r') as stream:
113
 
114
  agent = CodeAgent(
115
  model=model,
116
- tools=[final_answer, image_generation_tool], ## add your tools here (don't remove final answer)
117
  max_steps=6,
118
  verbosity_level=1,
119
  grammar=None,
 
12
  # Below is an example of a tool that does nothing. Amaze us with your creativity !
13
  from smolagents.agent_types import AgentImage # 🔑 Импортируем AgentImage
14
 
15
+ from smolagents.agent_types import AgentImage
16
+ from PIL import Image
17
+
18
  @tool
19
  def generate_image(
20
  prompt: str,
21
  negative_prompt: str = "blurry, text, watermark, low quality",
22
  width: int = 1024,
23
  height: int = 1024
24
+ ) -> AgentImage:
25
  """
26
  Генерирует изображение по текстовому описанию.
27
 
 
41
  from huggingface_hub import InferenceClient
42
  from PIL import Image
43
  import io
44
+ import os, sys
45
 
46
  print(f"🔍 generate_image: prompt='{prompt[:50]}...', size={width}x{height}", file=sys.stderr)
47
 
 
58
  guidance_scale=3.5
59
  )
60
 
61
+ # 1. Получаем PIL объект
62
  if isinstance(result, Image.Image):
63
  image = result
64
  else:
65
  image = Image.open(io.BytesIO(result))
 
 
 
 
 
66
 
67
+ # 2. 🔑 Форсируем загрузку пикселей в оперативную память!
68
+ # Это решает проблему "ленивой загрузки" PIL и предотвращает размер 0x0
69
+ image.load()
70
+
71
+ print(f"✅ generate_image: изображение {image.size} успешно сгенерировано!", file=sys.stderr)
72
 
73
+ # 3. 🔑 Передаем в AgentImage САМ ОБЪЕКТ КАРТИНКИ (не путь к файлу!)
74
+ return AgentImage(image)
75
 
76
  except Exception as e:
77
  print(f"❌ generate_image exception: {e}", file=sys.stderr)
 
115
 
116
  agent = CodeAgent(
117
  model=model,
118
+ tools=[final_answer, generate_image], ## add your tools here (don't remove final answer)
119
  max_steps=6,
120
  verbosity_level=1,
121
  grammar=None,