bombinideh commited on
Commit
9d52aa6
1 Parent(s): 83ff295

Upload 4 files

Browse files
Files changed (4) hide show
  1. .env +1 -0
  2. gerar_json.py +87 -0
  3. prompt.py +34 -0
  4. regras.txt +479 -0
.env ADDED
@@ -0,0 +1 @@
 
 
1
+ GROQ_API_KEY=gsk_ufakEYEdnuaJzUc2Y8riWGdyb3FYMzvM2mlCqMbf1YJrkiEZ0YOQ
gerar_json.py ADDED
@@ -0,0 +1,87 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from transformers import pipeline
2
+ from pathlib import Path
3
+ from PIL import Image
4
+ import matplotlib.pyplot as plt
5
+ import numpy as np
6
+ from matplotlib import colormaps
7
+ from matplotlib.patches import Patch
8
+ import cv2
9
+ from matplotlib import patches
10
+
11
+ detc_modelo = 'valentinafeve/yolos-fashionpedia'
12
+ detc = pipeline('object-detection', detc_modelo)
13
+
14
+ sgm_modelo = 'mattmdjaga/segformer_b0_clothes'
15
+ sgm = pipeline('image-segmentation', sgm_modelo)
16
+
17
+ def processar_imagem(image_path):
18
+ # Carrega a imagem
19
+ imagem = Image.open(Path(image_path))
20
+
21
+ # Segmentação
22
+ segmentacao = sgm(imagem)
23
+
24
+ # Detecção de objetos
25
+ deteccao = detc(imagem)
26
+
27
+ return imagem, segmentacao, deteccao
28
+
29
+ # segmentacao = sgm(imagem) feito na função processar_imagem
30
+
31
+ def adicionar_mascara(dados_imagem, dados_mascara, cor):
32
+ imagem_mascara = dados_imagem.copy()
33
+ imagem_mascara = np.where(
34
+ dados_mascara[:, :, np.newaxis] == 255,
35
+ cor,
36
+ imagem_mascara,
37
+ ).astype(dados_imagem.dtype)
38
+ return cv2.addWeighted(dados_imagem, 0.5, imagem_mascara, 0.5, 0)
39
+
40
+
41
+ def plotar_segmentos(imagem, segmentacao, nome_colormap):
42
+ cmap = colormaps.get_cmap(nome_colormap)
43
+ cores = [
44
+ (np.array(cmap(x)[:3]) * 255).astype(int)
45
+ for x in np.linspace(0, 1, len(segmentacao))
46
+ ]
47
+
48
+ imagem_final = np.array(imagem).copy()
49
+ legendas = []
50
+ for segmento, cor in zip(segmentacao, cores):
51
+ dados_mascara = np.array(segmento['mask'])
52
+ label_mascara = segmento['label']
53
+ imagem_final = adicionar_mascara(imagem_final, dados_mascara, cor)
54
+ legendas.append(Patch(facecolor=cor/255, edgecolor='black', label=label_mascara))
55
+
56
+ fig, ax = plt.subplots(figsize=(16, 16))
57
+ plt.legend(handles=legendas)
58
+
59
+ ax.imshow(imagem_final)
60
+
61
+ #plotar_segmentos(imagem=imagem, segmentacao=segmentacao, nome_colormap='hsv')
62
+
63
+ # deteccao = detc(imagem) feito na função processar_imagem
64
+
65
+ # Função para desenhar os retângulos
66
+ def plotar_deteccao(imagem, deteccao):
67
+ fig, ax = plt.subplots(figsize=(16, 16))
68
+ ax.imshow(imagem)
69
+
70
+ for det in deteccao:
71
+ if det['score'] >= 0.80:
72
+ box = det['box']
73
+ origem = (box['xmin'], box['ymin'])
74
+ largura = box['xmax'] - box['xmin']
75
+ altura = box['ymax'] - box['ymin']
76
+
77
+ rect = patches.Rectangle(origem, largura, altura, linewidth=3, edgecolor='red', facecolor='none')
78
+ ax.add_patch(rect)
79
+
80
+ texto = f"{det['label']} {100 * det['score']:.2f}%"
81
+ ax.text(box['xmin'] - 50, box['ymin'] + altura / 2, texto,
82
+ bbox={'facecolor': 'red', 'alpha': 0.8}, ha='right', va='center')
83
+
84
+ plt.axis('off')
85
+ plt.show()
86
+
87
+ # plotar_deteccao(imagem=imagem, deteccao=deteccao)
prompt.py ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # prompt.py
2
+ def build_messages(deteccao, base64_image):
3
+ with open('regras.txt', 'r') as arquivo:
4
+ regras_conteudo = arquivo.read()
5
+
6
+ # First prompt to generate clothing description
7
+ messages_for_description = [
8
+ {
9
+ "role": "user",
10
+ "content": [
11
+ {"type": "text", "text": f"Descreva o que a pessoa na imagem está vestindo, focando apenas nas seguintes partes:\n1.Parte de cima: Informe a cor, o tipo de tecido e, se possível, o estilo da peça (por exemplo, camiseta, camisa, blusa, etc.).\n2.Parte de baixo: Informe a cor, o tipo de tecido e, se possível, o estilo da peça (por exemplo, calça, saia, shorts, etc.).\n3.Sapatos: Informe a cor e descreva o estilo (por exemplo, tênis, sapatos sociais, sandálias, etc.).\nEvite incluir informações desnecessárias, como marcas, locais de compra ou características que não sejam relacionadas às roupas e sapatos.Preste atenção aos detalhes e seja o mais sucinto possível. Use o json de resposta de uma detecção de objetos. {deteccao}. E a imagem abaixo:"},
12
+ {
13
+ "type": "image_url",
14
+ "image_url": {
15
+ "url": f"data:image/jpeg;base64,{base64_image}",
16
+ },
17
+ },
18
+ ],
19
+ }
20
+ ]
21
+
22
+ # Function to build messages for analysis
23
+ def messages_for_analysis(clothing_description, sexo, ocasiao):
24
+ return [
25
+ {
26
+ "role": "system",
27
+ "content": (
28
+ f"Você é um estilista de moda com conhecimento aprofundado em combinação de acordo com o sexo e a ocasião. Use as regras em XML para se basear.\n\n{regras_conteudo}. Analise a seguinte descrição de roupa: {clothing_description}. A pessoa de sexo {sexo} está indo para uma ocasião {ocasiao}. Responda de uma forma clara e objetiva, fornecendo sugestões de combinação de roupas e sapatos para a ocasião específica. Seja detalhado e forneça informações úteis para o usuário."
29
+ )
30
+ }
31
+ ]
32
+
33
+ return messages_for_description, messages_for_analysis
34
+
regras.txt ADDED
@@ -0,0 +1,479 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!-- Example Database -->
2
+ <EXAMPLES>
3
+ <DESCRIPTION>
4
+ <SHORT></SHORT>
5
+ <DETAILED></DETAILED>
6
+ </DESCRIPTION>
7
+
8
+ <PARAMETER type="input">gender</PARAMETER>
9
+ <PARAMETER type="input">ocasion</PARAMETER>
10
+ <PARAMETER type="input">tshirt</PARAMETER>
11
+ <PARAMETER type="input">pants</PARAMETER>
12
+ <PARAMETER type="input">shoes</PARAMETER>
13
+ <PARAMETER type="output">match</PARAMETER>
14
+
15
+ <EXAMPLE type="training">
16
+ <VALUE parameter="gender">female</VALUE>
17
+ <VALUE parameter="ocasion">formal</VALUE>
18
+ <VALUE parameter="tshirt">camisa_social_tons_claros_pastel</VALUE>
19
+ <VALUE parameter="pans">social_tons_neutros</VALUE>
20
+ <VALUE parameter="shoes">salto_alto_preto_nude</VALUE>
21
+ <VALUE parameter="match">yes</VALUE>
22
+ </EXAMPLE>
23
+ <EXAMPLE type="training">
24
+ <VALUE parameter="gender">female</VALUE>
25
+ <VALUE parameter="ocasion">formal</VALUE>
26
+ <VALUE parameter="tshirt">vestido_longo_branco_preto</VALUE>
27
+ <VALUE parameter="pans">nenhum</VALUE>
28
+ <VALUE parameter="shoes">salto_alto_preto_nude</VALUE>
29
+ <VALUE parameter="match">yes</VALUE>
30
+ </EXAMPLE>
31
+ <EXAMPLE type="training">
32
+ <VALUE parameter="gender">female</VALUE>
33
+ <VALUE parameter="ocasion">casual</VALUE>
34
+ <VALUE parameter="tshirt">camisa_basica_cores_vibrantes</VALUE>
35
+ <VALUE parameter="pans">short_jeans_tom_medio_escuro</VALUE>
36
+ <VALUE parameter="shoes">tenis_branco_preto</VALUE>
37
+ <VALUE parameter="match">yes</VALUE>
38
+ </EXAMPLE>
39
+ <EXAMPLE type="training">
40
+ <VALUE parameter="gender">female</VALUE>
41
+ <VALUE parameter="ocasion">casual</VALUE>
42
+ <VALUE parameter="tshirt">camisa_basica_cores_vibrantes</VALUE>
43
+ <VALUE parameter="pans">calca_jeans_tom_medio_escuro</VALUE>
44
+ <VALUE parameter="shoes">tenis_branco_preto</VALUE>
45
+ <VALUE parameter="match">yes</VALUE>
46
+ </EXAMPLE>
47
+ <EXAMPLE type="training">
48
+ <VALUE parameter="gender">female</VALUE>
49
+ <VALUE parameter="ocasion">casual</VALUE>
50
+ <VALUE parameter="tshirt">cropped_cores_vibrantes_basicas</VALUE>
51
+ <VALUE parameter="pans">calca_jeans_tom_medio_escuro</VALUE>
52
+ <VALUE parameter="shoes">tenis_branco_preto</VALUE>
53
+ <VALUE parameter="match">yes</VALUE>
54
+ </EXAMPLE>
55
+ <EXAMPLE type="training">
56
+ <VALUE parameter="gender">female</VALUE>
57
+ <VALUE parameter="ocasion">casual</VALUE>
58
+ <VALUE parameter="tshirt">cropped_cores_vibrantes_basicas</VALUE>
59
+ <VALUE parameter="pans">short_jeans_tom_medio_escuro</VALUE>
60
+ <VALUE parameter="shoes">tenis_branco_preto</VALUE>
61
+ <VALUE parameter="match">yes</VALUE>
62
+ </EXAMPLE>
63
+ <EXAMPLE type="training">
64
+ <VALUE parameter="gender">female</VALUE>
65
+ <VALUE parameter="ocasion">esporte</VALUE>
66
+ <VALUE parameter="tshirt">camiseta_tecido_leve_tons_vibrantes</VALUE>
67
+ <VALUE parameter="pans">shorts_legging_tons_claros_pastel</VALUE>
68
+ <VALUE parameter="shoes">tenis_branco_preto</VALUE>
69
+ <VALUE parameter="match">yes</VALUE>
70
+ </EXAMPLE>
71
+ <EXAMPLE type="training">
72
+ <VALUE parameter="gender">female</VALUE>
73
+ <VALUE parameter="ocasion">esporte</VALUE>
74
+ <VALUE parameter="tshirt">camiseta_tecido_leve_tons_vibrantes</VALUE>
75
+ <VALUE parameter="pans">calca_legging_tons_claros_pastel</VALUE>
76
+ <VALUE parameter="shoes">tenis_branco_preto</VALUE>
77
+ <VALUE parameter="match">yes</VALUE>
78
+ </EXAMPLE>
79
+ <EXAMPLE type="training">
80
+ <VALUE parameter="gender">female</VALUE>
81
+ <VALUE parameter="ocasion">festa</VALUE>
82
+ <VALUE parameter="tshirt">vestido_curto_tons_vibrantes</VALUE>
83
+ <VALUE parameter="pans">nenhum</VALUE>
84
+ <VALUE parameter="shoes">salto_alto_tons_metálicos</VALUE>
85
+ <VALUE parameter="match">yes</VALUE>
86
+ </EXAMPLE>
87
+ <EXAMPLE type="training">
88
+ <VALUE parameter="gender">female</VALUE>
89
+ <VALUE parameter="ocasion">festa</VALUE>
90
+ <VALUE parameter="tshirt">vestido_longo_tons_vibrantes</VALUE>
91
+ <VALUE parameter="pans">nenhum</VALUE>
92
+ <VALUE parameter="shoes">salto_alto_tons_metálicos</VALUE>
93
+ <VALUE parameter="match">yes</VALUE>
94
+ </EXAMPLE>
95
+ <EXAMPLE type="training">
96
+ <VALUE parameter="gender">female</VALUE>
97
+ <VALUE parameter="ocasion">praia</VALUE>
98
+ <VALUE parameter="tshirt">vestido_praia_tecido_leve_cores_claras</VALUE>
99
+ <VALUE parameter="pans">nenhum</VALUE>
100
+ <VALUE parameter="shoes">chinelo</VALUE>
101
+ <VALUE parameter="match">yes</VALUE>
102
+ </EXAMPLE>
103
+ <EXAMPLE type="training">
104
+ <VALUE parameter="gender">female</VALUE>
105
+ <VALUE parameter="ocasion">praia</VALUE>
106
+ <VALUE parameter="tshirt">biquini_cor_basica</VALUE>
107
+ <VALUE parameter="pans">biquini_cor_basica</VALUE>
108
+ <VALUE parameter="shoes">chinelo</VALUE>
109
+ <VALUE parameter="match">yes</VALUE>
110
+ </EXAMPLE>
111
+ <EXAMPLE type="training">
112
+ <VALUE parameter="gender">male</VALUE>
113
+ <VALUE parameter="ocasion">formal</VALUE>
114
+ <VALUE parameter="tshirt">camisa_social_tons_claros_pastel</VALUE>
115
+ <VALUE parameter="pans">calca_social_tons_neutros</VALUE>
116
+ <VALUE parameter="shoes">sapato_social_preto_marrom</VALUE>
117
+ <VALUE parameter="match">yes</VALUE>
118
+ </EXAMPLE>
119
+ <EXAMPLE type="training">
120
+ <VALUE parameter="gender">male</VALUE>
121
+ <VALUE parameter="ocasion">formal</VALUE>
122
+ <VALUE parameter="tshirt">camisa_social_tons_claros_pastel_com_blazer</VALUE>
123
+ <VALUE parameter="pans">calca_social_tons_neutros</VALUE>
124
+ <VALUE parameter="shoes">sapato_social_preto_marrom</VALUE>
125
+ <VALUE parameter="match">yes</VALUE>
126
+ </EXAMPLE>
127
+ <EXAMPLE type="training">
128
+ <VALUE parameter="gender">male</VALUE>
129
+ <VALUE parameter="ocasion">formal</VALUE>
130
+ <VALUE parameter="tshirt">camisa_social_tons_claros_pastel</VALUE>
131
+ <VALUE parameter="pans">calca_social_tons_escuro</VALUE>
132
+ <VALUE parameter="shoes">sapato_social_preto_marrom</VALUE>
133
+ <VALUE parameter="match">yes</VALUE>
134
+ </EXAMPLE>
135
+ <EXAMPLE type="training">
136
+ <VALUE parameter="gender">male</VALUE>
137
+ <VALUE parameter="ocasion">formal</VALUE>
138
+ <VALUE parameter="tshirt">camisa_social_tons_claros_pastel_com_blazer</VALUE>
139
+ <VALUE parameter="pans">calca_social_tons_escuro</VALUE>
140
+ <VALUE parameter="shoes">sapato_social_preto_marrom</VALUE>
141
+ <VALUE parameter="match">yes</VALUE>
142
+ </EXAMPLE>
143
+ <EXAMPLE type="training">
144
+ <VALUE parameter="gender">male</VALUE>
145
+ <VALUE parameter="ocasion">casual</VALUE>
146
+ <VALUE parameter="tshirt">camisa_basica_cores_vibrantes</VALUE>
147
+ <VALUE parameter="pans">calca_jeans_medio_escuro</VALUE>
148
+ <VALUE parameter="shoes">tenis_branco_preto</VALUE>
149
+ <VALUE parameter="match">yes</VALUE>
150
+ </EXAMPLE>
151
+ <EXAMPLE type="training">
152
+ <VALUE parameter="gender">male</VALUE>
153
+ <VALUE parameter="ocasion">casual</VALUE>
154
+ <VALUE parameter="tshirt">camisa_basica_cores_vibrantes</VALUE>
155
+ <VALUE parameter="pans">bermuda_jeans_medio_escuro</VALUE>
156
+ <VALUE parameter="shoes">tenis_branco_preto</VALUE>
157
+ <VALUE parameter="match">yes</VALUE>
158
+ </EXAMPLE>
159
+ <EXAMPLE type="training">
160
+ <VALUE parameter="gender">male</VALUE>
161
+ <VALUE parameter="ocasion">casual</VALUE>
162
+ <VALUE parameter="tshirt">camisa_tecido_leve_tons_vibrantes</VALUE>
163
+ <VALUE parameter="pans">bermuda_jeans_medio_escuro</VALUE>
164
+ <VALUE parameter="shoes">tenis_branco_preto</VALUE>
165
+ <VALUE parameter="match">yes</VALUE>
166
+ </EXAMPLE>
167
+ <EXAMPLE type="training">
168
+ <VALUE parameter="gender">male</VALUE>
169
+ <VALUE parameter="ocasion">casual</VALUE>
170
+ <VALUE parameter="tshirt">camisa_tecido_leve_tons_vibrantes</VALUE>
171
+ <VALUE parameter="pans">calca_jeans_medio_escuro</VALUE>
172
+ <VALUE parameter="shoes">tenis_branco_preto</VALUE>
173
+ <VALUE parameter="match">yes</VALUE>
174
+ </EXAMPLE>
175
+ <EXAMPLE type="training">
176
+ <VALUE parameter="gender">male</VALUE>
177
+ <VALUE parameter="ocasion">esporte</VALUE>
178
+ <VALUE parameter="tshirt">camiseta_tecido_leve</VALUE>
179
+ <VALUE parameter="pans">bermuda_tecido_leve_medio_escuro</VALUE>
180
+ <VALUE parameter="shoes">tenis_branco_preto</VALUE>
181
+ <VALUE parameter="match">yes</VALUE>
182
+ </EXAMPLE>
183
+ <EXAMPLE type="training">
184
+ <VALUE parameter="gender">male</VALUE>
185
+ <VALUE parameter="ocasion">esporte</VALUE>
186
+ <VALUE parameter="tshirt">camisa_tecido_leve_tons_vibrantes</VALUE>
187
+ <VALUE parameter="pans">bermuda_tecido_leve_medio_escuro</VALUE>
188
+ <VALUE parameter="shoes">tenis_branco_preto</VALUE>
189
+ <VALUE parameter="match">yes</VALUE>
190
+ </EXAMPLE>
191
+ <EXAMPLE type="training">
192
+ <VALUE parameter="gender">male</VALUE>
193
+ <VALUE parameter="ocasion">esporte</VALUE>
194
+ <VALUE parameter="tshirt">camiseta_tecido_leve</VALUE>
195
+ <VALUE parameter="pans">bermuda_tecido_leve_tons_claros</VALUE>
196
+ <VALUE parameter="shoes">tenis_branco_preto</VALUE>
197
+ <VALUE parameter="match">yes</VALUE>
198
+ </EXAMPLE>
199
+ <EXAMPLE type="training">
200
+ <VALUE parameter="gender">male</VALUE>
201
+ <VALUE parameter="ocasion">esporte</VALUE>
202
+ <VALUE parameter="tshirt">camisa_tecido_leve_tons_vibrantes</VALUE>
203
+ <VALUE parameter="pans">bermuda_tecido_leve_tons_claros</VALUE>
204
+ <VALUE parameter="shoes">tenis_branco_preto</VALUE>
205
+ <VALUE parameter="match">yes</VALUE>
206
+ </EXAMPLE>
207
+ <EXAMPLE type="training">
208
+ <VALUE parameter="gender">male</VALUE>
209
+ <VALUE parameter="ocasion">festa</VALUE>
210
+ <VALUE parameter="tshirt">camiseta_botao_tons_vibrante</VALUE>
211
+ <VALUE parameter="pans">calca_jeans</VALUE>
212
+ <VALUE parameter="shoes">tenis_neutro</VALUE>
213
+ <VALUE parameter="match">yes</VALUE>
214
+ </EXAMPLE>
215
+ <EXAMPLE type="training">
216
+ <VALUE parameter="gender">male</VALUE>
217
+ <VALUE parameter="ocasion">festa</VALUE>
218
+ <VALUE parameter="tshirt">camiseta_botao_cores_vibrante</VALUE>
219
+ <VALUE parameter="pans">calca_social_tons_neutros</VALUE>
220
+ <VALUE parameter="shoes">sapato_social_preto_marrom</VALUE>
221
+ <VALUE parameter="match">yes</VALUE>
222
+ </EXAMPLE>
223
+ <EXAMPLE type="training">
224
+ <VALUE parameter="gender">male</VALUE>
225
+ <VALUE parameter="ocasion">praia</VALUE>
226
+ <VALUE parameter="tshirt">nenhum</VALUE>
227
+ <VALUE parameter="pans">sunga</VALUE>
228
+ <VALUE parameter="shoes">chinelo</VALUE>
229
+ <VALUE parameter="match">yes</VALUE>
230
+ </EXAMPLE>
231
+ <EXAMPLE type="training">
232
+ <VALUE parameter="gender">male</VALUE>
233
+ <VALUE parameter="ocasion">praia</VALUE>
234
+ <VALUE parameter="tshirt">nenhum</VALUE>
235
+ <VALUE parameter="pans">bermuda_tecido_leve_tons_claros</VALUE>
236
+ <VALUE parameter="shoes">chinelo</VALUE>
237
+ <VALUE parameter="match">yes</VALUE>
238
+ </EXAMPLE>
239
+ <EXAMPLE type="training">
240
+ <VALUE parameter="gender">male</VALUE>
241
+ <VALUE parameter="ocasion">praia</VALUE>
242
+ <VALUE parameter="tshirt">camiseta_cores_vibrantes_estampadas</VALUE>
243
+ <VALUE parameter="pans">bermuda_tecido_leve_tons_claros</VALUE>
244
+ <VALUE parameter="shoes">chinelo</VALUE>
245
+ <VALUE parameter="match">yes</VALUE>
246
+ </EXAMPLE>
247
+ <EXAMPLE type="training">
248
+ <VALUE parameter="gender">female</VALUE>
249
+ <VALUE parameter="ocasion">casual</VALUE>
250
+ <VALUE parameter="tshirt">camisa_social_tons_claros_pastel</VALUE>
251
+ <VALUE parameter="pans">social_tons_neutros</VALUE>
252
+ <VALUE parameter="shoes">chinelo</VALUE>
253
+ <VALUE parameter="match">no</VALUE>
254
+ </EXAMPLE>
255
+ <EXAMPLE type="training">
256
+ <VALUE parameter="gender">female</VALUE>
257
+ <VALUE parameter="ocasion">formal</VALUE>
258
+ <VALUE parameter="tshirt">camisa_social_tons_claros_pastel</VALUE>
259
+ <VALUE parameter="pans">nenhum</VALUE>
260
+ <VALUE parameter="shoes">salto_alto_preto_nude</VALUE>
261
+ <VALUE parameter="match">no</VALUE>
262
+ </EXAMPLE>
263
+ <EXAMPLE type="training">
264
+ <VALUE parameter="gender">female</VALUE>
265
+ <VALUE parameter="ocasion">formal</VALUE>
266
+ <VALUE parameter="tshirt">camisa_basica_cores_vibrantes</VALUE>
267
+ <VALUE parameter="pans">nenhum</VALUE>
268
+ <VALUE parameter="shoes">chinelo</VALUE>
269
+ <VALUE parameter="match">no</VALUE>
270
+ </EXAMPLE>
271
+ <EXAMPLE type="training">
272
+ <VALUE parameter="gender">female</VALUE>
273
+ <VALUE parameter="ocasion">praia</VALUE>
274
+ <VALUE parameter="tshirt">camisa_basica_cores_vibrantes</VALUE>
275
+ <VALUE parameter="pans">calca_jeans_tom_medio_escuro</VALUE>
276
+ <VALUE parameter="shoes">tenis_branco_preto</VALUE>
277
+ <VALUE parameter="match">no</VALUE>
278
+ </EXAMPLE>
279
+ <EXAMPLE type="training">
280
+ <VALUE parameter="gender">female</VALUE>
281
+ <VALUE parameter="ocasion">formal</VALUE>
282
+ <VALUE parameter="tshirt">cropped_cores_vibrantes_basicas</VALUE>
283
+ <VALUE parameter="pans">calca_jeans_tom_medio_escuro</VALUE>
284
+ <VALUE parameter="shoes">tenis_branco_preto</VALUE>
285
+ <VALUE parameter="match">no</VALUE>
286
+ </EXAMPLE>
287
+ <EXAMPLE type="training">
288
+ <VALUE parameter="gender">female</VALUE>
289
+ <VALUE parameter="ocasion">casual</VALUE>
290
+ <VALUE parameter="tshirt">cropped_cores_vibrantes_basicas</VALUE>
291
+ <VALUE parameter="pans">calca_social_tons_neutros</VALUE>
292
+ <VALUE parameter="shoes">chinelo</VALUE>
293
+ <VALUE parameter="match">no</VALUE>
294
+ </EXAMPLE>
295
+ <EXAMPLE type="training">
296
+ <VALUE parameter="gender">female</VALUE>
297
+ <VALUE parameter="ocasion">esporte</VALUE>
298
+ <VALUE parameter="tshirt">camiseta_tecido_leve_tons_vibrantes</VALUE>
299
+ <VALUE parameter="pans">shorts_legging_tons_claros_pastel</VALUE>
300
+ <VALUE parameter="shoes">chinelo</VALUE>
301
+ <VALUE parameter="match">no</VALUE>
302
+ </EXAMPLE>
303
+ <EXAMPLE type="training">
304
+ <VALUE parameter="gender">female</VALUE>
305
+ <VALUE parameter="ocasion">esporte</VALUE>
306
+ <VALUE parameter="tshirt">camiseta_tecido_leve_tons_vibrantes</VALUE>
307
+ <VALUE parameter="pans">calca_legging_tons_claros_pastel</VALUE>
308
+ <VALUE parameter="shoes">chinelo</VALUE>
309
+ <VALUE parameter="match">no</VALUE>
310
+ </EXAMPLE>
311
+ <EXAMPLE type="training">
312
+ <VALUE parameter="gender">female</VALUE>
313
+ <VALUE parameter="ocasion">festa</VALUE>
314
+ <VALUE parameter="tshirt">biquini_cor_basica</VALUE>
315
+ <VALUE parameter="pans">nenhum</VALUE>
316
+ <VALUE parameter="shoes">salto_alto_tons_metálicos</VALUE>
317
+ <VALUE parameter="match">no</VALUE>
318
+ </EXAMPLE>
319
+ <EXAMPLE type="training">
320
+ <VALUE parameter="gender">female</VALUE>
321
+ <VALUE parameter="ocasion">festa</VALUE>
322
+ <VALUE parameter="tshirt">vestido_longo_tons_vibrantes</VALUE>
323
+ <VALUE parameter="pans">calca_legging_tons_claros_pastel</VALUE>
324
+ <VALUE parameter="shoes">salto_alto_tons_metálicos</VALUE>
325
+ <VALUE parameter="match">no</VALUE>
326
+ </EXAMPLE>
327
+ <EXAMPLE type="training">
328
+ <VALUE parameter="gender">female</VALUE>
329
+ <VALUE parameter="ocasion">praia</VALUE>
330
+ <VALUE parameter="tshirt">vestido_praia_tecido_leve_cores_claras</VALUE>
331
+ <VALUE parameter="pans">calca_legging_tons_claros_pastel</VALUE>
332
+ <VALUE parameter="shoes">chinelo</VALUE>
333
+ <VALUE parameter="match">no</VALUE>
334
+ </EXAMPLE>
335
+ <EXAMPLE type="training">
336
+ <VALUE parameter="gender">female</VALUE>
337
+ <VALUE parameter="ocasion">praia</VALUE>
338
+ <VALUE parameter="tshirt">biquini_cor_basica</VALUE>
339
+ <VALUE parameter="pans">biquini_cor_basica</VALUE>
340
+ <VALUE parameter="shoes">chinelo</VALUE>
341
+ <VALUE parameter="match">no</VALUE>
342
+ </EXAMPLE>
343
+ <EXAMPLE type="training">
344
+ <VALUE parameter="gender">male</VALUE>
345
+ <VALUE parameter="ocasion">formal</VALUE>
346
+ <VALUE parameter="tshirt">camisa_social_tons_claros_pastel</VALUE>
347
+ <VALUE parameter="pans">calca_social_tons_neutros</VALUE>
348
+ <VALUE parameter="shoes">chinelo</VALUE>
349
+ <VALUE parameter="match">no</VALUE>
350
+ </EXAMPLE>
351
+ <EXAMPLE type="training">
352
+ <VALUE parameter="gender">male</VALUE>
353
+ <VALUE parameter="ocasion">formal</VALUE>
354
+ <VALUE parameter="tshirt">camisa_social_tons_claros_pastel_com_blazer</VALUE>
355
+ <VALUE parameter="pans">sunga</VALUE>
356
+ <VALUE parameter="shoes">sapato_social_preto_marrom</VALUE>
357
+ <VALUE parameter="match">no</VALUE>
358
+ </EXAMPLE>
359
+ <EXAMPLE type="training">
360
+ <VALUE parameter="gender">male</VALUE>
361
+ <VALUE parameter="ocasion">praia</VALUE>
362
+ <VALUE parameter="tshirt">camisa_social_tons_claros_pastel</VALUE>
363
+ <VALUE parameter="pans">calca_social_tons_escuro</VALUE>
364
+ <VALUE parameter="shoes">sapato_social_preto_marrom</VALUE>
365
+ <VALUE parameter="match">no</VALUE>
366
+ </EXAMPLE>
367
+ <EXAMPLE type="training">
368
+ <VALUE parameter="gender">male</VALUE>
369
+ <VALUE parameter="ocasion">formal</VALUE>
370
+ <VALUE parameter="tshirt">camisa_social_tons_claros_pastel_com_blazer</VALUE>
371
+ <VALUE parameter="pans">bermuda_jeans_medio_escuro</VALUE>
372
+ <VALUE parameter="shoes">chinelo</VALUE>
373
+ <VALUE parameter="match">no</VALUE>
374
+ </EXAMPLE>
375
+ <EXAMPLE type="training">
376
+ <VALUE parameter="gender">female</VALUE>
377
+ <VALUE parameter="ocasion">casual</VALUE>
378
+ <VALUE parameter="tshirt">camisa_basica_cores_vibrantes</VALUE>
379
+ <VALUE parameter="pans">calca_jeans_medio_escuro</VALUE>
380
+ <VALUE parameter="shoes">chinelo</VALUE>
381
+ <VALUE parameter="match">no</VALUE>
382
+ </EXAMPLE>
383
+ <EXAMPLE type="training">
384
+ <VALUE parameter="gender">male</VALUE>
385
+ <VALUE parameter="ocasion">casual</VALUE>
386
+ <VALUE parameter="tshirt">camisa_social_tons_claros_pastel_com_blazer</VALUE>
387
+ <VALUE parameter="pans">bermuda_jeans_medio_escuro</VALUE>
388
+ <VALUE parameter="shoes">tenis_branco_preto</VALUE>
389
+ <VALUE parameter="match">no</VALUE>
390
+ </EXAMPLE>
391
+ <EXAMPLE type="training">
392
+ <VALUE parameter="gender">male</VALUE>
393
+ <VALUE parameter="ocasion">esporte</VALUE>
394
+ <VALUE parameter="tshirt">camisa_tecido_leve_tons_vibrantes</VALUE>
395
+ <VALUE parameter="pans">calca_jeans_medio_escuro</VALUE>
396
+ <VALUE parameter="shoes">tenis_branco_preto</VALUE>
397
+ <VALUE parameter="match">no</VALUE>
398
+ </EXAMPLE>
399
+ <EXAMPLE type="training">
400
+ <VALUE parameter="gender">male</VALUE>
401
+ <VALUE parameter="ocasion">formal</VALUE>
402
+ <VALUE parameter="tshirt">camiseta_tecido_leve</VALUE>
403
+ <VALUE parameter="pans">bermuda_tecido_leve_medio_escuro</VALUE>
404
+ <VALUE parameter="shoes">tenis_branco_preto</VALUE>
405
+ <VALUE parameter="match">no</VALUE>
406
+ </EXAMPLE>
407
+ <EXAMPLE type="training">
408
+ <VALUE parameter="gender">male</VALUE>
409
+ <VALUE parameter="ocasion">esporte</VALUE>
410
+ <VALUE parameter="tshirt">camisa_tecido_leve_tons_vibrantes</VALUE>
411
+ <VALUE parameter="pans">bermuda_tecido_leve_medio_escuro</VALUE>
412
+ <VALUE parameter="shoes">chinelo</VALUE>
413
+ <VALUE parameter="match">no</VALUE>
414
+ </EXAMPLE>
415
+ <EXAMPLE type="training">
416
+ <VALUE parameter="gender">male</VALUE>
417
+ <VALUE parameter="ocasion">esporte</VALUE>
418
+ <VALUE parameter="tshirt">camiseta_tecido_leve</VALUE>
419
+ <VALUE parameter="pans">bermuda_tecido_leve_tons_claros</VALUE>
420
+ <VALUE parameter="shoes">chinelo</VALUE>
421
+ <VALUE parameter="match">no</VALUE>
422
+ </EXAMPLE>
423
+ <EXAMPLE type="training">
424
+ <VALUE parameter="gender">male</VALUE>
425
+ <VALUE parameter="ocasion">festa</VALUE>
426
+ <VALUE parameter="tshirt">camisa_tecido_leve_tons_vibrantes</VALUE>
427
+ <VALUE parameter="pans">bermuda_tecido_leve_tons_claros</VALUE>
428
+ <VALUE parameter="shoes">tenis_branco_preto</VALUE>
429
+ <VALUE parameter="match">no</VALUE>
430
+ </EXAMPLE>
431
+ <EXAMPLE type="training">
432
+ <VALUE parameter="gender">male</VALUE>
433
+ <VALUE parameter="ocasion">praia</VALUE>
434
+ <VALUE parameter="tshirt">camiseta_botao_tons_vibrante</VALUE>
435
+ <VALUE parameter="pans">calca_jeans</VALUE>
436
+ <VALUE parameter="shoes">tenis_neutro</VALUE>
437
+ <VALUE parameter="match">no</VALUE>
438
+ </EXAMPLE>
439
+ <EXAMPLE type="training">
440
+ <VALUE parameter="gender">male</VALUE>
441
+ <VALUE parameter="ocasion">formal</VALUE>
442
+ <VALUE parameter="tshirt">camiseta_botao_cores_vibrante</VALUE>
443
+ <VALUE parameter="pans">sunga</VALUE>
444
+ <VALUE parameter="shoes">sapato_social_preto_marrom</VALUE>
445
+ <VALUE parameter="match">no</VALUE>
446
+ </EXAMPLE>
447
+ <EXAMPLE type="training">
448
+ <VALUE parameter="gender">male</VALUE>
449
+ <VALUE parameter="ocasion">festa</VALUE>
450
+ <VALUE parameter="tshirt">camiseta_botao_cores_vibrante</VALUE>
451
+ <VALUE parameter="pans">calca_social_tons_neutros</VALUE>
452
+ <VALUE parameter="shoes">chinelo</VALUE>
453
+ <VALUE parameter="match">no</VALUE>
454
+ </EXAMPLE>
455
+ <EXAMPLE type="training">
456
+ <VALUE parameter="gender">male</VALUE>
457
+ <VALUE parameter="ocasion">praia</VALUE>
458
+ <VALUE parameter="tshirt">camiseta_botao_cores_vibrante</VALUE>
459
+ <VALUE parameter="pans">sunga</VALUE>
460
+ <VALUE parameter="shoes">chinelo</VALUE>
461
+ <VALUE parameter="match">no</VALUE>
462
+ </EXAMPLE>
463
+ <EXAMPLE type="training">
464
+ <VALUE parameter="gender">male</VALUE>
465
+ <VALUE parameter="ocasion">praia</VALUE>
466
+ <VALUE parameter="tshirt">nenhum</VALUE>
467
+ <VALUE parameter="pans">bermuda_tecido_leve_tons_claros</VALUE>
468
+ <VALUE parameter="shoes">sapato_social_preto_marrom</VALUE>
469
+ <VALUE parameter="match">no</VALUE>
470
+ </EXAMPLE>
471
+ <EXAMPLE type="training">
472
+ <VALUE parameter="gender">male</VALUE>
473
+ <VALUE parameter="ocasion">formal</VALUE>
474
+ <VALUE parameter="tshirt">camiseta_cores_vibrantes_estampadas</VALUE>
475
+ <VALUE parameter="pans">bermuda_tecido_leve_tons_claros</VALUE>
476
+ <VALUE parameter="shoes">chinelo</VALUE>
477
+ <VALUE parameter="match">no</VALUE>
478
+ </EXAMPLE>
479
+ </EXAMPLES>