Ox1 Cursor commited on
Commit
5ee2642
·
1 Parent(s): 746317a

feat(sample): add pre-processed sample wardrobe with 50 garments

Browse files

Add "Cargar armario de ejemplo" button that instantly loads 50
pre-cataloged garments from Codatta/Fashion-1K dataset. Allows
demoing the full app (wardrobe, combinations, chat) without
waiting for VLM inference.

- scripts/build_sample_wardrobe.py: offline pipeline that downloads
Fashion-1K, runs detector + VLM, saves results to data/samples/
- data/samples/: 50 garment crops + catalog.json (1.7 MB)
- app.py: load_sample_wardrobe() handler + UI button in Capture tab

Co-authored-by: Cursor <cursoragent@cursor.com>

This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. app.py +40 -0
  2. data/samples/catalog.json +552 -0
  3. data/samples/garments/garment_001.jpg +0 -0
  4. data/samples/garments/garment_002.jpg +0 -0
  5. data/samples/garments/garment_003.jpg +0 -0
  6. data/samples/garments/garment_004.jpg +0 -0
  7. data/samples/garments/garment_005.jpg +0 -0
  8. data/samples/garments/garment_006.jpg +0 -0
  9. data/samples/garments/garment_007.jpg +0 -0
  10. data/samples/garments/garment_008.jpg +0 -0
  11. data/samples/garments/garment_009.jpg +0 -0
  12. data/samples/garments/garment_010.jpg +0 -0
  13. data/samples/garments/garment_011.jpg +0 -0
  14. data/samples/garments/garment_012.jpg +0 -0
  15. data/samples/garments/garment_013.jpg +0 -0
  16. data/samples/garments/garment_014.jpg +0 -0
  17. data/samples/garments/garment_015.jpg +0 -0
  18. data/samples/garments/garment_016.jpg +0 -0
  19. data/samples/garments/garment_017.jpg +0 -0
  20. data/samples/garments/garment_018.jpg +0 -0
  21. data/samples/garments/garment_019.jpg +0 -0
  22. data/samples/garments/garment_020.jpg +0 -0
  23. data/samples/garments/garment_021.jpg +0 -0
  24. data/samples/garments/garment_022.jpg +0 -0
  25. data/samples/garments/garment_023.jpg +0 -0
  26. data/samples/garments/garment_024.jpg +0 -0
  27. data/samples/garments/garment_025.jpg +0 -0
  28. data/samples/garments/garment_026.jpg +0 -0
  29. data/samples/garments/garment_027.jpg +0 -0
  30. data/samples/garments/garment_028.jpg +0 -0
  31. data/samples/garments/garment_029.jpg +0 -0
  32. data/samples/garments/garment_030.jpg +0 -0
  33. data/samples/garments/garment_031.jpg +0 -0
  34. data/samples/garments/garment_032.jpg +0 -0
  35. data/samples/garments/garment_033.jpg +0 -0
  36. data/samples/garments/garment_034.jpg +0 -0
  37. data/samples/garments/garment_035.jpg +0 -0
  38. data/samples/garments/garment_036.jpg +0 -0
  39. data/samples/garments/garment_037.jpg +0 -0
  40. data/samples/garments/garment_038.jpg +0 -0
  41. data/samples/garments/garment_039.jpg +0 -0
  42. data/samples/garments/garment_040.jpg +0 -0
  43. data/samples/garments/garment_041.jpg +0 -0
  44. data/samples/garments/garment_042.jpg +0 -0
  45. data/samples/garments/garment_043.jpg +0 -0
  46. data/samples/garments/garment_044.jpg +0 -0
  47. data/samples/garments/garment_045.jpg +0 -0
  48. data/samples/garments/garment_046.jpg +0 -0
  49. data/samples/garments/garment_047.jpg +0 -0
  50. data/samples/garments/garment_048.jpg +0 -0
app.py CHANGED
@@ -9,6 +9,7 @@ Built for the Build Small Hackathon (HuggingFace x Gradio, June 2026).
9
  import io
10
  import logging
11
  import os
 
12
  from pathlib import Path
13
 
14
  from dotenv import load_dotenv
