Spaces:
Sleeping
Sleeping
Deploy BitPixelLM Gradio Space
Browse files- README.md +1 -1
- app.py +17 -5
- 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.
|
| 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
|
| 118 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 119 |
|
| 120 |
demo = gr.Interface(
|
| 121 |
-
fn=
|
| 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.
|
| 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
|
|
|