Se actualiza el dataset
Browse filesThis view is limited to 50 files because it contains too many changes. See raw diff
- app.py +35 -38
- data/valid/Almohadas_y_cojines/6474eb7beca04255e216354707604caa.jpg +0 -0
- data/valid/Almohadas_y_cojines/b6f4b43eb8e47193358b0b3b69b9cd4d.jpg +0 -0
- data/valid/Almohadas_y_cojines/b6f4b43eb8e47193358b0b3b69b9cd4d_1.jpg +0 -0
- data/valid/Almohadas_y_cojines/b6f4b43eb8e47193358b0b3b69b9cd4d_2.jpg +0 -0
- data/valid/Almohadas_y_cojines/b6f4b43eb8e47193358b0b3b69b9cd4d_3.jpg +0 -0
- data/valid/Almohadas_y_cojines/b6f4b43eb8e47193358b0b3b69b9cd4d_4.jpg +0 -0
- data/valid/Almohadas_y_cojines/b6f4b43eb8e47193358b0b3b69b9cd4d_5.jpg +0 -0
- data/valid/Almohadas_y_cojines/d319582ad5976fa0526871af907d75e5.jpg +0 -0
- data/valid/Baberos/134673c99a13f9f17bb4a3420aa830bb.jpg +0 -0
- data/valid/Baberos/134673c99a13f9f17bb4a3420aa830bb_1.jpg +0 -0
- data/valid/Baberos/134673c99a13f9f17bb4a3420aa830bb_2.jpg +0 -0
- data/valid/Baberos/134673c99a13f9f17bb4a3420aa830bb_3.jpg +0 -0
- data/valid/Baberos/134673c99a13f9f17bb4a3420aa830bb_4.jpg +0 -0
- data/valid/Baberos/134673c99a13f9f17bb4a3420aa830bb_5.jpg +0 -0
- data/valid/Baberos/80ff9b872165c3f13c72859dbbcbd4a4.jpg +0 -0
- data/valid/Baberos/80ff9b872165c3f13c72859dbbcbd4a4_1.jpg +0 -0
- data/valid/Baberos/80ff9b872165c3f13c72859dbbcbd4a4_2.jpg +0 -0
- data/valid/Baberos/80ff9b872165c3f13c72859dbbcbd4a4_3.jpg +0 -0
- data/valid/Baberos/80ff9b872165c3f13c72859dbbcbd4a4_4.jpg +0 -0
- data/valid/Baberos/80ff9b872165c3f13c72859dbbcbd4a4_5.jpg +0 -0
- data/valid/Baberos/80ff9b872165c3f13c72859dbbcbd4a4_6.jpg +0 -0
- data/valid/Baberos/9daca95e1bd0ca6aad1812e44007a2ea.jpg +0 -0
- data/valid/Baberos/9daca95e1bd0ca6aad1812e44007a2ea_1.jpg +0 -0
- data/valid/Baberos/9daca95e1bd0ca6aad1812e44007a2ea_2.jpg +0 -0
- data/valid/Baberos/9daca95e1bd0ca6aad1812e44007a2ea_3.jpg +0 -0
- data/valid/Baberos/9daca95e1bd0ca6aad1812e44007a2ea_4.jpg +0 -0
- data/valid/Baberos/9daca95e1bd0ca6aad1812e44007a2ea_5.jpg +0 -0
- data/valid/Baberos/c4bb79af1cdae49467eea9efca2ee32c.jpg +0 -0
- data/valid/Baberos/c4bb79af1cdae49467eea9efca2ee32c_1.jpg +0 -0
- data/valid/Baberos/c4bb79af1cdae49467eea9efca2ee32c_2.jpg +0 -0
- data/valid/Baberos/c4bb79af1cdae49467eea9efca2ee32c_3.jpg +0 -0
- data/valid/Baberos/c4bb79af1cdae49467eea9efca2ee32c_4.jpg +0 -0
- data/valid/Baberos/c4bb79af1cdae49467eea9efca2ee32c_5.jpg +0 -0
- data/valid/Baberos/c4bb79af1cdae49467eea9efca2ee32c_6.jpg +0 -0
- data/valid/Baberos/c939ccd756d45577cb28f93ee5486a59.jpg +0 -0
- data/valid/Baberos/c939ccd756d45577cb28f93ee5486a59_1.jpg +0 -0
- data/valid/Baberos/c939ccd756d45577cb28f93ee5486a59_2.jpg +0 -0
- data/valid/Baberos/c939ccd756d45577cb28f93ee5486a59_3.jpg +0 -0
- data/valid/Baberos/c939ccd756d45577cb28f93ee5486a59_4.jpg +0 -0
- data/valid/Baberos/c939ccd756d45577cb28f93ee5486a59_5.jpg +0 -0
- data/valid/Baberos/cce281a309ee213c364cfa0bd62ba1f2.jpg +0 -0
- data/valid/Baberos/cce281a309ee213c364cfa0bd62ba1f2_1.jpg +0 -0
- data/valid/Baberos/cce281a309ee213c364cfa0bd62ba1f2_2.jpg +0 -0
- data/valid/Baberos/cce281a309ee213c364cfa0bd62ba1f2_3.jpg +0 -0
- data/valid/Baberos/cce281a309ee213c364cfa0bd62ba1f2_4.jpg +0 -0
- data/valid/Baberos/cce281a309ee213c364cfa0bd62ba1f2_5.jpg +0 -0
- data/valid/Baberos/cce281a309ee213c364cfa0bd62ba1f2_6.jpg +0 -0
- data/valid/Baberos/e3188f410d687d5e9c939cf9dcc85bc8.jpg +0 -0
- data/valid/Baberos/e3188f410d687d5e9c939cf9dcc85bc8_1.jpg +0 -0
app.py
CHANGED
|
@@ -4,29 +4,29 @@ import streamlit as st
|
|
| 4 |
from io import BytesIO
|
| 5 |
import base64
|
| 6 |
from multiprocessing.dummy import Pool
|
| 7 |
-
from PIL import Image, ImageDraw
|
| 8 |
|
| 9 |
import torch
|
| 10 |
from torchvision import transforms
|
| 11 |
|
| 12 |
# sketches
|
| 13 |
from streamlit_drawable_canvas import st_canvas
|
| 14 |
-
from PIL import Image, ImageOps
|
| 15 |
-
from torchvision import transforms
|
| 16 |
from src.model_LN_prompt import Model
|
| 17 |
|
| 18 |
|
| 19 |
import pickle as pkl
|
| 20 |
from html import escape
|
| 21 |
-
from huggingface_hub import hf_hub_download,
|
|
|
|
| 22 |
|
| 23 |
token = os.getenv("HUGGINGFACE_TOKEN")
|
| 24 |
|
| 25 |
# Autentica usando el token
|
| 26 |
-
login(token=token)
|
| 27 |
|
| 28 |
# Variables
|
| 29 |
-
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
|
|
|
|
| 30 |
HEIGHT = 200
|
| 31 |
N_RESULTS = 15
|
| 32 |
color = st.get_option("theme.primaryColor")
|
|
@@ -35,25 +35,30 @@ if color is None:
|
|
| 35 |
else:
|
| 36 |
color = tuple(int(color.lstrip("#")[i: i + 2], 16) for i in (0, 2, 4))
|
| 37 |
|
| 38 |
-
|
| 39 |
@st.cache_resource
|
| 40 |
def load():
|
| 41 |
-
|
| 42 |
-
|
|
|
|
|
|
|
|
|
|
| 43 |
|
| 44 |
# Descargar el modelo desde Hugging Face
|
| 45 |
-
path_model = hf_hub_download(
|
|
|
|
| 46 |
print(f"Archivo del modelo descargado en: {path_model}")
|
| 47 |
|
| 48 |
# Cargar el modelo
|
| 49 |
-
model = Model()
|
| 50 |
model_checkpoint = torch.load(path_model, map_location=device)
|
| 51 |
model.load_state_dict(model_checkpoint['state_dict'])
|
| 52 |
model.eval()
|
|
|
|
| 53 |
print("Modelo cargado exitosamente")
|
| 54 |
|
| 55 |
# Descargar y cargar los embeddings desde Hugging Face
|
| 56 |
-
embeddings_file = hf_hub_download(
|
|
|
|
| 57 |
print(f"Archivo de embeddings descargado en: {embeddings_file}")
|
| 58 |
|
| 59 |
embeddings = {
|
|
@@ -63,26 +68,27 @@ def load():
|
|
| 63 |
|
| 64 |
# Actualizar los paths de las imágenes en los embeddings
|
| 65 |
for i in range(len(embeddings[0])):
|
| 66 |
-
embeddings[0][i] = (embeddings[0][i][0], path_images +
|
|
|
|
|
|
|
| 67 |
|
| 68 |
for i in range(len(embeddings[1])):
|
| 69 |
-
embeddings[1][i] = (embeddings[1][i][0], path_images +
|
|
|
|
| 70 |
|
| 71 |
return model, path_images, embeddings
|
| 72 |
|
| 73 |
-
|
| 74 |
-
def compute_text_embeddings(sketch):
|
| 75 |
with torch.no_grad():
|
| 76 |
sketch_feat = model(sketch.to(device), dtype='sketch')
|
| 77 |
return sketch_feat
|
| 78 |
|
| 79 |
-
|
| 80 |
def image_search(query, corpus, n_results=N_RESULTS):
|
| 81 |
-
query_embedding =
|
| 82 |
corpus_id = 0 if corpus == "Unsplash" else 1
|
| 83 |
image_features = torch.tensor(
|
| 84 |
[item[0] for item in embeddings[corpus_id]]).to(device)
|
| 85 |
-
|
| 86 |
dot_product = (image_features @ query_embedding.T)[:, 0]
|
| 87 |
_, max_indices = torch.topk(
|
| 88 |
dot_product, n_results, dim=0, largest=True, sorted=True)
|
|
@@ -96,11 +102,10 @@ def image_search(query, corpus, n_results=N_RESULTS):
|
|
| 96 |
|
| 97 |
return [
|
| 98 |
(
|
| 99 |
-
|
| 100 |
-
label_to_path[i], # DocExplore
|
| 101 |
)
|
| 102 |
for i in label_of_images[max_indices].cpu().numpy().tolist()
|
| 103 |
-
], dot_product[max_indices]
|
| 104 |
|
| 105 |
|
| 106 |
def make_square(img, fill_color=(255, 255, 255)):
|
|
@@ -171,20 +176,14 @@ div_style = {
|
|
| 171 |
}
|
| 172 |
|
| 173 |
|
| 174 |
-
print("Cargando modelos...")
|
| 175 |
model, path_images, embeddings = load()
|
| 176 |
-
source = {0: "\Ecommerce", 1: "\nNone"}
|
| 177 |
|
| 178 |
-
stroke_width = st.sidebar.slider("Stroke width: ", 1, 25, 5)
|
| 179 |
|
| 180 |
-
|
| 181 |
-
transforms.Resize((224, 224)),
|
| 182 |
-
transforms.ToTensor(),
|
| 183 |
-
transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
|
| 184 |
-
])
|
| 185 |
|
|
|
|
|
|
|
| 186 |
|
| 187 |
-
def main():
|
| 188 |
st.markdown(
|
| 189 |
"""
|
| 190 |
<style>
|
|
@@ -234,9 +233,8 @@ def main():
|
|
| 234 |
key="color_annotation_app",
|
| 235 |
)
|
| 236 |
|
| 237 |
-
|
| 238 |
-
|
| 239 |
-
corpus = c.radio("", ["Ecommerce"])
|
| 240 |
|
| 241 |
if canvas_result.image_data is not None:
|
| 242 |
draw = Image.fromarray(canvas_result.image_data.astype("uint8"))
|
|
@@ -249,11 +247,8 @@ def main():
|
|
| 249 |
mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]
|
| 250 |
)(draw_tensor)
|
| 251 |
draw_tensor = draw_tensor.unsqueeze(0)
|
| 252 |
-
else:
|
| 253 |
-
return
|
| 254 |
|
| 255 |
-
|
| 256 |
-
retrieved, dot_product = image_search(draw_tensor, corpus)
|
| 257 |
imgs, xs, ys = get_images([x[0] for x in retrieved])
|
| 258 |
encoded_images = []
|
| 259 |
for image_idx in range(len(imgs)):
|
|
@@ -265,6 +260,8 @@ def main():
|
|
| 265 |
img0.resize((new_x, new_y))))
|
| 266 |
st.markdown(get_html(retrieved, encoded_images),
|
| 267 |
unsafe_allow_html=True)
|
|
|
|
|
|
|
| 268 |
|
| 269 |
|
| 270 |
if __name__ == "__main__":
|
|
|
|
| 4 |
from io import BytesIO
|
| 5 |
import base64
|
| 6 |
from multiprocessing.dummy import Pool
|
| 7 |
+
from PIL import Image, ImageDraw, ImageOps
|
| 8 |
|
| 9 |
import torch
|
| 10 |
from torchvision import transforms
|
| 11 |
|
| 12 |
# sketches
|
| 13 |
from streamlit_drawable_canvas import st_canvas
|
|
|
|
|
|
|
| 14 |
from src.model_LN_prompt import Model
|
| 15 |
|
| 16 |
|
| 17 |
import pickle as pkl
|
| 18 |
from html import escape
|
| 19 |
+
from huggingface_hub import hf_hub_download, login
|
| 20 |
+
from datasets import load_dataset
|
| 21 |
|
| 22 |
token = os.getenv("HUGGINGFACE_TOKEN")
|
| 23 |
|
| 24 |
# Autentica usando el token
|
| 25 |
+
login(token=token, add_to_git_credential=True)
|
| 26 |
|
| 27 |
# Variables
|
| 28 |
+
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
|
| 29 |
+
print(f"Device: {device}")
|
| 30 |
HEIGHT = 200
|
| 31 |
N_RESULTS = 15
|
| 32 |
color = st.get_option("theme.primaryColor")
|
|
|
|
| 35 |
else:
|
| 36 |
color = tuple(int(color.lstrip("#")[i: i + 2], 16) for i in (0, 2, 4))
|
| 37 |
|
|
|
|
| 38 |
@st.cache_resource
|
| 39 |
def load():
|
| 40 |
+
print("Cargando todo...")
|
| 41 |
+
dataset = load_dataset("CHSTR/ecommerce")
|
| 42 |
+
path_images = "/".join(dataset['validation']
|
| 43 |
+
['image'][0].filename.split("/")[:-3]) + "/"
|
| 44 |
+
print(f"Directorio de imágenes: {path_images}")
|
| 45 |
|
| 46 |
# Descargar el modelo desde Hugging Face
|
| 47 |
+
path_model = hf_hub_download(
|
| 48 |
+
repo_id="CHSTR/Ecommerce", filename="dinov2_ecommerce.ckpt")
|
| 49 |
print(f"Archivo del modelo descargado en: {path_model}")
|
| 50 |
|
| 51 |
# Cargar el modelo
|
| 52 |
+
model = Model()
|
| 53 |
model_checkpoint = torch.load(path_model, map_location=device)
|
| 54 |
model.load_state_dict(model_checkpoint['state_dict'])
|
| 55 |
model.eval()
|
| 56 |
+
# model.to(device)
|
| 57 |
print("Modelo cargado exitosamente")
|
| 58 |
|
| 59 |
# Descargar y cargar los embeddings desde Hugging Face
|
| 60 |
+
embeddings_file = hf_hub_download(
|
| 61 |
+
repo_id="CHSTR/Ecommerce", filename="ecommerce_demo.pkl")
|
| 62 |
print(f"Archivo de embeddings descargado en: {embeddings_file}")
|
| 63 |
|
| 64 |
embeddings = {
|
|
|
|
| 68 |
|
| 69 |
# Actualizar los paths de las imágenes en los embeddings
|
| 70 |
for i in range(len(embeddings[0])):
|
| 71 |
+
embeddings[0][i] = (embeddings[0][i][0], path_images +
|
| 72 |
+
"/".join(embeddings[0][i][1].split("/")[-3:]))
|
| 73 |
+
# print(embeddings[0][i])
|
| 74 |
|
| 75 |
for i in range(len(embeddings[1])):
|
| 76 |
+
embeddings[1][i] = (embeddings[1][i][0], path_images +
|
| 77 |
+
"/".join(embeddings[1][i][1].split("/")[-3:]))
|
| 78 |
|
| 79 |
return model, path_images, embeddings
|
| 80 |
|
| 81 |
+
def compute_sketch(sketch):
|
|
|
|
| 82 |
with torch.no_grad():
|
| 83 |
sketch_feat = model(sketch.to(device), dtype='sketch')
|
| 84 |
return sketch_feat
|
| 85 |
|
|
|
|
| 86 |
def image_search(query, corpus, n_results=N_RESULTS):
|
| 87 |
+
query_embedding = compute_sketch(query)
|
| 88 |
corpus_id = 0 if corpus == "Unsplash" else 1
|
| 89 |
image_features = torch.tensor(
|
| 90 |
[item[0] for item in embeddings[corpus_id]]).to(device)
|
| 91 |
+
|
| 92 |
dot_product = (image_features @ query_embedding.T)[:, 0]
|
| 93 |
_, max_indices = torch.topk(
|
| 94 |
dot_product, n_results, dim=0, largest=True, sorted=True)
|
|
|
|
| 102 |
|
| 103 |
return [
|
| 104 |
(
|
| 105 |
+
label_to_path[i],
|
|
|
|
| 106 |
)
|
| 107 |
for i in label_of_images[max_indices].cpu().numpy().tolist()
|
| 108 |
+
], dot_product[max_indices]
|
| 109 |
|
| 110 |
|
| 111 |
def make_square(img, fill_color=(255, 255, 255)):
|
|
|
|
| 176 |
}
|
| 177 |
|
| 178 |
|
|
|
|
| 179 |
model, path_images, embeddings = load()
|
|
|
|
| 180 |
|
|
|
|
| 181 |
|
| 182 |
+
def main():
|
|
|
|
|
|
|
|
|
|
|
|
|
| 183 |
|
| 184 |
+
print("Cargando modelos...")
|
| 185 |
+
stroke_width = st.sidebar.slider("Stroke width: ", 1, 25, 5)
|
| 186 |
|
|
|
|
| 187 |
st.markdown(
|
| 188 |
"""
|
| 189 |
<style>
|
|
|
|
| 233 |
key="color_annotation_app",
|
| 234 |
)
|
| 235 |
|
| 236 |
+
st.columns((1, 3, 1))
|
| 237 |
+
corpus = ["Ecommerce"]
|
|
|
|
| 238 |
|
| 239 |
if canvas_result.image_data is not None:
|
| 240 |
draw = Image.fromarray(canvas_result.image_data.astype("uint8"))
|
|
|
|
| 247 |
mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]
|
| 248 |
)(draw_tensor)
|
| 249 |
draw_tensor = draw_tensor.unsqueeze(0)
|
|
|
|
|
|
|
| 250 |
|
| 251 |
+
retrieved, _ = image_search(draw_tensor, corpus)
|
|
|
|
| 252 |
imgs, xs, ys = get_images([x[0] for x in retrieved])
|
| 253 |
encoded_images = []
|
| 254 |
for image_idx in range(len(imgs)):
|
|
|
|
| 260 |
img0.resize((new_x, new_y))))
|
| 261 |
st.markdown(get_html(retrieved, encoded_images),
|
| 262 |
unsafe_allow_html=True)
|
| 263 |
+
else:
|
| 264 |
+
return
|
| 265 |
|
| 266 |
|
| 267 |
if __name__ == "__main__":
|
data/valid/Almohadas_y_cojines/6474eb7beca04255e216354707604caa.jpg
DELETED
|
Binary file (13.5 kB)
|
|
|
data/valid/Almohadas_y_cojines/b6f4b43eb8e47193358b0b3b69b9cd4d.jpg
DELETED
|
Binary file (29.2 kB)
|
|
|
data/valid/Almohadas_y_cojines/b6f4b43eb8e47193358b0b3b69b9cd4d_1.jpg
DELETED
|
Binary file (30.9 kB)
|
|
|
data/valid/Almohadas_y_cojines/b6f4b43eb8e47193358b0b3b69b9cd4d_2.jpg
DELETED
|
Binary file (30.4 kB)
|
|
|
data/valid/Almohadas_y_cojines/b6f4b43eb8e47193358b0b3b69b9cd4d_3.jpg
DELETED
|
Binary file (29.8 kB)
|
|
|
data/valid/Almohadas_y_cojines/b6f4b43eb8e47193358b0b3b69b9cd4d_4.jpg
DELETED
|
Binary file (30.5 kB)
|
|
|
data/valid/Almohadas_y_cojines/b6f4b43eb8e47193358b0b3b69b9cd4d_5.jpg
DELETED
|
Binary file (30.4 kB)
|
|
|
data/valid/Almohadas_y_cojines/d319582ad5976fa0526871af907d75e5.jpg
DELETED
|
Binary file (32.4 kB)
|
|
|
data/valid/Baberos/134673c99a13f9f17bb4a3420aa830bb.jpg
DELETED
|
Binary file (23.8 kB)
|
|
|
data/valid/Baberos/134673c99a13f9f17bb4a3420aa830bb_1.jpg
DELETED
|
Binary file (23.7 kB)
|
|
|
data/valid/Baberos/134673c99a13f9f17bb4a3420aa830bb_2.jpg
DELETED
|
Binary file (24 kB)
|
|
|
data/valid/Baberos/134673c99a13f9f17bb4a3420aa830bb_3.jpg
DELETED
|
Binary file (24 kB)
|
|
|
data/valid/Baberos/134673c99a13f9f17bb4a3420aa830bb_4.jpg
DELETED
|
Binary file (24.7 kB)
|
|
|
data/valid/Baberos/134673c99a13f9f17bb4a3420aa830bb_5.jpg
DELETED
|
Binary file (25 kB)
|
|
|
data/valid/Baberos/80ff9b872165c3f13c72859dbbcbd4a4.jpg
DELETED
|
Binary file (31.6 kB)
|
|
|
data/valid/Baberos/80ff9b872165c3f13c72859dbbcbd4a4_1.jpg
DELETED
|
Binary file (32.6 kB)
|
|
|
data/valid/Baberos/80ff9b872165c3f13c72859dbbcbd4a4_2.jpg
DELETED
|
Binary file (32.2 kB)
|
|
|
data/valid/Baberos/80ff9b872165c3f13c72859dbbcbd4a4_3.jpg
DELETED
|
Binary file (31.2 kB)
|
|
|
data/valid/Baberos/80ff9b872165c3f13c72859dbbcbd4a4_4.jpg
DELETED
|
Binary file (31.9 kB)
|
|
|
data/valid/Baberos/80ff9b872165c3f13c72859dbbcbd4a4_5.jpg
DELETED
|
Binary file (31.5 kB)
|
|
|
data/valid/Baberos/80ff9b872165c3f13c72859dbbcbd4a4_6.jpg
DELETED
|
Binary file (25.9 kB)
|
|
|
data/valid/Baberos/9daca95e1bd0ca6aad1812e44007a2ea.jpg
DELETED
|
Binary file (56.5 kB)
|
|
|
data/valid/Baberos/9daca95e1bd0ca6aad1812e44007a2ea_1.jpg
DELETED
|
Binary file (58.8 kB)
|
|
|
data/valid/Baberos/9daca95e1bd0ca6aad1812e44007a2ea_2.jpg
DELETED
|
Binary file (57.9 kB)
|
|
|
data/valid/Baberos/9daca95e1bd0ca6aad1812e44007a2ea_3.jpg
DELETED
|
Binary file (58.9 kB)
|
|
|
data/valid/Baberos/9daca95e1bd0ca6aad1812e44007a2ea_4.jpg
DELETED
|
Binary file (54.3 kB)
|
|
|
data/valid/Baberos/9daca95e1bd0ca6aad1812e44007a2ea_5.jpg
DELETED
|
Binary file (58.2 kB)
|
|
|
data/valid/Baberos/c4bb79af1cdae49467eea9efca2ee32c.jpg
DELETED
|
Binary file (31.4 kB)
|
|
|
data/valid/Baberos/c4bb79af1cdae49467eea9efca2ee32c_1.jpg
DELETED
|
Binary file (31.7 kB)
|
|
|
data/valid/Baberos/c4bb79af1cdae49467eea9efca2ee32c_2.jpg
DELETED
|
Binary file (31.2 kB)
|
|
|
data/valid/Baberos/c4bb79af1cdae49467eea9efca2ee32c_3.jpg
DELETED
|
Binary file (31.4 kB)
|
|
|
data/valid/Baberos/c4bb79af1cdae49467eea9efca2ee32c_4.jpg
DELETED
|
Binary file (31.6 kB)
|
|
|
data/valid/Baberos/c4bb79af1cdae49467eea9efca2ee32c_5.jpg
DELETED
|
Binary file (31.7 kB)
|
|
|
data/valid/Baberos/c4bb79af1cdae49467eea9efca2ee32c_6.jpg
DELETED
|
Binary file (27.7 kB)
|
|
|
data/valid/Baberos/c939ccd756d45577cb28f93ee5486a59.jpg
DELETED
|
Binary file (32.4 kB)
|
|
|
data/valid/Baberos/c939ccd756d45577cb28f93ee5486a59_1.jpg
DELETED
|
Binary file (32.6 kB)
|
|
|
data/valid/Baberos/c939ccd756d45577cb28f93ee5486a59_2.jpg
DELETED
|
Binary file (31.7 kB)
|
|
|
data/valid/Baberos/c939ccd756d45577cb28f93ee5486a59_3.jpg
DELETED
|
Binary file (32.3 kB)
|
|
|
data/valid/Baberos/c939ccd756d45577cb28f93ee5486a59_4.jpg
DELETED
|
Binary file (32.7 kB)
|
|
|
data/valid/Baberos/c939ccd756d45577cb28f93ee5486a59_5.jpg
DELETED
|
Binary file (33 kB)
|
|
|
data/valid/Baberos/cce281a309ee213c364cfa0bd62ba1f2.jpg
DELETED
|
Binary file (28 kB)
|
|
|
data/valid/Baberos/cce281a309ee213c364cfa0bd62ba1f2_1.jpg
DELETED
|
Binary file (28 kB)
|
|
|
data/valid/Baberos/cce281a309ee213c364cfa0bd62ba1f2_2.jpg
DELETED
|
Binary file (27.9 kB)
|
|
|
data/valid/Baberos/cce281a309ee213c364cfa0bd62ba1f2_3.jpg
DELETED
|
Binary file (28.1 kB)
|
|
|
data/valid/Baberos/cce281a309ee213c364cfa0bd62ba1f2_4.jpg
DELETED
|
Binary file (28.3 kB)
|
|
|
data/valid/Baberos/cce281a309ee213c364cfa0bd62ba1f2_5.jpg
DELETED
|
Binary file (28.3 kB)
|
|
|
data/valid/Baberos/cce281a309ee213c364cfa0bd62ba1f2_6.jpg
DELETED
|
Binary file (25.9 kB)
|
|
|
data/valid/Baberos/e3188f410d687d5e9c939cf9dcc85bc8.jpg
DELETED
|
Binary file (44.1 kB)
|
|
|
data/valid/Baberos/e3188f410d687d5e9c939cf9dcc85bc8_1.jpg
DELETED
|
Binary file (43.7 kB)
|
|
|