@@ -166,6 +167,32 @@ def update_detection_backend(backend_name: str):
166
  return f"Backend actualizado: **{backend_name}**"
167
 
168
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
169
  # ---------------------------------------------------------------------------
170
  # Wardrobe tab handlers
171
  # ---------------------------------------------------------------------------
@@ -434,6 +461,19 @@ with gr.Blocks(title="Wardrobe AI") as demo:
434
  interactive=False,
435
  )
436
 
 
 
 
 
 
 
 
 
 
 
 
 
 
437
  with gr.Accordion("⚙️ Ajustes de detección", open=False):
438
  available_backends = list_available()
439
  if not available_backends:
 
9
  import io
10
  import logging
11
  import os
12
+ import shutil
13
  from pathlib import Path
14
 
15
  from dotenv import load_dotenv
 
167
  return f"Backend actualizado: **{backend_name}**"
168
 
169
 
170
+ # ---------------------------------------------------------------------------
171
+ # Sample wardrobe handler
172
+ # ---------------------------------------------------------------------------
173
+
174
+ SAMPLES_DIR = Path(__file__).resolve().parent / "data" / "samples"
175
+ DATA_DIR = Path(__file__).resolve().parent / "data"
176
+
177
+
178
+ def load_sample_wardrobe():
179
+ """Load the pre-processed sample wardrobe into the active catalog."""
180
+ if not SAMPLES_DIR.exists() or not (SAMPLES_DIR / "catalog.json").exists():
181
+ return "Datos de ejemplo no disponibles. Ejecuta scripts/build_sample_wardrobe.py primero."
182
+
183
+ shutil.copy(SAMPLES_DIR / "catalog.json", DATA_DIR / "catalog.json")
184
+
185
+ dest = DATA_DIR / "garments"
186
+ dest.mkdir(parents=True, exist_ok=True)
187
+ src_garments = SAMPLES_DIR / "garments"
188
+ if src_garments.exists():
189
+ for img in src_garments.glob("*.jpg"):
190
+ shutil.copy(img, dest / img.name)
191
+
192
+ catalog = load_catalog()
193
+ return f"Cargadas **{len(catalog)}** prendas de ejemplo. Ve a 'Mi Armario' para explorarlas."
194
+
195
+
196
  # ---------------------------------------------------------------------------
197
  # Wardrobe tab handlers
198
  # ---------------------------------------------------------------------------
 
461
  interactive=False,
462
  )
463
 
464
+ gr.Markdown("---")
465
+ with gr.Row():
466
+ sample_btn = gr.Button(
467
+ "Cargar armario de ejemplo (50 prendas)",
468
+ variant="secondary", size="sm",
469
+ )
470
+ sample_status = gr.Markdown()
471
+
472
+ sample_btn.click(
473
+ load_sample_wardrobe,
474
+ outputs=[sample_status],
475
+ )
476
+
477
  with gr.Accordion("⚙️ Ajustes de detección", open=False):
478
  available_backends = list_available()
479
  if not available_backends:
