denali-toy-store / tools /make_samples.py
msudharsanan's picture
feat: Denali Hang-Tag Grader (toy-store) Space — initial push
de2378a verified
Raw
History Blame Contribute Delete
2.13 kB
"""Generate sample toy photos for the Gradio Examples rail (one-click demos
for judges/users without a toy at hand). Simple flat illustrations in the
brand palette, 640×640 PNG."""
from pathlib import Path
from PIL import Image, ImageDraw
OUT = Path(__file__).resolve().parent.parent / "static" / "samples"
OUT.mkdir(parents=True, exist_ok=True)
BG = (232, 217, 196)
INK = (58, 44, 34)
def canvas():
img = Image.new("RGB", (640, 640), BG)
return img, ImageDraw.Draw(img)
# --- plush bear ---
img, d = canvas()
fur = (181, 128, 63)
d.ellipse((230, 150, 410, 330), fill=fur) # head
d.ellipse((212, 132, 288, 208), fill=fur) # ears
d.ellipse((352, 132, 428, 208), fill=fur)
d.ellipse((210, 300, 430, 560), fill=fur) # body
d.ellipse((281, 221, 299, 239), fill=INK) # eyes
d.ellipse((341, 221, 359, 239), fill=INK)
d.ellipse((309, 259, 331, 281), fill=INK) # nose
img.save(OUT / "plush-bear.png")
# --- toy robot ---
img, d = canvas()
body = (122, 138, 160)
d.rounded_rectangle((220, 200, 420, 400), 24, fill=body) # torso
d.rounded_rectangle((255, 110, 385, 215), 18, fill=body) # head
d.ellipse((285, 140, 305, 160), fill=INK)
d.ellipse((335, 140, 355, 160), fill=INK)
d.rectangle((300, 178, 340, 186), fill=INK)
d.rectangle((170, 230, 215, 360), fill=body) # arms
d.rectangle((425, 230, 470, 360), fill=body)
d.rectangle((255, 405, 300, 520), fill=body) # legs
d.rectangle((340, 405, 385, 520), fill=body)
d.line((318, 110, 318, 70), fill=INK, width=6) # antenna
d.ellipse((308, 50, 330, 72), fill=(216, 84, 47))
img.save(OUT / "toy-robot.png")
# --- building blocks ---
img, d = canvas()
cols = [(216, 84, 47), (43, 179, 156), (232, 181, 74)]
d.rounded_rectangle((170, 360, 320, 510), 12, fill=cols[0])
d.rounded_rectangle((330, 360, 480, 510), 12, fill=cols[1])
d.rounded_rectangle((250, 200, 400, 350), 12, fill=cols[2])
for x0, y0 in [(195, 385), (355, 385), (275, 225)]:
d.ellipse((x0 + 35, y0 + 35, x0 + 65, y0 + 65), outline=INK, width=5)
img.save(OUT / "building-blocks.png")
print("3 samples →", OUT)