BlakePeavy commited on
Commit
df5e01f
·
verified ·
1 Parent(s): 885a6d6

Deploy BitPixelLM Gradio Space

Browse files
Files changed (3) hide show
  1. README.md +1 -1
  2. app.py +17 -5
  3. requirements.txt +0 -1
README.md CHANGED
@@ -4,7 +4,7 @@ emoji: 🎨
4
  colorFrom: purple
5
  colorTo: blue
6
  sdk: gradio
7
- sdk_version: "5.20.0"
8
  app_file: app.py
9
  python_version: "3.10"
10
  pinned: false
 
4
  colorFrom: purple
5
  colorTo: blue
6
  sdk: gradio
7
+ sdk_version: "5.5.0"
8
  app_file: app.py
9
  python_version: "3.10"
10
  pinned: false
app.py CHANGED
@@ -114,11 +114,23 @@ EXAMPLES = [
114
  "a dark pixel art skeleton",
115
  ]
116
 
117
- def generate_interface(prompt, temperature, top_k, top_p, num_samples, scale):
118
- return generate(prompt, temperature, top_k, top_p, num_samples, scale)
 
 
 
 
 
 
 
 
 
 
 
 
119
 
120
  demo = gr.Interface(
121
- fn=generate_interface,
122
  inputs=[
123
  gr.Textbox(label="Prompt", placeholder="a red pixel art sword"),
124
  gr.Slider(0.1, 2.0, value=0.8, step=0.05, label="Temperature"),
@@ -127,9 +139,9 @@ demo = gr.Interface(
127
  gr.Slider(1, 8, value=4, step=1, label="Samples"),
128
  gr.Slider(1, 16, value=8, step=1, label="Upscale (8=256px)"),
129
  ],
130
- outputs=gr.Gallery(label="Generated Pixel Art", columns=4, rows=2, type="pil"),
131
  title="BitPixelLM - Pixel Art Generator",
132
- description="Generate 32x32 pixel art sprites from text prompts using BitPixelLM (BitNet b1.58, 7.4M params).",
133
  examples=[[ex, 0.8, 40, 0.9, 4, 8] for ex in EXAMPLES],
134
  cache_examples=False,
135
  )
 
114
  "a dark pixel art skeleton",
115
  ]
116
 
117
+ def generate_tiled(prompt, temperature, top_k, top_p, num_samples, scale):
118
+ """Return all samples tiled into a single image."""
119
+ import numpy as np
120
+ imgs = generate(prompt, temperature, top_k, top_p, num_samples, scale)
121
+ if not imgs:
122
+ return None
123
+ w, h = imgs[0].size
124
+ n = len(imgs)
125
+ cols = min(n, 4)
126
+ rows = (n + cols - 1) // cols
127
+ canvas = Image.new("RGB", (cols * w, rows * h), (30, 30, 30))
128
+ for i, im in enumerate(imgs):
129
+ canvas.paste(im, ((i % cols) * w, (i // cols) * h))
130
+ return canvas
131
 
132
  demo = gr.Interface(
133
+ fn=generate_tiled,
134
  inputs=[
135
  gr.Textbox(label="Prompt", placeholder="a red pixel art sword"),
136
  gr.Slider(0.1, 2.0, value=0.8, step=0.05, label="Temperature"),
 
139
  gr.Slider(1, 8, value=4, step=1, label="Samples"),
140
  gr.Slider(1, 16, value=8, step=1, label="Upscale (8=256px)"),
141
  ],
142
+ outputs=gr.Image(label="Generated Pixel Art", type="pil"),
143
  title="BitPixelLM - Pixel Art Generator",
144
+ description="Generate 32x32 pixel art sprites from text prompts using BitPixelLM (BitNet b1.58, 7.4M params). Samples are tiled into one image.",
145
  examples=[[ex, 0.8, 40, 0.9, 4, 8] for ex in EXAMPLES],
146
  cache_examples=False,
147
  )
requirements.txt CHANGED
@@ -1,4 +1,3 @@
1
  torch>=2.0.0
2
  numpy
3
  Pillow
4
- gradio>=5.0.0
 
1
  torch>=2.0.0
2
  numpy
3
  Pillow