Fix DownloadButton schema error, upgrade gradio
Browse files- app.py +27 -8
- 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)
|
| 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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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.
|
|
|
|
| 182 |
|
| 183 |
-
generate_btn.click(
|
| 184 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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.
|
| 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
|
|
|