Spaces:
Sleeping
Sleeping
| """ | |
| Generate placeholder example images for the Gradio UI examples panel. | |
| Run once before publishing to HuggingFace Spaces. | |
| python create_example_assets.py | |
| """ | |
| import os | |
| import numpy as np | |
| from PIL import Image, ImageDraw, ImageFont | |
| EXAMPLES = [ | |
| ("example_shirt.jpg", "Shirt", (200, 210, 230)), | |
| ("example_tshirt.jpg", "T-Shirt", (230, 200, 200)), | |
| ("example_dress.jpg", "Dress", (200, 230, 210)), | |
| ("example_trousers.jpg", "Trousers", (210, 200, 230)), | |
| ] | |
| def draw_wrinkle_lines(draw, x0, y0, x1, y1, color, n=12): | |
| """Draw random curved wrinkle lines within a bounding box.""" | |
| import random | |
| rng = random.Random(42) | |
| for _ in range(n): | |
| y = rng.randint(y0, y1) | |
| pts = [] | |
| for xi in range(x0, x1, 4): | |
| yi = y + rng.randint(-6, 6) | |
| pts.append((xi, yi)) | |
| for i in range(len(pts) - 1): | |
| draw.line([pts[i], pts[i + 1]], fill=color, width=1) | |
| def create_placeholder(filename: str, label: str, color: tuple): | |
| W, H = 400, 600 | |
| img = Image.new("RGB", (W, H), (245, 245, 245)) | |
| draw = ImageDraw.Draw(img) | |
| # body silhouette | |
| draw.ellipse([130, 30, 270, 140], fill=(210, 180, 140)) # head | |
| draw.rectangle([120, 140, 280, 420], fill=color) # torso / shirt | |
| draw.rectangle([120, 420, 195, 590], fill=(180, 160, 120)) # left leg | |
| draw.rectangle([205, 420, 280, 590], fill=(180, 160, 120)) # right leg | |
| draw.rectangle([60, 150, 120, 330], fill=color) # left arm | |
| draw.rectangle([280, 150, 340, 330], fill=color) # right arm | |
| # wrinkle lines on shirt | |
| wrinkle_color = tuple(max(c - 40, 0) for c in color) | |
| draw_wrinkle_lines(draw, 125, 160, 275, 410, wrinkle_color, n=18) | |
| draw_wrinkle_lines(draw, 65, 155, 115, 325, wrinkle_color, n=8) | |
| draw_wrinkle_lines(draw, 285, 155, 335, 325, wrinkle_color, n=8) | |
| # label | |
| try: | |
| font = ImageFont.truetype( | |
| "/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf", 20 | |
| ) | |
| except Exception: | |
| font = ImageFont.load_default() | |
| draw.rectangle([0, 0, W, 36], fill=(40, 40, 40)) | |
| draw.text((10, 8), f"Example: {label} (wrinkled)", fill=(255, 255, 255), font=font) | |
| out_path = os.path.join("assets", filename) | |
| img.save(out_path, quality=92) | |
| print(f" Saved {out_path}") | |
| if __name__ == "__main__": | |
| os.makedirs("assets", exist_ok=True) | |
| for fname, lbl, col in EXAMPLES: | |
| create_placeholder(fname, lbl, col) | |
| print("Done — example assets saved to assets/") | |