twarner commited on
Commit
41a90c1
·
1 Parent(s): 1d11bfa

Fix DownloadButton schema error, upgrade gradio

Browse files
Files changed (2) hide show
  1. app.py +27 -8
  2. requirements.txt +1 -2
app.py CHANGED
@@ -1,6 +1,7 @@
1
  """dcode Gradio Space - Text to Gcode inference."""
2
 
3
  import re
 
4
  import gradio as gr
5
  import torch
6
  from transformers import AutoModelForSeq2SeqLM, AutoTokenizer
@@ -128,18 +129,28 @@ def gcode_to_svg(gcode: str) -> str:
128
  generator = GcodeGenerator()
129
 
130
 
131
- def generate(prompt: str, temperature: float) -> tuple[str, str, str]:
132
  """Generate gcode from prompt."""
133
  if not prompt.strip():
134
- return "", "", "Enter a prompt"
135
 
136
  try:
137
  gcode = generator.generate(prompt, temperature=temperature)
138
  svg = gcode_to_svg(gcode)
139
  status = f"✓ Generated {len(gcode.split(chr(10)))} lines, machine compatible"
140
- return gcode, svg, status
 
 
 
 
 
 
 
 
 
 
141
  except Exception as e:
142
- return "", "", f"Error: {e}"
143
 
144
 
145
  # Custom CSS
@@ -178,12 +189,20 @@ with gr.Blocks(css=custom_css, theme=gr.themes.Base(primary_hue="green")) as dem
178
  gcode_output = gr.Textbox(label="Gcode", lines=10, show_copy_button=True)
179
 
180
  with gr.Row():
181
- gr.DownloadButton("Download Gcode", value=lambda: None, visible=False)
 
182
 
183
- generate_btn.click(generate, [prompt, temperature], [gcode_output, preview, status])
184
- prompt.submit(generate, [prompt, temperature], [gcode_output, preview, status])
 
 
 
 
 
 
 
 
185
 
186
 
187
  if __name__ == "__main__":
188
  demo.launch()
189
-
 
1
  """dcode Gradio Space - Text to Gcode inference."""
2
 
3
  import re
4
+ import tempfile
5
  import gradio as gr
6
  import torch
7
  from transformers import AutoModelForSeq2SeqLM, AutoTokenizer
 
129
  generator = GcodeGenerator()
130
 
131
 
132
+ def generate(prompt: str, temperature: float):
133
  """Generate gcode from prompt."""
134
  if not prompt.strip():
135
+ return "", "", "Enter a prompt", None, None
136
 
137
  try:
138
  gcode = generator.generate(prompt, temperature=temperature)
139
  svg = gcode_to_svg(gcode)
140
  status = f"✓ Generated {len(gcode.split(chr(10)))} lines, machine compatible"
141
+
142
+ # Create temp files for download
143
+ gcode_file = tempfile.NamedTemporaryFile(mode='w', suffix='.gcode', delete=False)
144
+ gcode_file.write(gcode)
145
+ gcode_file.close()
146
+
147
+ svg_file = tempfile.NamedTemporaryFile(mode='w', suffix='.svg', delete=False)
148
+ svg_file.write(svg)
149
+ svg_file.close()
150
+
151
+ return gcode, svg, status, gcode_file.name, svg_file.name
152
  except Exception as e:
153
+ return "", "", f"Error: {e}", None, None
154
 
155
 
156
  # Custom CSS
 
189
  gcode_output = gr.Textbox(label="Gcode", lines=10, show_copy_button=True)
190
 
191
  with gr.Row():
192
+ gcode_download = gr.File(label="Download Gcode")
193
+ svg_download = gr.File(label="Download SVG")
194
 
195
+ generate_btn.click(
196
+ generate,
197
+ [prompt, temperature],
198
+ [gcode_output, preview, status, gcode_download, svg_download]
199
+ )
200
+ prompt.submit(
201
+ generate,
202
+ [prompt, temperature],
203
+ [gcode_output, preview, status, gcode_download, svg_download]
204
+ )
205
 
206
 
207
  if __name__ == "__main__":
208
  demo.launch()
 
requirements.txt CHANGED
@@ -1,5 +1,4 @@
1
- gradio>=4.0
2
  torch>=2.0
3
  transformers>=4.36
4
  accelerate>=0.25
5
-
 
1
+ gradio>=4.44.1
2
  torch>=2.0
3
  transformers>=4.36
4
  accelerate>=0.25