data/samples/catalog.json ADDED
@@ -0,0 +1,552 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "type": "crop top",
4
+ "color": "black",
5
+ "material": "polyester",
6
+ "pattern": "striped",
7
+ "season": "summer",
8
+ "formality": "casual",
9
+ "description": "A black crop top with white stripes and a built-in corset-style bodice, offering a sporty and casual style.",
10
+ "id": "garment_001",
11
+ "image_ref": "garment_001.jpg"
12
+ },
13
+ {
14
+ "type": "crop top",
15
+ "color": "black",
16
+ "material": "unknown",
17
+ "pattern": "solid",
18
+ "season": "summer",
19
+ "formality": "casual",
20
+ "description": "A black crop top with a structured, fitted silhouette and white detailing along the neckline. It features a graphic print and is paired with bright neon green shorts and chunky black boots.",
21
+ "id": "garment_002",
22
+ "image_ref": "garment_002.jpg"
23
+ },
24
+ {
25
+ "type": "shorts",
26
+ "color": "lime green",
27
+ "material": "unknown",
28
+ "pattern": "solid",
29
+ "season": "summer",
30
+ "formality": "casual",
31
+ "description": "High-waisted, bright lime green shorts with a structured fit and pleats. They feature a black belt with a plastic buckle and are suitable for warm weather and casual outfits.",
32
+ "id": "garment_003",
33
+ "image_ref": "garment_003.jpg"
34
+ },
35
+ {
36
+ "type": "skirt",
37
+ "color": "blue",
38
+ "material": "denim",
39
+ "pattern": "solid",
40
+ "season": "spring",
41
+ "formality": "smart-casual",
42
+ "description": "A long, asymmetric denim skirt with a high-waisted fit and a ruffled hem. The skirt features a distressed and frayed edge, giving it a casual yet stylish appearance.",
43
+ "id": "garment_004",
44
+ "image_ref": "garment_004.jpg"
45
+ },
46
+ {
47
+ "type": "boots",
48
+ "color": "blue",
49
+ "material": "suede",
50
+ "pattern": "solid",
51
+ "season": "autumn",
52
+ "formality": "smart-casual",
53
+ "description": "Tall, pointed-toe suede boots with gold laces and a chunky heel. These boots have a sleek and sophisticated design, suitable for dressing up an outfit.",
54
+ "id": "garment_005",
55
+ "image_ref": "garment_005.jpg"
56
+ },
57
+ {
58
+ "type": "dress",
59
+ "color": "blue",
60
+ "material": "satin",
61
+ "pattern": "solid",
62
+ "season": "spring",
63
+ "formality": "smart-casual",
64
+ "description": "A light blue satin dress with a fitted bodice, puffed sleeves, and a wrap-style closure. The dress features a ruffled hem and is suitable for a semi-formal occasion.",
65
+ "id": "garment_006",
66
+ "image_ref": "garment_006.jpg"
67
+ },
68
+ {
69
+ "type": "dress",
70
+ "color": "blue",
71
+ "material": "satin",
72
+ "pattern": "solid",
73
+ "season": "spring",
74
+ "formality": "smart-casual",
75
+ "description": "A light blue satin dress with a fitted bodice, puffed sleeves, and a ruffled skirt. It features a double-button closure and a sophisticated, elegant style suitable for a dressy occasion.",
76
+ "id": "garment_007",
77
+ "image_ref": "garment_007.jpg"
78
+ },
79
+ {
80
+ "type": "dress",
81
+ "color": "black",
82
+ "material": "lace",
83
+ "pattern": "floral",
84
+ "season": "autumn",
85
+ "formality": "smart-casual",
86
+ "description": "This black lace dress features a floral pattern with gold accents and a flattering fit. The dress has a high neckline and ruffled sleeves, making it suitable for a dressy yet comfortable occasion.",
87
+ "id": "garment_008",
88
+ "image_ref": "garment_008.jpg"
89
+ },
90
+ {
91
+ "type": "shirt",
92
+ "color": "black",
93
+ "material": "satin",
94
+ "pattern": "striped",
95
+ "season": "summer",
96
+ "formality": "smart-casual",
97
+ "description": "A cropped satin shirt with a bold zebra print, featuring a tie-front closure and long sleeves. This stylish top is perfect for a warm weather outfit.",
98
+ "id": "garment_009",
99
+ "image_ref": "garment_009.jpg"
100
+ },
101
+ {
102
+ "type": "jacket",
103
+ "color": "silver",
104
+ "material": "leather",
105
+ "pattern": "solid",
106
+ "season": "autumn",
107
+ "formality": "smart-casual",
108
+ "description": "A cropped silver leather biker jacket with a belted waist and a classic motorcycle style. It features a shiny finish and a slim fit, suitable for layering in cooler weather.",
109
+ "id": "garment_010",
110
+ "image_ref": "garment_010.jpg"
111
+ },
112
+ {
113
+ "type": "pants",
114
+ "color": "blue",
115
+ "material": "denim",
116
+ "pattern": "striped",
117
+ "season": "spring",
118
+ "formality": "smart-casual",
119
+ "description": "High-waisted denim pants with black panels on the sides and legs, creating a modern and asymmetrical design. The fit is tailored and suitable for a stylish, casual yet put-together look.",
120
+ "id": "garment_011",
121
+ "image_ref": "garment_011.jpg"
122
+ },
123
+ {
124
+ "type": "boots",
125
+ "color": "black",
126
+ "material": "unknown",
127
+ "pattern": "solid",
128
+ "season": "all",
129
+ "formality": "smart-casual",
130
+ "description": "These black ankle boots feature a pointed toe and a chunky block heel, offering a sleek and modern style suitable for a variety of outfits.",
131
+ "id": "garment_012",
132
+ "image_ref": "garment_012.jpg"
133
+ },
134
+ {
135
+ "type": "blazer",
136
+ "color": "beige",
137
+ "material": "linen",
138
+ "pattern": "striped",
139
+ "season": "spring",
140
+ "formality": "smart-casual",
141
+ "description": "A light beige blazer with a double-breasted design and subtle vertical stripes, featuring gold-tone buttons and a relaxed fit suitable for smart-casual occasions.",
142
+ "id": "garment_013",
143
+ "image_ref": "garment_013.jpg"
144
+ },
145
+ {
146
+ "type": "top",
147
+ "color": "black",
148
+ "material": "satin",
149
+ "pattern": "solid",
150
+ "season": "summer",
151
+ "formality": "casual",
152
+ "description": "A black satin crop top with delicate lace trim along the neckline and straps, offering a sleek and minimalist style suitable for warm weather.",
153
+ "id": "garment_014",
154
+ "image_ref": "garment_014.jpg"
155
+ },
156
+ {
157
+ "type": "jeans",
158
+ "color": "blue",
159
+ "material": "denim",
160
+ "pattern": "solid",
161
+ "season": "spring",
162
+ "formality": "casual",
163
+ "description": "Wide-leg, light blue denim jeans with embroidered details and a relaxed fit, perfect for a casual summer outfit.",
164
+ "id": "garment_015",
165
+ "image_ref": "garment_015.jpg"
166
+ },
167
+ {
168
+ "type": "boots",
169
+ "color": "black",
170
+ "material": "leather",
171
+ "pattern": "solid",
172
+ "season": "all",
173
+ "formality": "casual",
174
+ "description": "Classic black leather Chelsea boots with a chunky platform sole and laces. These boots have a rugged, casual style suitable for everyday wear.",
175
+ "id": "garment_016",
176
+ "image_ref": "garment_016.jpg"
177
+ },
178
+ {
179
+ "type": "cardigan",
180
+ "color": "green",
181
+ "material": "knit",
182
+ "pattern": "plaid",
183
+ "season": "autumn",
184
+ "formality": "casual",
185
+ "description": "A cozy, oversized plaid cardigan in a muted green color with a v-neck and button closures. It has pockets and a relaxed fit, perfect for layering during the fall.",
186
+ "id": "garment_017",
187
+ "image_ref": "garment_017.jpg"
188
+ },
189
+ {
190
+ "type": "pants",
191
+ "color": "black",
192
+ "material": "leather",
193
+ "pattern": "solid",
194
+ "season": "autumn",
195
+ "formality": "smart-casual",
196
+ "description": "High-waisted black leather pants with a zip front and asymmetrical cut, creating a modern and edgy style suitable for a smart-casual look.",
197
+ "id": "garment_018",
198
+ "image_ref": "garment_018.jpg"
199
+ },
200
+ {
201
+ "type": "coat",
202
+ "color": "black",
203
+ "material": "woven",
204
+ "pattern": "striped",
205
+ "season": "autumn",
206
+ "formality": "smart-casual",
207
+ "description": "Oversized double-breasted coat in black and white stripes with a wide belt and decorative buckle. The coat has a relaxed fit and a structured silhouette, suitable for layering in cooler weather.",
208
+ "id": "garment_019",
209
+ "image_ref": "garment_019.jpg"
210
+ },
211
+ {
212
+ "type": "blazer",
213
+ "color": "black",
214
+ "material": "woven",
215
+ "pattern": "striped",
216
+ "season": "autumn",
217
+ "formality": "smart-casual",
218
+ "description": "A black and white striped blazer with a double-breasted design and a belted waist, creating a tailored yet stylish silhouette.",
219
+ "id": "garment_020",
220
+ "image_ref": "garment_020.jpg"
221
+ },
222
+ {
223
+ "type": "shirt",
224
+ "color": "light blue",
225
+ "material": "knit",
226
+ "pattern": "solid",
227
+ "season": "summer",
228
+ "formality": "casual",
229
+ "description": "A light blue, short-sleeved polo shirt with a v-neck and a slim fit, perfect for warm weather and casual occasions.",
230
+ "id": "garment_021",
231
+ "image_ref": "garment_021.jpg"
232
+ },
233
+ {
234
+ "type": "skirt",
235
+ "color": "orange",
236
+ "material": "leather",
237
+ "pattern": "solid",
238
+ "season": "autumn",
239
+ "formality": "smart-casual",
240
+ "description": "A high-waisted, A-line leather skirt in a vibrant orange color. It has a sleek and polished appearance suitable for a smart-casual outfit.",
241
+ "id": "garment_022",
242
+ "image_ref": "garment_022.jpg"
243
+ },
244
+ {
245
+ "type": "shoes",
246
+ "color": "orange",
247
+ "material": "suede",
248
+ "pattern": "solid",
249
+ "season": "autumn",
250
+ "formality": "smart-casual",
251
+ "description": "Elegant pointed-toe high heels in a vibrant orange suede, featuring a stiletto heel and a red sole. These shoes are a sophisticated choice for a dressy occasion.",
252
+ "id": "garment_023",
253
+ "image_ref": "garment_023.jpg"
254
+ },
255
+ {
256
+ "type": "top",
257
+ "color": "beige",
258
+ "material": "woven",
259
+ "pattern": "floral",
260
+ "season": "spring",
261
+ "formality": "smart-casual",
262
+ "description": "This beige top features a floral pattern and puffed sleeves, creating a romantic and slightly formal look. The square neckline and woven fabric suggest a lightweight and elegant design.",
263
+ "id": "garment_024",
264
+ "image_ref": "garment_024.jpg"
265
+ },
266
+ {
267
+ "type": "top",
268
+ "color": "beige",
269
+ "material": "silk",
270
+ "pattern": "floral",
271
+ "season": "spring",
272
+ "formality": "smart-casual",
273
+ "description": "This flowy, square-neck top features puffed sleeves and a delicate floral pattern in beige and orange tones. It has a relaxed fit and would be suitable for warmer weather occasions.",
274
+ "id": "garment_025",
275
+ "image_ref": "garment_025.jpg"
276
+ },
277
+ {
278
+ "type": "pants",
279
+ "color": "black",
280
+ "material": "unknown",
281
+ "pattern": "solid",
282
+ "season": "autumn",
283
+ "formality": "smart-casual",
284
+ "description": "Wide-leg black trousers with a high waist and a tailored fit, suitable for a sophisticated evening look.",
285
+ "id": "garment_026",
286
+ "image_ref": "garment_026.jpg"
287
+ },
288
+ {
289
+ "type": "dress",
290
+ "color": "black",
291
+ "material": "unknown",
292
+ "pattern": "solid",
293
+ "season": "autumn",
294
+ "formality": "formal",
295
+ "description": "A sleek, long-sleeved off-the-shoulder dress in black with a fitted silhouette and button closure. It features long gloves and is suitable for evening events or formal occasions.",
296
+ "id": "garment_027",
297
+ "image_ref": "garment_027.jpg"
298
+ },
299
+ {
300
+ "type": "dress",
301
+ "color": "black",
302
+ "material": "sequin",
303
+ "pattern": "sequined",
304
+ "season": "winter",
305
+ "formality": "formal",
306
+ "description": "A sleek, black sequin strapless mini dress with a shimmering effect, perfect for a glamorous evening event. The dress is paired with tall lace-up boots and a sparkly clutch.",
307
+ "id": "garment_028",
308
+ "image_ref": "garment_028.jpg"
309
+ },
310
+ {
311
+ "type": "dress",
312
+ "color": "black",
313
+ "material": "lace",
314
+ "pattern": "floral",
315
+ "season": "autumn",
316
+ "formality": "smart-casual",
317
+ "description": "This black lace dress features a high neckline, ruffled sleeves, and a fitted silhouette. It's a delicate and elegant piece suitable for a semi-formal occasion.",
318
+ "id": "garment_029",
319
+ "image_ref": "garment_029.jpg"
320
+ },
321
+ {
322
+ "type": "dress",
323
+ "color": "black",
324
+ "material": "lace",
325
+ "pattern": "floral",
326
+ "season": "autumn",
327
+ "formality": "smart-casual",
328
+ "description": "A black lace dress with a high neckline and ruffled sleeves, featuring a floral pattern and a fitted silhouette. It is paired with heels and jewelry for a sophisticated and elegant look.",
329
+ "id": "garment_030",
330
+ "image_ref": "garment_030.jpg"
331
+ },
332
+ {
333
+ "type": "dress",
334
+ "color": "black",
335
+ "material": "velvet",
336
+ "pattern": "solid",
337
+ "season": "winter",
338
+ "formality": "formal",
339
+ "description": "A fitted black velvet dress with dramatic puffed sleeves and a high neckline adorned with emerald green stones. It features a statement necklace and is suitable for a glamorous evening event.",
340
+ "id": "garment_031",
341
+ "image_ref": "garment_031.jpg"
342
+ },
343
+ {
344
+ "type": "dress",
345
+ "color": "black",
346
+ "material": "velvet",
347
+ "pattern": "solid",
348
+ "season": "winter",
349
+ "formality": "formal",
350
+ "description": "A fitted, short velvet dress with long sleeves adorned with emerald green embellishments. It is a luxurious and elegant piece suitable for formal occasions.",
351
+ "id": "garment_032",
352
+ "image_ref": "garment_032.jpg"
353
+ },
354
+ {
355
+ "type": "blazer",
356
+ "color": "black",
357
+ "material": "polyester",
358
+ "pattern": "solid",
359
+ "season": "all",
360
+ "formality": "smart-casual",
361
+ "description": "A cropped black blazer with a tie-front closure, featuring a tailored fit and a sleek, modern style.",
362
+ "id": "garment_033",
363
+ "image_ref": "garment_033.jpg"
364
+ },
365
+ {
366
+ "type": "bag",
367
+ "color": "black",
368
+ "material": "leather",
369
+ "pattern": "solid",
370
+ "season": "all",
371
+ "formality": "smart-casual",
372
+ "description": "A structured black leather handbag with a gold heart-shaped embellishment on the front. It features a detachable shoulder strap and a classic, sophisticated design.",
373
+ "id": "garment_034",
374
+ "image_ref": "garment_034.jpg"
375
+ },
376
+ {
377
+ "type": "skirt",
378
+ "color": "red",
379
+ "material": "denim",
380
+ "pattern": "solid",
381
+ "season": "spring",
382
+ "formality": "casual",
383
+ "description": "A short, fitted denim skirt in a vibrant red color with a button-down front and a classic style. It appears to be a casual garment suitable for warmer weather.",
384
+ "id": "garment_035",
385
+ "image_ref": "garment_035.jpg"
386
+ },
387
+ {
388
+ "type": "top",
389
+ "color": "black",
390
+ "material": "velvet",
391
+ "pattern": "floral",
392
+ "season": "autumn",
393
+ "formality": "smart-casual",
394
+ "description": "This black velvet top features a high neckline and embellished floral embroidery with red, white, and gold accents. It has a fitted silhouette and a halter neck design, suitable for a stylish and slightly dressy occasion.",
395
+ "id": "garment_036",
396
+ "image_ref": "garment_036.jpg"
397
+ },
398
+ {
399
+ "type": "bag",
400
+ "color": "red",
401
+ "material": "leather",
402
+ "pattern": "solid",
403
+ "season": "all",
404
+ "formality": "smart-casual",
405
+ "description": "A vibrant red, structured handbag with a curved silhouette and a detachable tassel strap. The bag features a gold logo detail and a sleek, modern design suitable for a variety of occasions.",
406
+ "id": "garment_037",
407
+ "image_ref": "garment_037.jpg"
408
+ },
409
+ {
410
+ "type": "dress",
411
+ "color": "black",
412
+ "material": "satin",
413
+ "pattern": "floral",
414
+ "season": "autumn",
415
+ "formality": "smart-casual",
416
+ "description": "A fitted black satin dress with a vibrant floral pattern of red and green, featuring a wrap-style bodice and a flattering silhouette.",
417
+ "id": "garment_038",
418
+ "image_ref": "garment_038.jpg"
419
+ },
420
+ {
421
+ "type": "boots",
422
+ "color": "black",
423
+ "material": "unknown",
424
+ "pattern": "solid",
425
+ "season": "autumn",
426
+ "formality": "smart-casual",
427
+ "description": "Tall, pointed-toe stiletto boots in black with a sleek, fitted design. These boots are suitable for a sophisticated and stylish look, perfect for cooler weather.",
428
+ "id": "garment_039",
429
+ "image_ref": "garment_039.jpg"
430
+ },
431
+ {
432
+ "type": "shirt",
433
+ "color": "red",
434
+ "material": "silk",
435
+ "pattern": "floral",
436
+ "season": "autumn",
437
+ "formality": "smart-casual",
438
+ "description": "A short-sleeved shirt with a V-neck and a floral pattern of red and black, featuring a structured fit and a ruffled skirt. It appears to be a stylish and slightly formal piece suitable for autumn wear.",
439
+ "id": "garment_040",
440
+ "image_ref": "garment_040.jpg"
441
+ },
442
+ {
443
+ "type": "blouse",
444
+ "color": "red",
445
+ "material": "silk",
446
+ "pattern": "floral",
447
+ "season": "spring",
448
+ "formality": "smart-casual",
449
+ "description": "A red and black silk blouse with a floral pattern and a gathered neckline, featuring short sleeves and a button-down closure. It appears to be a stylish and sophisticated piece suitable for warmer weather.",
450
+ "id": "garment_041",
451
+ "image_ref": "garment_041.jpg"
452
+ },
453
+ {
454
+ "type": "pants",
455
+ "color": "white",
456
+ "material": "unknown",
457
+ "pattern": "solid",
458
+ "season": "summer",
459
+ "formality": "smart-casual",
460
+ "description": "Wide-leg, high-waisted white pants with a relaxed fit, perfect for a stylish summer outfit.",
461
+ "id": "garment_042",
462
+ "image_ref": "garment_042.jpg"
463
+ },
464
+ {
465
+ "type": "blazer",
466
+ "color": "white",
467
+ "material": "unknown",
468
+ "pattern": "solid",
469
+ "season": "all",
470
+ "formality": "smart-casual",
471
+ "description": "A cropped white blazer with a tailored fit and a notched lapel, suitable for a smart-casual look.",
472
+ "id": "garment_043",
473
+ "image_ref": "garment_043.jpg"
474
+ },
475
+ {
476
+ "type": "pants",
477
+ "color": "pink",
478
+ "material": "unknown",
479
+ "pattern": "solid",
480
+ "season": "spring",
481
+ "formality": "smart-casual",
482
+ "description": "Wide-leg, pleated pink pants with a fitted waistband, offering a modern and stylish silhouette suitable for warmer weather and dressed-up occasions.",
483
+ "id": "garment_044",
484
+ "image_ref": "garment_044.jpg"
485
+ },
486
+ {
487
+ "type": "shirt",
488
+ "color": "white",
489
+ "material": "cotton",
490
+ "pattern": "striped",
491
+ "season": "spring",
492
+ "formality": "smart-casual",
493
+ "description": "A crisp white button-down shirt with a fitted silhouette and a subtle striped pattern. It features a collar, button-down closure, and a decorative belt at the waist.",
494
+ "id": "garment_045",
495
+ "image_ref": "garment_045.jpg"
496
+ },
497
+ {
498
+ "type": "dress",
499
+ "color": "white",
500
+ "material": "lace",
501
+ "pattern": "floral",
502
+ "season": "spring",
503
+ "formality": "smart-casual",
504
+ "description": "This white lace dress features a fitted bodice and a flared skirt with a delicate floral pattern. It has spaghetti straps and a decorative embellishment, suitable for a semi-formal occasion.",
505
+ "id": "garment_046",
506
+ "image_ref": "garment_046.jpg"
507
+ },
508
+ {
509
+ "type": "dress",
510
+ "color": "white",
511
+ "material": "lace",
512
+ "pattern": "floral",
513
+ "season": "spring",
514
+ "formality": "smart-casual",
515
+ "description": "A delicate white lace dress with a floral pattern and a fitted bodice, perfect for a light and airy spring occasion. The dress features spaghetti straps and a flared skirt.",
516
+ "id": "garment_047",
517
+ "image_ref": "garment_047.jpg"
518
+ },
519
+ {
520
+ "type": "crop top",
521
+ "color": "purple",
522
+ "material": "sequin",
523
+ "pattern": "solid",
524
+ "season": "spring",
525
+ "formality": "smart-casual",
526
+ "description": "A sparkly purple sequin crop top with a halter neckline and thin straps, offering a glamorous and stylish look for warmer weather.",
527
+ "id": "garment_048",
528
+ "image_ref": "garment_048.jpg"
529
+ },
530
+ {
531
+ "type": "bag",
532
+ "color": "purple",
533
+ "material": "suede",
534
+ "pattern": "quilted",
535
+ "season": "all",
536
+ "formality": "smart-casual",
537
+ "description": "A quilted purple suede shoulder bag with a classic Chanel logo closure and a comfortable handle. It has a structured design suitable for both casual and slightly more formal occasions.",
538
+ "id": "garment_049",
539
+ "image_ref": "garment_049.jpg"
540
+ },
541
+ {
542
+ "type": "dress",
543
+ "color": "light blue",
544
+ "material": "unknown",
545
+ "pattern": "floral",
546
+ "season": "spring",
547
+ "formality": "smart-casual",
548
+ "description": "A light blue, off-the-shoulder dress with a floral pattern and a wrap-style design, creating a flattering and elegant silhouette suitable for a semi-formal occasion.",
549
+ "id": "garment_050",
550
+ "image_ref": "garment_050.jpg"
551
+ }
552
+ ]
data/samples/garments/garment_001.jpg ADDED
data/samples/garments/garment_002.jpg ADDED
data/samples/garments/garment_003.jpg ADDED
data/samples/garments/garment_004.jpg ADDED
data/samples/garments/garment_005.jpg ADDED
data/samples/garments/garment_006.jpg ADDED
data/samples/garments/garment_007.jpg ADDED
data/samples/garments/garment_008.jpg ADDED
data/samples/garments/garment_009.jpg ADDED
data/samples/garments/garment_010.jpg ADDED
data/samples/garments/garment_011.jpg ADDED
data/samples/garments/garment_012.jpg ADDED
data/samples/garments/garment_013.jpg ADDED
data/samples/garments/garment_014.jpg ADDED
data/samples/garments/garment_015.jpg ADDED
data/samples/garments/garment_016.jpg ADDED
data/samples/garments/garment_017.jpg ADDED
data/samples/garments/garment_018.jpg ADDED
data/samples/garments/garment_019.jpg ADDED
data/samples/garments/garment_020.jpg ADDED
data/samples/garments/garment_021.jpg ADDED
data/samples/garments/garment_022.jpg ADDED
data/samples/garments/garment_023.jpg ADDED
data/samples/garments/garment_024.jpg ADDED
data/samples/garments/garment_025.jpg ADDED
data/samples/garments/garment_026.jpg ADDED
data/samples/garments/garment_027.jpg ADDED
data/samples/garments/garment_028.jpg ADDED
data/samples/garments/garment_029.jpg ADDED
data/samples/garments/garment_030.jpg ADDED
data/samples/garments/garment_031.jpg ADDED
data/samples/garments/garment_032.jpg ADDED
data/samples/garments/garment_033.jpg ADDED
data/samples/garments/garment_034.jpg ADDED
data/samples/garments/garment_035.jpg ADDED
data/samples/garments/garment_036.jpg ADDED
data/samples/garments/garment_037.jpg ADDED
data/samples/garments/garment_038.jpg ADDED
data/samples/garments/garment_039.jpg ADDED
data/samples/garments/garment_040.jpg ADDED
data/samples/garments/garment_041.jpg ADDED
data/samples/garments/garment_042.jpg ADDED
data/samples/garments/garment_043.jpg ADDED
data/samples/garments/garment_044.jpg ADDED
data/samples/garments/garment_045.jpg ADDED
data/samples/garments/garment_046.jpg ADDED
data/samples/garments/garment_047.jpg ADDED
data/samples/garments/garment_048.jpg ADDED