Upload folder using huggingface_hub
Browse files- .cursor/rules/project-intro.mdc +5 -0
- .gitattributes +9 -35
- .gitignore +104 -0
- .python-version +1 -0
- Makefile +17 -0
- README.md +87 -0
- assets/DISCO-Banner.png +3 -0
- assets/disco_predicts.png +3 -0
- assets/falcon_baseline.png +0 -0
- assets/garbage.png +3 -0
- assets/imaterialist_fashion_rules.png +3 -0
- data/annotations.csv +456 -0
- data/annotations.json +0 -0
- data/falcons_predictions.csv +456 -0
- data/labels.csv +456 -0
- data/sexualised_fashion.csv +3 -0
- data/test/Screenshot 2025-12-21 at 14.46.33.png +3 -0
- data/test/Screenshot 2025-12-21 at 15.06.41.png +3 -0
- notebooks/eda.ipynb +0 -0
- notebooks/nswf_test.ipynb +78 -0
- notebooks/processing.ipynb +1691 -0
- pyproject.toml +25 -0
- src/baseline.py +145 -0
- src/dataset.py +137 -0
- src/inference.py +114 -0
- src/model.py +72 -0
- src/train.py +389 -0
- uv.lock +0 -0
.cursor/rules/project-intro.mdc
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
alwaysApply: true
|
| 3 |
+
---
|
| 4 |
+
|
| 5 |
+
This project aims to fin tune NSFW detection model on data which is not considered modest. The use case ultimately is to be able to detect SUGGESTIVE content, even just bikinis (e.g. for kids to not watch filthy content on their devices).
|
.gitattributes
CHANGED
|
@@ -1,35 +1,9 @@
|
|
| 1 |
-
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
|
| 5 |
-
|
| 6 |
-
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
|
| 10 |
-
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
| 11 |
-
*.mlmodel filter=lfs diff=lfs merge=lfs -text
|
| 12 |
-
*.model filter=lfs diff=lfs merge=lfs -text
|
| 13 |
-
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
| 14 |
-
*.npy filter=lfs diff=lfs merge=lfs -text
|
| 15 |
-
*.npz filter=lfs diff=lfs merge=lfs -text
|
| 16 |
-
*.onnx filter=lfs diff=lfs merge=lfs -text
|
| 17 |
-
*.ot filter=lfs diff=lfs merge=lfs -text
|
| 18 |
-
*.parquet filter=lfs diff=lfs merge=lfs -text
|
| 19 |
-
*.pb filter=lfs diff=lfs merge=lfs -text
|
| 20 |
-
*.pickle filter=lfs diff=lfs merge=lfs -text
|
| 21 |
-
*.pkl filter=lfs diff=lfs merge=lfs -text
|
| 22 |
-
*.pt filter=lfs diff=lfs merge=lfs -text
|
| 23 |
-
*.pth filter=lfs diff=lfs merge=lfs -text
|
| 24 |
-
*.rar filter=lfs diff=lfs merge=lfs -text
|
| 25 |
-
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
| 26 |
-
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
| 27 |
-
*.tar.* filter=lfs diff=lfs merge=lfs -text
|
| 28 |
-
*.tar filter=lfs diff=lfs merge=lfs -text
|
| 29 |
-
*.tflite filter=lfs diff=lfs merge=lfs -text
|
| 30 |
-
*.tgz filter=lfs diff=lfs merge=lfs -text
|
| 31 |
-
*.wasm filter=lfs diff=lfs merge=lfs -text
|
| 32 |
-
*.xz filter=lfs diff=lfs merge=lfs -text
|
| 33 |
-
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
-
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
-
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
|
| 1 |
+
# Auto detect text files and perform LF normalization
|
| 2 |
+
* text=auto
|
| 3 |
+
assets/DISCO-Banner.png filter=lfs diff=lfs merge=lfs -text
|
| 4 |
+
assets/disco_predicts.png filter=lfs diff=lfs merge=lfs -text
|
| 5 |
+
assets/garbage.png filter=lfs diff=lfs merge=lfs -text
|
| 6 |
+
assets/imaterialist_fashion_rules.png filter=lfs diff=lfs merge=lfs -text
|
| 7 |
+
data/sexualised_fashion.csv filter=lfs diff=lfs merge=lfs -text
|
| 8 |
+
data/test/Screenshot[[:space:]]2025-12-21[[:space:]]at[[:space:]]14.46.33.png filter=lfs diff=lfs merge=lfs -text
|
| 9 |
+
data/test/Screenshot[[:space:]]2025-12-21[[:space:]]at[[:space:]]15.06.41.png filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.gitignore
ADDED
|
@@ -0,0 +1,104 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Python
|
| 2 |
+
__pycache__/
|
| 3 |
+
*.py[cod]
|
| 4 |
+
*$py.class
|
| 5 |
+
*.so
|
| 6 |
+
.Python
|
| 7 |
+
build/
|
| 8 |
+
develop-eggs/
|
| 9 |
+
dist/
|
| 10 |
+
downloads/
|
| 11 |
+
eggs/
|
| 12 |
+
.eggs/
|
| 13 |
+
lib/
|
| 14 |
+
lib64/
|
| 15 |
+
parts/
|
| 16 |
+
sdist/
|
| 17 |
+
var/
|
| 18 |
+
wheels/
|
| 19 |
+
pip-wheel-metadata/
|
| 20 |
+
share/python-wheels/
|
| 21 |
+
*.egg-info/
|
| 22 |
+
.installed.cfg
|
| 23 |
+
*.egg
|
| 24 |
+
MANIFEST
|
| 25 |
+
|
| 26 |
+
# Virtual Environments
|
| 27 |
+
.env
|
| 28 |
+
.venv
|
| 29 |
+
env/
|
| 30 |
+
venv/
|
| 31 |
+
ENV/
|
| 32 |
+
env.bak/
|
| 33 |
+
venv.bak/
|
| 34 |
+
|
| 35 |
+
# IDEs and Editors
|
| 36 |
+
.vscode/
|
| 37 |
+
.idea/
|
| 38 |
+
*.swp
|
| 39 |
+
*.swo
|
| 40 |
+
*~
|
| 41 |
+
.project
|
| 42 |
+
.pydevproject
|
| 43 |
+
.settings/
|
| 44 |
+
*.sublime-project
|
| 45 |
+
*.sublime-workspace
|
| 46 |
+
|
| 47 |
+
# Jupyter Notebook
|
| 48 |
+
.ipynb_checkpoints
|
| 49 |
+
*.ipynb_checkpoints/
|
| 50 |
+
|
| 51 |
+
# OS
|
| 52 |
+
.DS_Store
|
| 53 |
+
.DS_Store?
|
| 54 |
+
._*
|
| 55 |
+
.Spotlight-V100
|
| 56 |
+
.Trashes
|
| 57 |
+
ehthumbs.db
|
| 58 |
+
Thumbs.db
|
| 59 |
+
desktop.ini
|
| 60 |
+
|
| 61 |
+
# Project-specific: Generated models and results
|
| 62 |
+
models/
|
| 63 |
+
results/
|
| 64 |
+
*.joblib
|
| 65 |
+
*.pkl
|
| 66 |
+
*.h5
|
| 67 |
+
*.ckpt
|
| 68 |
+
*.pt
|
| 69 |
+
*.pth
|
| 70 |
+
|
| 71 |
+
# Data files (uncomment if you don't want to track images)
|
| 72 |
+
# data/imgs/
|
| 73 |
+
# data/test/
|
| 74 |
+
|
| 75 |
+
# Logs
|
| 76 |
+
*.log
|
| 77 |
+
logs/
|
| 78 |
+
|
| 79 |
+
# Temporary files
|
| 80 |
+
*.tmp
|
| 81 |
+
*.temp
|
| 82 |
+
.cache/
|
| 83 |
+
.pytest_cache/
|
| 84 |
+
.mypy_cache/
|
| 85 |
+
.dmypy.json
|
| 86 |
+
dmypy.json
|
| 87 |
+
|
| 88 |
+
# Coverage reports
|
| 89 |
+
htmlcov/
|
| 90 |
+
.tox/
|
| 91 |
+
.coverage
|
| 92 |
+
.coverage.*
|
| 93 |
+
coverage.xml
|
| 94 |
+
*.cover
|
| 95 |
+
.hypothesis/
|
| 96 |
+
|
| 97 |
+
# Environment variables
|
| 98 |
+
.env.local
|
| 99 |
+
.env.*.local
|
| 100 |
+
|
| 101 |
+
# UV
|
| 102 |
+
.uv/
|
| 103 |
+
|
| 104 |
+
data/imgs
|
.python-version
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
3.13
|
Makefile
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
.PHONY: baseline help copy-label-studio-images train
|
| 2 |
+
|
| 3 |
+
help:
|
| 4 |
+
@echo "Available targets:"
|
| 5 |
+
@echo " baseline - Run the baseline NSFW detection script"
|
| 6 |
+
@echo " copy-label-studio-images - Copy annotated images from Label Studio"
|
| 7 |
+
@echo " train - Train the model"
|
| 8 |
+
@echo " help - Show this help message"
|
| 9 |
+
|
| 10 |
+
baseline:
|
| 11 |
+
uv run python src/baseline.py
|
| 12 |
+
|
| 13 |
+
copy-label-studio-images:
|
| 14 |
+
uv run python -c "import json, shutil; from pathlib import Path; from rich import print; ls_media = Path.home() / 'Library/Application Support/label-studio/media/upload/5'; project_imgs = Path('data/imgs'); anns = json.load(open('data/annotations.json')); files = [a['file_upload'] for a in anns if a.get('file_upload')]; [shutil.copy2(ls_media / f, project_imgs / f) for f in files if (ls_media / f).exists()]; print(f'✓ Copied {sum(1 for f in files if (project_imgs / f).exists())} images')"
|
| 15 |
+
|
| 16 |
+
train:
|
| 17 |
+
uv run python -m src.train
|
README.md
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
|
| 2 |
+
# DISCO: Detection of Implicit Suggestive Content Overlays
|
| 3 |
+
|
| 4 |
+

|
| 5 |
+
|
| 6 |
+
Kids are increasingly exposed to suggestive content on social media and the big companies don't do enough against it. E.g. Roblox and Youtube kids.
|
| 7 |
+
|
| 8 |
+
Here an example of what your kid might see on Youtube Kids:
|
| 9 |
+
|
| 10 |
+

|
| 11 |
+
|
| 12 |
+
To combat sexualisation of content on social media which is targetted towards kids, I trained a model to detect suggestive content. This can hopefully be extended to either detect content that is not suitable for kids during preprocessing or even during real time on device inference. (maybe in the future)
|
| 13 |
+
|
| 14 |
+
This was just a small weekend project, however if it seems to be somewhat useful, I might extend it in the future.
|
| 15 |
+
|
| 16 |
+

|
| 17 |
+
|
| 18 |
+
## Baseline comparison
|
| 19 |
+
|
| 20 |
+
I wanted to see how much more accurate my model is than a popular NSFW detection model. I used the Falconsai/nsfw_image_detection model to compare.
|
| 21 |
+
|
| 22 |
+
To my surprise, the NSFW model did really bad at detecting suggestive content. I understand it wasn't built for this purpose, however I expected it to at least do better than random.
|
| 23 |
+
|
| 24 |
+
see `baseline.py` and `eda.ipynb` for the implementation.
|
| 25 |
+
|
| 26 |
+

|
| 27 |
+
|
| 28 |
+
## Dataset
|
| 29 |
+
|
| 30 |
+
For training the model, I used iMaterialist dataset from Kaggle. I took a small subset of images and labled them myself using Label Studio.
|
| 31 |
+
|
| 32 |
+
Sadly, the terms of the dataset mention that I may not distribute the dataset, nor use it for commercial purposes (which I didnt plan to do anyways).
|
| 33 |
+
|
| 34 |
+
This however does mean that the model is not fully reproducible in this state, unless you accept the terms of the dataset and download it yourself. If this model seems to be useful, I will try to find a different approach to gathering data and training the model.
|
| 35 |
+
|
| 36 |
+

|
| 37 |
+
|
| 38 |
+
### Methodology
|
| 39 |
+
|
| 40 |
+
I labled in total 455 images, with 3 categories to begin with: FAMILY_SAFE, UNCERTAIN and SUGGESTIVE.
|
| 41 |
+
|
| 42 |
+
For the training however I combined FAMILY_SAFE and UNCERTAIN into a single category called FAMILY_SAFE/UNCERTAIN. This is a point of improvement for the future.
|
| 43 |
+
|
| 44 |
+
The default split is as follows: 70% for training, 15% for validation and 15% for testing.
|
| 45 |
+
|
| 46 |
+
## Model
|
| 47 |
+
|
| 48 |
+
The model itself combines a CLIP image encoder with a linear classifier. (super simple)
|
| 49 |
+
|
| 50 |
+
In the forward pass, I generate the image features using the CLIP model and then pass them through the linear classifier.
|
| 51 |
+
|
| 52 |
+
Then to predict the probability of the SUGGESTIVE class, I use the softmax function.
|
| 53 |
+
|
| 54 |
+
```python
|
| 55 |
+
proba = torch.softmax(logits, dim=-1)[0, 1].item()
|
| 56 |
+
```
|
| 57 |
+
|
| 58 |
+
And then I can predict the class by thresholding the probability.
|
| 59 |
+
|
| 60 |
+
```python
|
| 61 |
+
pred = (proba >= threshold).long()
|
| 62 |
+
```
|
| 63 |
+
|
| 64 |
+
## Training
|
| 65 |
+
|
| 66 |
+
I trained the model using mps instead of CPU or cuda.
|
| 67 |
+
|
| 68 |
+
It is trained on 10 epochs with a batch size of 32, a learning rate of 1e-3, a weight decay of 1e-4 and a class weight of "balanced". It's trained on 2 classed instead of 3 and it is initialised with a threshold of 0.5 (meaning if an image has a probability of 0.5 or higher, it is predicted as SUGGESTIVE).
|
| 69 |
+
|
| 70 |
+
During the training, I valvulate the model on the validation set and save the best model based on the F1 score. If it beats the previous best F1 score, I save the model.
|
| 71 |
+
|
| 72 |
+
After the training, I tune the threshold on the validation set and save the best threshold based on the F1 score.
|
| 73 |
+
|
| 74 |
+
```python
|
| 75 |
+
best_threshold, threshold_metrics = tune_threshold(
|
| 76 |
+
val_labels_np, val_scores, metric="f1")
|
| 77 |
+
```
|
| 78 |
+
|
| 79 |
+
## Results
|
| 80 |
+
|
| 81 |
+
## Known problems and future improvements
|
| 82 |
+
|
| 83 |
+
I am aware that my own labelling is not perfect and subjective. Therefore the biggest improvement would be to have a more objective labelling process. (Add more annotators and images to the dataset)
|
| 84 |
+
|
| 85 |
+
Another big problem is lisencing and copyright issues. My goal is to make this model better detect what is actually shown to kids, such as things like elsa and spiderman in suggestive content.
|
| 86 |
+
|
| 87 |
+
Other than that, my goal is to make this model work fast on browsers for the future possibility to add it to a chrome extension to block content in real time.
|
assets/DISCO-Banner.png
ADDED
|
Git LFS Details
|
assets/disco_predicts.png
ADDED
|
Git LFS Details
|
assets/falcon_baseline.png
ADDED
|
assets/garbage.png
ADDED
|
Git LFS Details
|
assets/imaterialist_fashion_rules.png
ADDED
|
Git LFS Details
|
data/annotations.csv
ADDED
|
@@ -0,0 +1,456 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"annotation_id","annotator","choice","created_at","id","image","lead_time","updated_at"
|
| 2 |
+
175,"1","UNCERTAIN","2025-12-20T10:56:29.661960Z",175,"/data/upload/5/0f7d40c8-ffd86ff5fbd82d0e6eb176cbc0b83634.jpg",24.357,"2025-12-20T10:56:29.661978Z"
|
| 3 |
+
176,"1","FAMILY_SAFE","2025-12-20T10:56:35.977035Z",176,"/data/upload/5/abe701ef-fff11e31ec0146bd469e5e3afa14a37a.jpg",6.115,"2025-12-20T10:56:35.977061Z"
|
| 4 |
+
177,"1","UNCERTAIN","2025-12-20T10:56:38.116840Z",177,"/data/upload/5/f3f6d9e7-ff8ba374753afc33d6efcddfa8190820.jpg",1.913,"2025-12-20T10:56:38.116864Z"
|
| 5 |
+
178,"1","UNCERTAIN","2025-12-20T10:56:41.031047Z",178,"/data/upload/5/2a71e0e5-ff8f980e673cd0ca47acd5e46a60860e.jpg",2.665,"2025-12-20T10:56:41.031067Z"
|
| 6 |
+
179,"1","UNCERTAIN","2025-12-20T10:56:43.279382Z",179,"/data/upload/5/883fb0f5-ff89d127a396bc4e269161fcb0debafc.jpg",2.029,"2025-12-20T10:56:43.279402Z"
|
| 7 |
+
180,"1","FAMILY_SAFE","2025-12-20T10:56:44.929628Z",180,"/data/upload/5/2af0302e-ff943feb34677ab7380b172f5a879061.jpg",1.407,"2025-12-20T10:56:44.929649Z"
|
| 8 |
+
181,"1","SUGGESTIVE","2025-12-20T10:56:47.266206Z",181,"/data/upload/5/00b62e8d-ff8923c82c694582614e3c6426f27d50.jpg",2.1,"2025-12-20T10:56:47.266226Z"
|
| 9 |
+
182,"1","UNCERTAIN","2025-12-20T10:56:52.306273Z",182,"/data/upload/5/bc29dd51-ffa3ea1e617fc51d9f897c3651d8c58c.jpg",4.823,"2025-12-20T10:56:52.306292Z"
|
| 10 |
+
183,"1","FAMILY_SAFE","2025-12-20T10:56:55.191244Z",183,"/data/upload/5/7efcc1a9-ffb14bc253b175a8064d17ffe2c7249b.jpg",2.678,"2025-12-20T10:56:55.191265Z"
|
| 11 |
+
184,"1","UNCERTAIN","2025-12-20T10:56:57.847092Z",184,"/data/upload/5/1ade517e-ff5c303cb978725b41ecdc33f99a9811.jpg",2.437,"2025-12-20T10:56:57.847112Z"
|
| 12 |
+
185,"1","FAMILY_SAFE","2025-12-20T10:57:00.785194Z",185,"/data/upload/5/e90235cf-ff4ee441959276cee003489e10030787.jpg",2.724,"2025-12-20T10:57:00.785209Z"
|
| 13 |
+
186,"1","SUGGESTIVE","2025-12-20T10:57:02.767594Z",186,"/data/upload/5/cb00e4b8-ff57d7cdec78610cfc32857254662054.jpg",1.808,"2025-12-20T10:57:02.767604Z"
|
| 14 |
+
187,"1","SUGGESTIVE","2025-12-20T10:57:05.232064Z",187,"/data/upload/5/d140fb6b-ff42165c1c025a99db8fd3fbf47b9e8d.jpg",2.289,"2025-12-20T10:57:05.232085Z"
|
| 15 |
+
188,"1","SUGGESTIVE","2025-12-20T10:57:06.997123Z",188,"/data/upload/5/a1cd3b22-ff0dbc383dfd54bed44ec0583cbba777.jpg",1.541,"2025-12-20T10:57:06.997149Z"
|
| 16 |
+
189,"1","SUGGESTIVE","2025-12-20T10:57:08.812119Z",189,"/data/upload/5/ed323d8b-ff3cae8c55408c7ed67ef1daf9751319.jpg",1.614,"2025-12-20T10:57:08.812139Z"
|
| 17 |
+
190,"1","UNCERTAIN","2025-12-20T10:57:11.626324Z",190,"/data/upload/5/c8ec92d5-fee9ea29f695f6f590dbaf3ecc99351b.jpg",2.592,"2025-12-20T10:57:11.626346Z"
|
| 18 |
+
191,"1","SUGGESTIVE","2025-12-20T10:57:13.328356Z",191,"/data/upload/5/f2c80c32-ff0a5673ea6b3139e5440728d7be66b4.jpg",1.495,"2025-12-20T10:57:13.328378Z"
|
| 19 |
+
192,"1","SUGGESTIVE","2025-12-20T10:57:15.124462Z",192,"/data/upload/5/e9b17aee-ff007a23e0caf370e590d636413628fb.jpg",1.586,"2025-12-20T10:57:15.124505Z"
|
| 20 |
+
193,"1","SUGGESTIVE","2025-12-20T10:57:16.758021Z",193,"/data/upload/5/c53b2fea-feb2e70ea41a86df9c9984df1aff49d1.jpg",1.427,"2025-12-20T10:57:16.758042Z"
|
| 21 |
+
194,"1","UNCERTAIN","2025-12-20T10:57:20.199635Z",194,"/data/upload/5/1540c751-feb3ae09e5e5e2d27b1c6b0d75e66c73.jpg",3.232,"2025-12-20T10:57:20.199658Z"
|
| 22 |
+
195,"1","UNCERTAIN","2025-12-20T10:57:22.724559Z",195,"/data/upload/5/18eb5521-febafb43e0a8a5a62bd64d0e1e2c51bb.jpg",2.323,"2025-12-20T10:57:22.724579Z"
|
| 23 |
+
196,"1","FAMILY_SAFE","2025-12-20T10:57:24.280506Z",196,"/data/upload/5/09c99130-fec2e3149882333a9a5a381f562f9536.jpg",1.349,"2025-12-20T10:57:24.280525Z"
|
| 24 |
+
197,"1","SUGGESTIVE","2025-12-20T10:57:26.340851Z",197,"/data/upload/5/6d3cfee1-fec30d1ce7fd3c5f8056da81cc0f56cd.jpg",1.853,"2025-12-20T10:57:26.340871Z"
|
| 25 |
+
198,"1","UNCERTAIN","2025-12-20T10:57:28.435184Z",198,"/data/upload/5/02e91ed5-fecaf071c6d469a5e9db4516cf04c34f.jpg",1.891,"2025-12-20T10:57:28.435196Z"
|
| 26 |
+
199,"1","UNCERTAIN","2025-12-20T10:57:31.742539Z",199,"/data/upload/5/6084597d-fed1a27739f7fc733adfe4843185b995.jpg",3.097,"2025-12-20T10:57:31.742561Z"
|
| 27 |
+
200,"1","FAMILY_SAFE","2025-12-20T10:57:33.618254Z",200,"/data/upload/5/18699932-fe8d4f54e561bf7a76f70e6b28299d59.jpg",1.671,"2025-12-20T10:57:33.618276Z"
|
| 28 |
+
201,"1","FAMILY_SAFE","2025-12-20T10:57:34.996660Z",201,"/data/upload/5/759b4eb3-fe4ec0e6a0803e088352ad9cba4e969a.jpg",1.163,"2025-12-20T10:57:34.996679Z"
|
| 29 |
+
202,"1","UNCERTAIN","2025-12-20T10:57:39.780303Z",202,"/data/upload/5/fd0a4064-fe4f57b1dc8f46cbd79d69ad05652ac8.jpg",4.575,"2025-12-20T10:57:39.780323Z"
|
| 30 |
+
203,"1","SUGGESTIVE","2025-12-20T10:57:42.918342Z",203,"/data/upload/5/722170f8-fe61bb1e7709ddb889307cd6d644bbb9.jpg",2.93,"2025-12-20T10:57:42.918364Z"
|
| 31 |
+
204,"1","UNCERTAIN","2025-12-20T10:57:46.679930Z",204,"/data/upload/5/597903c6-fe446bc03fc71ccd0559f01bebbd073d.jpg",3.55,"2025-12-20T10:57:46.679953Z"
|
| 32 |
+
205,"1","UNCERTAIN","2025-12-20T10:57:52.644595Z",205,"/data/upload/5/ded203db-fe11b6d8acc63b2819390a12a32bbd30.jpg",5.756,"2025-12-20T10:57:52.644618Z"
|
| 33 |
+
206,"1","FAMILY_SAFE","2025-12-20T10:57:54.674103Z",206,"/data/upload/5/72e813f5-fde81d8132b2c70f39798f11186997bd.jpg",1.807,"2025-12-20T10:57:54.674125Z"
|
| 34 |
+
207,"1","FAMILY_SAFE","2025-12-20T10:57:57.547565Z",207,"/data/upload/5/6474cda9-fde879b3ab6d5f8fb99aacad817dc18f.jpg",2.668,"2025-12-20T10:57:57.547584Z"
|
| 35 |
+
208,"1","FAMILY_SAFE","2025-12-20T10:57:59.787547Z",208,"/data/upload/5/9d734426-fdfc5d73210e52e70f9c1b337c7a7423.jpg",2.025,"2025-12-20T10:57:59.787569Z"
|
| 36 |
+
209,"1","UNCERTAIN","2025-12-20T10:58:03.315283Z",209,"/data/upload/5/940a8d2a-fe06e1df8abfcc599b4edf3ceb84b767.jpg",3.285,"2025-12-20T10:58:03.315306Z"
|
| 37 |
+
210,"1","FAMILY_SAFE","2025-12-20T10:58:05.355008Z",210,"/data/upload/5/6cf544b3-fdcc56c858be84644a24f71ca1ecf009.jpg",1.825,"2025-12-20T10:58:05.355032Z"
|
| 38 |
+
211,"1","FAMILY_SAFE","2025-12-20T10:58:06.908523Z",211,"/data/upload/5/c90492e9-fdce40a990a776a3ef934aa8eacfa0da.jpg",1.322,"2025-12-20T10:58:06.908545Z"
|
| 39 |
+
212,"1","FAMILY_SAFE","2025-12-20T10:58:08.724638Z",212,"/data/upload/5/d5d56f5c-fdd0daec3624d1d7acf8048484a7efe2.jpg",1.629,"2025-12-20T10:58:08.724649Z"
|
| 40 |
+
213,"1","UNCERTAIN","2025-12-20T10:58:11.083198Z",213,"/data/upload/5/1b6ade1e-fdbea88aeaa93ac7dbcb38d07b917e7d.jpg",2.145,"2025-12-20T10:58:11.083219Z"
|
| 41 |
+
214,"1","UNCERTAIN","2025-12-20T10:58:15.163580Z",214,"/data/upload/5/e7c85aca-fdc00eac708506181cc0b3018d217b97.jpg",3.845,"2025-12-20T10:58:15.163600Z"
|
| 42 |
+
215,"1","SUGGESTIVE","2025-12-20T10:58:16.794312Z",215,"/data/upload/5/6519a095-fd8eea5a65e5ef6cec86fe214c5a3cd3.jpg",1.405,"2025-12-20T10:58:16.794331Z"
|
| 43 |
+
216,"1","FAMILY_SAFE","2025-12-20T10:58:18.941871Z",216,"/data/upload/5/bdce6a65-fd918dbde3d770d03716835677e7b611.jpg",1.912,"2025-12-20T10:58:18.941894Z"
|
| 44 |
+
217,"1","SUGGESTIVE","2025-12-20T10:58:23.970295Z",217,"/data/upload/5/8ed58548-fd9371dd911d3a2099a6a652db4248b4.jpg",4.812,"2025-12-20T10:58:23.970317Z"
|
| 45 |
+
218,"1","SUGGESTIVE","2025-12-20T10:58:28.725792Z",218,"/data/upload/5/72f07c2b-fd94006f594a7575961947fcca9faa08.jpg",4.527,"2025-12-20T10:58:28.725805Z"
|
| 46 |
+
219,"1","FAMILY_SAFE","2025-12-20T10:58:30.567211Z",219,"/data/upload/5/9eb0117b-fd7f50b9d57c9384041914d1b4cdd77c.jpg",1.652,"2025-12-20T10:58:30.567236Z"
|
| 47 |
+
220,"1","FAMILY_SAFE","2025-12-20T10:58:32.107655Z",220,"/data/upload/5/e243712d-fd71a7a81dea0c9fc195cf6d6f32b0a9.jpg",1.329,"2025-12-20T10:58:32.107680Z"
|
| 48 |
+
221,"1","FAMILY_SAFE","2025-12-20T10:58:34.565800Z",221,"/data/upload/5/3198b794-fd826bc213d0273afbb83b3c4aec1adc.jpg",2.249,"2025-12-20T10:58:34.565818Z"
|
| 49 |
+
222,"1","FAMILY_SAFE","2025-12-20T10:58:36.088297Z",222,"/data/upload/5/75ee25dc-fd71396788725bb988c9cd3689fcde68.jpg",1.313,"2025-12-20T10:58:36.088320Z"
|
| 50 |
+
223,"1","UNCERTAIN","2025-12-20T10:58:39.126725Z",223,"/data/upload/5/3dade0ea-fd3e2ce0703f9c027862f5a79c788b56.jpg",2.834,"2025-12-20T10:58:39.126748Z"
|
| 51 |
+
224,"1","FAMILY_SAFE","2025-12-20T10:58:41.598447Z",224,"/data/upload/5/13a4e537-fd4bbf6927a13c5289dfa509b7a4078b.jpg",2.263,"2025-12-20T10:58:41.598470Z"
|
| 52 |
+
225,"1","SUGGESTIVE","2025-12-20T10:58:45.314112Z",225,"/data/upload/5/afddcafe-fd4da06b37fbae5380cf0d7fa0678103.jpg",3.518,"2025-12-20T10:58:45.314132Z"
|
| 53 |
+
226,"1","FAMILY_SAFE","2025-12-20T10:58:47.509028Z",226,"/data/upload/5/84acb822-fd4eb64e7f0ca587d908435fb95b2909.jpg",1.983,"2025-12-20T10:58:47.509054Z"
|
| 54 |
+
227,"1","FAMILY_SAFE","2025-12-20T10:58:48.909406Z",227,"/data/upload/5/022b4f3e-fd39709199d9f45147c183dee3c5d697.jpg",1.197,"2025-12-20T10:58:48.909427Z"
|
| 55 |
+
228,"1","SUGGESTIVE","2025-12-20T10:58:51.965227Z",228,"/data/upload/5/d4ccee96-fd24b551b4531ae14433a7950eaa85b3.jpg",2.829,"2025-12-20T10:58:51.965248Z"
|
| 56 |
+
229,"1","FAMILY_SAFE","2025-12-20T10:58:53.445069Z",229,"/data/upload/5/3a78a22b-fd38a720ae06640dd25aaf9c11dd9672.jpg",1.28,"2025-12-20T10:58:53.445089Z"
|
| 57 |
+
230,"1","UNCERTAIN","2025-12-20T10:58:55.604188Z",230,"/data/upload/5/6d307a2e-fd2268af5eafa750a7e5a3a521ff7fdd.jpg",6.054,"2025-12-20T10:59:05.944396Z"
|
| 58 |
+
231,"1","SUGGESTIVE","2025-12-20T10:59:14.148370Z",231,"/data/upload/5/b224fc67-fd150330c8a62cd9ab45e51f4de6969f.jpg",4.829,"2025-12-20T10:59:14.148389Z"
|
| 59 |
+
232,"1","UNCERTAIN","2025-12-20T10:59:16.230973Z",232,"/data/upload/5/6da2441b-fcf901727f0b68c35c55f5734189c1f0.jpg",1.889,"2025-12-20T10:59:16.230983Z"
|
| 60 |
+
233,"1","SUGGESTIVE","2025-12-20T10:59:18.476259Z",233,"/data/upload/5/ef1cbf46-fd08dc2a899b79496087b34b88b82f2d.jpg",2.061,"2025-12-20T10:59:18.476284Z"
|
| 61 |
+
234,"1","SUGGESTIVE","2025-12-20T10:59:20.279562Z",234,"/data/upload/5/d1a55b96-fca9c570e98556bb8c40835c55cba67d.jpg",1.596,"2025-12-20T10:59:20.279581Z"
|
| 62 |
+
235,"1","SUGGESTIVE","2025-12-20T10:59:23.589158Z",235,"/data/upload/5/fc1397fa-fcbbcf0191ab925aa67604ff0c7f141e.jpg",3.101,"2025-12-20T10:59:23.589180Z"
|
| 63 |
+
236,"1","SUGGESTIVE","2025-12-20T10:59:26.455141Z",236,"/data/upload/5/74454c95-fcbf1a2490d9531efc33322b2702912f.jpg",2.662,"2025-12-20T10:59:26.455162Z"
|
| 64 |
+
237,"1","FAMILY_SAFE","2025-12-20T10:59:28.178566Z",237,"/data/upload/5/b7206afa-fcc50f8b1362042b4acad74a4b4ae4ed.jpg",1.529,"2025-12-20T10:59:28.178586Z"
|
| 65 |
+
238,"1","SUGGESTIVE","2025-12-20T10:59:31.104786Z",238,"/data/upload/5/64be13ce-fc813fdb8cb41651b9b4d5141fcd386a.jpg",2.72,"2025-12-20T10:59:31.104804Z"
|
| 66 |
+
239,"1","SUGGESTIVE","2025-12-20T10:59:34.924429Z",239,"/data/upload/5/d5c64c7c-fca4fe8aa6a350ab9680692ebbe1e13c.jpg",3.618,"2025-12-20T10:59:34.924454Z"
|
| 67 |
+
240,"1","SUGGESTIVE","2025-12-20T10:59:38.941569Z",240,"/data/upload/5/8af150d5-fca025dcf76a43feae0bf2e8e9a6c1e2.jpg",3.809,"2025-12-20T10:59:38.941590Z"
|
| 68 |
+
241,"1","SUGGESTIVE","2025-12-20T10:59:42.058775Z",241,"/data/upload/5/0df4b27b-fc6fefe3f417fdbfd91da8cffe59f7db.jpg",2.934,"2025-12-20T10:59:42.058800Z"
|
| 69 |
+
242,"1","SUGGESTIVE","2025-12-20T10:59:44.662908Z",242,"/data/upload/5/a90c3b4e-fc39f11aab8aae4bb03057701a7b8312.jpg",2.399,"2025-12-20T10:59:44.662928Z"
|
| 70 |
+
243,"1","FAMILY_SAFE","2025-12-20T10:59:49.192648Z",243,"/data/upload/5/3c42d798-fc74b1fc4095a324b1f1ca1ac322278d.jpg",4.315,"2025-12-20T10:59:49.192673Z"
|
| 71 |
+
244,"1","FAMILY_SAFE","2025-12-20T10:59:50.613951Z",244,"/data/upload/5/0bfb63b2-fc644a2683a976d8391e70f88408468b.jpg",1.211,"2025-12-20T10:59:50.613973Z"
|
| 72 |
+
245,"1","FAMILY_SAFE","2025-12-20T10:59:51.891384Z",245,"/data/upload/5/b0091e81-fbf4b07fffa61fa2650649ec19debf39.jpg",1.069,"2025-12-20T10:59:51.891404Z"
|
| 73 |
+
246,"1","SUGGESTIVE","2025-12-20T10:59:55.596094Z",246,"/data/upload/5/6faa5147-fbf13c899fbdd8e750dc46cc284249c5.jpg",3.49,"2025-12-20T10:59:55.596114Z"
|
| 74 |
+
247,"1","FAMILY_SAFE","2025-12-20T10:59:57.228637Z",247,"/data/upload/5/bcfeea6a-fc1baf625d3e36ca4c5a29521f72525e.jpg",1.428,"2025-12-20T10:59:57.228659Z"
|
| 75 |
+
248,"1","FAMILY_SAFE","2025-12-20T10:59:59.217183Z",248,"/data/upload/5/0d5b1538-fc21d81fb821d214b4f4f1d7f553475d.jpg",1.786,"2025-12-20T10:59:59.217205Z"
|
| 76 |
+
249,"1","UNCERTAIN","2025-12-20T11:00:08.247796Z",249,"/data/upload/5/cfb6f5d7-fc07723d545d098aafab4aeb7d2e65a3.jpg",8.794,"2025-12-20T11:00:08.247817Z"
|
| 77 |
+
250,"1","SUGGESTIVE","2025-12-20T11:00:10.107692Z",250,"/data/upload/5/43a803bd-fbcddca8eb614e2e2076c1128d30fa58.jpg",1.625,"2025-12-20T11:00:10.107715Z"
|
| 78 |
+
251,"1","FAMILY_SAFE","2025-12-20T11:00:11.518608Z",251,"/data/upload/5/930fa681-fbd64159d7d027262f736408659d40cb.jpg",1.201,"2025-12-20T11:00:11.518627Z"
|
| 79 |
+
252,"1","SUGGESTIVE","2025-12-20T11:00:14.639043Z",252,"/data/upload/5/c884f2e6-fbb763c6f6f858fdfc270f3f3bda1eac.jpg",2.913,"2025-12-20T11:00:14.639065Z"
|
| 80 |
+
253,"1","FAMILY_SAFE","2025-12-20T11:00:17.082875Z",253,"/data/upload/5/b3f73152-fbc604a00ac5d9d6a73cec8789a75d0c.jpg",2.239,"2025-12-20T11:00:17.082895Z"
|
| 81 |
+
254,"1","SUGGESTIVE","2025-12-20T11:00:21.019281Z",254,"/data/upload/5/f3e719e9-fbc9929373c24b1afd9523aa5253a594.jpg",3.728,"2025-12-20T11:00:21.019303Z"
|
| 82 |
+
255,"1","SUGGESTIVE","2025-12-20T11:00:22.337701Z",255,"/data/upload/5/ac2b938f-fbca15037c332d6e9e658e2129217794.jpg",1.094,"2025-12-20T11:00:22.337722Z"
|
| 83 |
+
256,"1","SUGGESTIVE","2025-12-20T11:00:23.656989Z",256,"/data/upload/5/e0092f87-fb6ad7084b95e0bb2eb9575082907662.jpg",1.108,"2025-12-20T11:00:23.657010Z"
|
| 84 |
+
257,"1","SUGGESTIVE","2025-12-20T11:00:25.231571Z",257,"/data/upload/5/efd3b12b-fb7ba81d49347796a797d1322a64cb71.jpg",1.364,"2025-12-20T11:00:25.231595Z"
|
| 85 |
+
258,"1","FAMILY_SAFE","2025-12-20T11:00:26.635777Z",258,"/data/upload/5/74426174-fb701d0e6a714179959ac8e1e4e2cb88.jpg",1.181,"2025-12-20T11:00:26.635798Z"
|
| 86 |
+
259,"1","SUGGESTIVE","2025-12-20T11:00:28.021230Z",259,"/data/upload/5/68adaf6f-fb61755f0c2afaafdd9aa36f7632cbe5.jpg",1.179,"2025-12-20T11:00:28.021251Z"
|
| 87 |
+
260,"1","FAMILY_SAFE","2025-12-20T11:00:30.717567Z",260,"/data/upload/5/c61c6042-fb607386dd384e6b0d53ef878bbffc55.jpg",2.494,"2025-12-20T11:00:30.717588Z"
|
| 88 |
+
261,"1","FAMILY_SAFE","2025-12-20T11:00:32.367921Z",261,"/data/upload/5/7ec3bcbe-fb2e1bdb34ace56b99befc2547a8b83d.jpg",1.441,"2025-12-20T11:00:32.367944Z"
|
| 89 |
+
262,"1","FAMILY_SAFE","2025-12-20T11:00:34.782659Z",262,"/data/upload/5/bec475e6-fb3c593276f0f040a7450ca213d97882.jpg",2.203,"2025-12-20T11:00:34.782680Z"
|
| 90 |
+
263,"1","FAMILY_SAFE","2025-12-20T11:00:41.245651Z",263,"/data/upload/5/966460f7-fb50d0f85eb7e491722e734b961926f0.jpg",6.266,"2025-12-20T11:00:41.245662Z"
|
| 91 |
+
264,"1","FAMILY_SAFE","2025-12-20T11:00:42.448801Z",264,"/data/upload/5/243861f5-fb468ddeda48f68ec3539bebe07b92b4.jpg",1.016,"2025-12-20T11:00:42.448823Z"
|
| 92 |
+
265,"1","SUGGESTIVE","2025-12-20T11:00:45.419350Z",265,"/data/upload/5/54045990-fb1c02d4c50a59be3fe3cb249de403e0.jpg",2.76,"2025-12-20T11:00:45.419370Z"
|
| 93 |
+
266,"1","UNCERTAIN","2025-12-20T11:00:48.312669Z",266,"/data/upload/5/7439530f-faf1f5d9d6e51a84ce632df317dd5c5c.jpg",2.68,"2025-12-20T11:00:48.312691Z"
|
| 94 |
+
267,"1","UNCERTAIN","2025-12-20T11:00:51.135138Z",267,"/data/upload/5/e0eec550-faf27f9511974b5ef529ba718677c5f4.jpg",2.607,"2025-12-20T11:00:51.135161Z"
|
| 95 |
+
268,"1","FAMILY_SAFE","2025-12-20T11:00:53.511267Z",268,"/data/upload/5/1101ce4b-fab7821aae25aff865b20b0d33d86900.jpg",2.16,"2025-12-20T11:00:53.511289Z"
|
| 96 |
+
269,"1","FAMILY_SAFE","2025-12-20T11:00:55.652412Z",269,"/data/upload/5/26464718-fac69b44cccb94236c9f905bed46158f.jpg",1.926,"2025-12-20T11:00:55.652431Z"
|
| 97 |
+
270,"1","FAMILY_SAFE","2025-12-20T11:00:58.249487Z",270,"/data/upload/5/d588345d-fad53b443bc3e52bada85783afdac562.jpg",2.37,"2025-12-20T11:00:58.249507Z"
|
| 98 |
+
271,"1","UNCERTAIN","2025-12-20T11:01:01.962081Z",271,"/data/upload/5/7f1fa2e7-fad69c88bcef4434a55b3bf3854b3e56.jpg",3.505,"2025-12-20T11:01:01.962105Z"
|
| 99 |
+
272,"1","FAMILY_SAFE","2025-12-20T11:01:03.385673Z",272,"/data/upload/5/717afd8f-fa6ef41aabda28f51249407ce46a827e.jpg",1.212,"2025-12-20T11:01:03.385696Z"
|
| 100 |
+
273,"1","UNCERTAIN","2025-12-20T11:01:07.395182Z",273,"/data/upload/5/191a25a2-fa7b42eb84363adcd60082a3a7f02f84.jpg",3.793,"2025-12-20T11:01:07.395203Z"
|
| 101 |
+
274,"1","FAMILY_SAFE","2025-12-20T11:01:09.348245Z",274,"/data/upload/5/41febcdf-fa9e77f0788145d7ac42edcffb6e9dee.jpg",1.738,"2025-12-20T11:01:09.348266Z"
|
| 102 |
+
275,"1","UNCERTAIN","2025-12-20T11:01:11.745116Z",275,"/data/upload/5/4bb4ff8b-fa9f2688e1b4e92538569ecb9efecf2e.jpg",2.158,"2025-12-20T11:01:11.745139Z"
|
| 103 |
+
276,"1","UNCERTAIN","2025-12-20T11:01:13.426503Z",276,"/data/upload/5/12aefe0a-fa87c0f54b8cb07a14fc311c369e9a4c.jpg",1.462,"2025-12-20T11:01:13.426526Z"
|
| 104 |
+
277,"1","SUGGESTIVE","2025-12-20T11:01:15.136863Z",277,"/data/upload/5/0f927896-fa94a466d4178dcd4c762f7567c11147.jpg",1.495,"2025-12-20T11:01:15.136886Z"
|
| 105 |
+
278,"1","FAMILY_SAFE","2025-12-20T11:01:17.081107Z",278,"/data/upload/5/3b82e875-faa13416b0d8d2adc2b6815dd1e6c82d.jpg",1.723,"2025-12-20T11:01:17.081130Z"
|
| 106 |
+
279,"1","SUGGESTIVE","2025-12-20T11:01:20.677830Z",279,"/data/upload/5/7a5551c7-fa5b56c4e382fd4dca384daf1768acb4.jpg",3.381,"2025-12-20T11:01:20.677853Z"
|
| 107 |
+
280,"1","FAMILY_SAFE","2025-12-20T11:01:23.266159Z",280,"/data/upload/5/abf1e90d-fa5c6d304163052761d4453c693c202d.jpg",2.375,"2025-12-20T11:01:23.266179Z"
|
| 108 |
+
281,"1","UNCERTAIN","2025-12-20T11:01:25.725201Z",281,"/data/upload/5/150e925a-fa6a15e903e7949093f4ec11fcffdb01.jpg",2.237,"2025-12-20T11:01:25.725220Z"
|
| 109 |
+
282,"1","SUGGESTIVE","2025-12-20T11:01:31.896568Z",282,"/data/upload/5/76aa5a7e-fa41e4a96249c0b8ed90389733c081d8.jpg",5.951,"2025-12-20T11:01:31.896591Z"
|
| 110 |
+
283,"1","SUGGESTIVE","2025-12-20T11:01:34.383132Z",283,"/data/upload/5/891276e7-fa63fcd0e11eb612b2c8f1ade43de7c8.jpg",2.271,"2025-12-20T11:01:34.383150Z"
|
| 111 |
+
284,"1","FAMILY_SAFE","2025-12-20T11:01:36.092103Z",284,"/data/upload/5/0fea6f76-fa412fb78ec94ab051ac0880e255a897.jpg",1.495,"2025-12-20T11:01:36.092126Z"
|
| 112 |
+
285,"1","UNCERTAIN","2025-12-20T11:01:41.235766Z",285,"/data/upload/5/7cb410fd-fa1a50f4102b66555a1a05afa9ddbf3c.jpg",4.925,"2025-12-20T11:01:41.235780Z"
|
| 113 |
+
286,"1","UNCERTAIN","2025-12-20T11:01:42.954786Z",286,"/data/upload/5/907cb3ad-fa1dab55d34f1c7140ea41a1b3ab5eae.jpg",1.512,"2025-12-20T11:01:42.954808Z"
|
| 114 |
+
287,"1","FAMILY_SAFE","2025-12-20T11:01:45.714292Z",287,"/data/upload/5/bf824357-fa2c514037f31c0ab98d66373d371e3a.jpg",2.546,"2025-12-20T11:01:45.714312Z"
|
| 115 |
+
288,"1","FAMILY_SAFE","2025-12-20T11:01:47.923730Z",288,"/data/upload/5/f953d2e3-f9f74d590b0f4d8da8ba20a07bc2a596.jpg",1.984,"2025-12-20T11:01:47.923749Z"
|
| 116 |
+
289,"1","FAMILY_SAFE","2025-12-20T11:01:49.235145Z",289,"/data/upload/5/db2c891b-f9fc35243c2c7592c2d5858be342a34d.jpg",1.084,"2025-12-20T11:01:49.235165Z"
|
| 117 |
+
290,"1","UNCERTAIN","2025-12-20T11:02:02.235317Z",290,"/data/upload/5/53bd404d-fa068c5e8fe813fbb1d90b5a0744e172.jpg",12.779,"2025-12-20T11:02:02.235338Z"
|
| 118 |
+
291,"1","SUGGESTIVE","2025-12-20T11:02:04.115171Z",291,"/data/upload/5/a23fc1cb-fa075d603e631d04c9871dbb00ed0a14.jpg",1.641,"2025-12-20T11:02:04.115197Z"
|
| 119 |
+
292,"1","SUGGESTIVE","2025-12-20T11:02:11.567375Z",292,"/data/upload/5/ee0e3f1d-fa1607fba97dd47d889e0c8eb0a82624.jpg",7.221,"2025-12-20T11:02:11.567396Z"
|
| 120 |
+
293,"1","SUGGESTIVE","2025-12-20T11:02:13.565368Z",293,"/data/upload/5/3aef96bb-f9d6c4a53c12013b5bbb6e830275486e.jpg",1.767,"2025-12-20T11:02:13.565392Z"
|
| 121 |
+
294,"1","SUGGESTIVE","2025-12-20T11:02:15.066066Z",294,"/data/upload/5/9f665793-f9ea859c158d6cece283b619afdf2f49.jpg",1.266,"2025-12-20T11:02:15.066077Z"
|
| 122 |
+
295,"1","UNCERTAIN","2025-12-20T11:02:23.249309Z",295,"/data/upload/5/db0aaa30-f9a1f16e76e3adad3ce2ed9fe0c7a03f.jpg",7.982,"2025-12-20T11:02:23.249329Z"
|
| 123 |
+
296,"1","UNCERTAIN","2025-12-20T11:02:25.540717Z",296,"/data/upload/5/03abd3cc-f9aaa2af6fea2261610e48ed5e11ede4.jpg",2.049,"2025-12-20T11:02:25.540740Z"
|
| 124 |
+
297,"1","SUGGESTIVE","2025-12-20T11:02:27.850423Z",297,"/data/upload/5/d741a3e7-f9b3403712c87698322446ef48a0027c.jpg",2.078,"2025-12-20T11:02:27.850443Z"
|
| 125 |
+
298,"1","SUGGESTIVE","2025-12-20T11:02:29.208512Z",298,"/data/upload/5/b502117c-f9bd44609a914f7aabd3a901d457b1e7.jpg",1.124,"2025-12-20T11:02:29.208536Z"
|
| 126 |
+
299,"1","SUGGESTIVE","2025-12-20T11:02:30.779695Z",299,"/data/upload/5/96ba7ff4-f984b6e28aa8e0e13f71bd41a8c65194.jpg",1.306,"2025-12-20T11:02:30.779716Z"
|
| 127 |
+
300,"1","FAMILY_SAFE","2025-12-20T11:02:32.419467Z",300,"/data/upload/5/85f90f88-f96b6fc62dadba4eb00b5cfaa1168b87.jpg",1.397,"2025-12-20T11:02:32.419489Z"
|
| 128 |
+
301,"1","SUGGESTIVE","2025-12-20T11:02:34.614235Z",301,"/data/upload/5/32e49293-f96bffb22c42bd3beb968d5ff5583c6b.jpg",1.947,"2025-12-20T11:02:34.614255Z"
|
| 129 |
+
302,"1","FAMILY_SAFE","2025-12-20T11:02:36.119276Z",302,"/data/upload/5/263d89d9-f96c4c07dcded0f0fd1aa150a693a181.jpg",1.277,"2025-12-20T11:02:36.119287Z"
|
| 130 |
+
303,"1","SUGGESTIVE","2025-12-20T11:02:42.328622Z",303,"/data/upload/5/78e8d1c7-f96c7473c85142a222056be7c7759184.jpg",5.968,"2025-12-20T11:02:42.328646Z"
|
| 131 |
+
304,"1","FAMILY_SAFE","2025-12-20T11:02:44.266093Z",304,"/data/upload/5/0fc4362d-f9610ac04fe21d9bd96689b8c6ae1669.jpg",1.719,"2025-12-20T11:02:44.266106Z"
|
| 132 |
+
305,"1","UNCERTAIN","2025-12-20T11:02:46.577757Z",305,"/data/upload/5/24f3bf36-f9633749641995381ff42d72352bafe2.jpg",1.997,"2025-12-20T11:02:46.577780Z"
|
| 133 |
+
306,"1","UNCERTAIN","2025-12-20T11:02:50.471187Z",306,"/data/upload/5/3216e20d-f93c3f8af10c70801ce921842c77afc4.jpg",3.658,"2025-12-20T11:02:50.471209Z"
|
| 134 |
+
307,"1","SUGGESTIVE","2025-12-20T11:02:52.511045Z",307,"/data/upload/5/93bfe360-f95143e4ae1515b8bf5c2d813aa36bbc.jpg",1.805,"2025-12-20T11:02:52.511066Z"
|
| 135 |
+
308,"1","FAMILY_SAFE","2025-12-20T11:02:54.818714Z",308,"/data/upload/5/0a08bf3b-f954833a10de7c149ac73c5b4af4c189.jpg",2.065,"2025-12-20T11:02:54.818738Z"
|
| 136 |
+
309,"1","SUGGESTIVE","2025-12-20T11:02:58.010625Z",309,"/data/upload/5/a54eda5e-f8fdf05663173fa7dc689333e3f21f23.jpg",2.942,"2025-12-20T11:02:58.010648Z"
|
| 137 |
+
310,"1","FAMILY_SAFE","2025-12-20T11:03:00.421390Z",310,"/data/upload/5/29f522c1-f91a65be37a0e49d78ac4f6bc0cfcb61.jpg",2.172,"2025-12-20T11:03:00.421413Z"
|
| 138 |
+
311,"1","SUGGESTIVE","2025-12-20T11:03:03.898048Z",311,"/data/upload/5/43ccd6b7-f8b2c595800cb08b05b4f2503fdbbced.jpg",3.24,"2025-12-20T11:03:03.898062Z"
|
| 139 |
+
312,"1","UNCERTAIN","2025-12-20T11:03:09.233388Z",312,"/data/upload/5/c7f29f62-f8b38d085dc15913e26ed1580d0cb644.jpg",5.086,"2025-12-20T11:03:09.233409Z"
|
| 140 |
+
313,"1","UNCERTAIN","2025-12-20T11:03:11.716697Z",313,"/data/upload/5/ca35d72e-f8c8ee06b8b818d1f0f5229014ee8760.jpg",2.241,"2025-12-20T11:03:11.716721Z"
|
| 141 |
+
314,"1","SUGGESTIVE","2025-12-20T11:03:13.523649Z",314,"/data/upload/5/65120b69-f8ee23b284b41157bb5b9eb488cf5828.jpg",1.567,"2025-12-20T11:03:13.523672Z"
|
| 142 |
+
315,"1","SUGGESTIVE","2025-12-20T11:03:16.281232Z",315,"/data/upload/5/4abc60a4-f8a72d3f92f7e3793a093556c5b6b446.jpg",2.511,"2025-12-20T11:03:16.281246Z"
|
| 143 |
+
316,"1","SUGGESTIVE","2025-12-20T11:03:17.643247Z",316,"/data/upload/5/ee55d94c-f8a860d078da463b28618029d547eca0.jpg",1.145,"2025-12-20T11:03:17.643268Z"
|
| 144 |
+
317,"1","SUGGESTIVE","2025-12-20T11:03:18.870690Z",317,"/data/upload/5/42ea7be6-f8a950c61b1b181a99bb6837f76ddcf5.jpg",0.984,"2025-12-20T11:03:18.870710Z"
|
| 145 |
+
318,"1","FAMILY_SAFE","2025-12-20T11:03:21.494347Z",318,"/data/upload/5/2b96cec7-f87b6da37656aef1c82f6841cdfd216a.jpg",2.384,"2025-12-20T11:03:21.494369Z"
|
| 146 |
+
319,"1","SUGGESTIVE","2025-12-20T11:03:23.292588Z",319,"/data/upload/5/a4651f0f-f8714d6a5bafd4d86377bf04957f37e5.jpg",1.557,"2025-12-20T11:03:23.292610Z"
|
| 147 |
+
320,"1","FAMILY_SAFE","2025-12-20T11:03:26.120251Z",320,"/data/upload/5/fee5f161-f8856cf1b3bd39861cb9f95337cd0992.jpg",2.578,"2025-12-20T11:03:26.120276Z"
|
| 148 |
+
321,"1","FAMILY_SAFE","2025-12-20T11:03:30.645431Z",321,"/data/upload/5/26999a9e-f8869ae287068ce36b4b05663da6713a.jpg",4.259,"2025-12-20T11:03:30.645454Z"
|
| 149 |
+
322,"1","UNCERTAIN","2025-12-20T11:03:33.317684Z",322,"/data/upload/5/2d689dc9-f852dde27ecdc40533bb40683087f7e1.jpg",2.432,"2025-12-20T11:03:33.317706Z"
|
| 150 |
+
323,"1","SUGGESTIVE","2025-12-20T11:03:41.346226Z",323,"/data/upload/5/207cc31f-f86351d67e2629dc35f1e524915fcd11.jpg",7.784,"2025-12-20T11:03:41.346247Z"
|
| 151 |
+
324,"1","UNCERTAIN","2025-12-20T11:03:43.247407Z",324,"/data/upload/5/f3898f2e-f8447631bc00c8f2467b1a20ee6bfa78.jpg",1.657,"2025-12-20T11:03:43.247431Z"
|
| 152 |
+
325,"1","UNCERTAIN","2025-12-20T11:03:46.517135Z",325,"/data/upload/5/8cb018af-f8542037683b99dbc67c7f7d6c5a46b3.jpg",3.02,"2025-12-20T11:03:46.517159Z"
|
| 153 |
+
326,"1","FAMILY_SAFE","2025-12-20T11:03:47.992268Z",326,"/data/upload/5/5d6063fc-f822f1d61d47f66997ce6f86c974a4a4.jpg",1.222,"2025-12-20T11:03:47.992289Z"
|
| 154 |
+
327,"1","SUGGESTIVE","2025-12-20T11:03:49.750452Z",327,"/data/upload/5/57bec3b8-f8222b4da2ca05b7b639120cac5f92f2.jpg",1.508,"2025-12-20T11:03:49.750472Z"
|
| 155 |
+
328,"1","UNCERTAIN","2025-12-20T11:04:15.579735Z",328,"/data/upload/5/918752f9-f7e4163d39bf966f1d403bfcf469cc5f.jpg",25.57,"2025-12-20T11:04:15.579758Z"
|
| 156 |
+
329,"1","SUGGESTIVE","2025-12-20T11:04:17.612520Z",329,"/data/upload/5/bdce8a23-f7f267f10da481cbc97981f022b36a07.jpg",1.786,"2025-12-20T11:04:17.612541Z"
|
| 157 |
+
330,"1","SUGGESTIVE","2025-12-20T11:04:19.295850Z",330,"/data/upload/5/d9e26b6c-f7de775f4820d021c70c42e8785c047b.jpg",1.437,"2025-12-20T11:04:19.295877Z"
|
| 158 |
+
331,"1","UNCERTAIN","2025-12-20T11:04:22.473350Z",331,"/data/upload/5/654d822f-f7e1c87ca29b75a4e59263db1e0f59a1.jpg",2.915,"2025-12-20T11:04:22.473372Z"
|
| 159 |
+
332,"1","FAMILY_SAFE","2025-12-20T11:04:24.169415Z",332,"/data/upload/5/13f55350-f7c55782f457e6c3c4a17c4f4254a946.jpg",1.45,"2025-12-20T11:04:24.169437Z"
|
| 160 |
+
333,"1","UNCERTAIN","2025-12-20T11:04:27.020537Z",333,"/data/upload/5/bf4fd201-f7aa8582cc615c5efc747a723ed54f9e.jpg",2.604,"2025-12-20T11:04:27.020559Z"
|
| 161 |
+
334,"1","UNCERTAIN","2025-12-20T11:04:29.611666Z",334,"/data/upload/5/6520255c-f79bc54aa05611d22b65098a11e71a34.jpg",2.361,"2025-12-20T11:04:29.611687Z"
|
| 162 |
+
335,"1","UNCERTAIN","2025-12-20T11:04:31.732147Z",335,"/data/upload/5/e7695c72-f7761769f7463d55a2df9300c743a324.jpg",1.898,"2025-12-20T11:04:31.732160Z"
|
| 163 |
+
336,"1","UNCERTAIN","2025-12-20T11:04:33.665025Z",336,"/data/upload/5/681dcc99-f77695115dd9a221c2239aece214b49e.jpg",1.721,"2025-12-20T11:04:33.665047Z"
|
| 164 |
+
337,"1","SUGGESTIVE","2025-12-20T11:04:41.516887Z",337,"/data/upload/5/bc15263c-f745fcf48c946c9d4393fd48f4cffc0e.jpg",7.623,"2025-12-20T11:04:41.516904Z"
|
| 165 |
+
338,"1","UNCERTAIN","2025-12-20T11:04:45.123787Z",338,"/data/upload/5/88c7b383-f7303e5b824a66239e6afcd87a8ef62f.jpg",3.373,"2025-12-20T11:04:45.123811Z"
|
| 166 |
+
339,"1","SUGGESTIVE","2025-12-20T11:04:46.709218Z",339,"/data/upload/5/9342d436-f73693da56901519a595fead5f85d069.jpg",1.351,"2025-12-20T11:04:46.709240Z"
|
| 167 |
+
340,"1","SUGGESTIVE","2025-12-20T11:04:52.783428Z",340,"/data/upload/5/1bfa81bf-f71e69c1823525251dc2201172364595.jpg",5.825,"2025-12-20T11:04:52.783450Z"
|
| 168 |
+
341,"1","FAMILY_SAFE","2025-12-20T11:04:53.971709Z",341,"/data/upload/5/37fbd106-f72a254e0142a25852937f68f91eeff0.jpg",0.955,"2025-12-20T11:04:53.971730Z"
|
| 169 |
+
342,"1","UNCERTAIN","2025-12-20T11:04:55.662011Z",342,"/data/upload/5/75ec4326-f6f57e02e3025fda7e6587ada129b5da.jpg",1.454,"2025-12-20T11:04:55.662034Z"
|
| 170 |
+
343,"1","UNCERTAIN","2025-12-20T11:04:57.428398Z",343,"/data/upload/5/112d370c-f6e10f65554a282ad88561eb6606b673.jpg",1.526,"2025-12-20T11:04:57.428418Z"
|
| 171 |
+
344,"1","FAMILY_SAFE","2025-12-20T11:05:01.347989Z",344,"/data/upload/5/258f99f7-f6cc5af7cdd7d677b39960916ddce332.jpg",3.699,"2025-12-20T11:05:01.348002Z"
|
| 172 |
+
345,"1","SUGGESTIVE","2025-12-20T11:05:03.011431Z",345,"/data/upload/5/e654ed6f-f6a9eed8dbdaaebe8483cb023b1cc155.jpg",1.449,"2025-12-20T11:05:03.011455Z"
|
| 173 |
+
346,"1","SUGGESTIVE","2025-12-20T11:05:04.326722Z",346,"/data/upload/5/32c60d49-f6afce2e8ed7f791361d5f859faf6f93.jpg",1.08,"2025-12-20T11:05:04.326746Z"
|
| 174 |
+
347,"1","FAMILY_SAFE","2025-12-20T11:05:09.278186Z",347,"/data/upload/5/8e037415-f6b1bdcd5cc1123f61514494633c0261.jpg",4.716,"2025-12-20T11:05:09.278212Z"
|
| 175 |
+
348,"1","SUGGESTIVE","2025-12-20T11:05:12.797276Z",348,"/data/upload/5/1a95de13-f6a20f3450549f295c9d440e3b50fe4b.jpg",3.287,"2025-12-20T11:05:12.797298Z"
|
| 176 |
+
349,"1","SUGGESTIVE","2025-12-20T11:05:14.528715Z",349,"/data/upload/5/d8e036ec-f69ba433d87943ba7fe96bdee75c0633.jpg",1.497,"2025-12-20T11:05:14.528736Z"
|
| 177 |
+
350,"1","FAMILY_SAFE","2025-12-20T11:05:15.976098Z",350,"/data/upload/5/150cadee-f6913caa3c66a906611cd76004dc0e89.jpg",1.216,"2025-12-20T11:05:15.976121Z"
|
| 178 |
+
351,"1","SUGGESTIVE","2025-12-20T11:05:17.479813Z",351,"/data/upload/5/d45cdae6-f69459f653bf0a475f7003c64ad87484.jpg",1.26,"2025-12-20T11:05:17.479839Z"
|
| 179 |
+
352,"1","UNCERTAIN","2025-12-20T11:05:25.316547Z",352,"/data/upload/5/3ba7cebd-f67d4c2318dfb10031f4d3a40e767467.jpg",7.598,"2025-12-20T11:05:25.316570Z"
|
| 180 |
+
353,"1","SUGGESTIVE","2025-12-20T11:05:27.240613Z",353,"/data/upload/5/b947afc5-f68da9a3284e87b939e43ed78c2ba697.jpg",1.686,"2025-12-20T11:05:27.240632Z"
|
| 181 |
+
354,"1","SUGGESTIVE","2025-12-20T11:05:28.652996Z",354,"/data/upload/5/548c342e-f6555d7bd2ce56360984e39d06eb6d3e.jpg",1.166,"2025-12-20T11:05:28.653020Z"
|
| 182 |
+
355,"1","SUGGESTIVE","2025-12-20T11:05:35.325213Z",355,"/data/upload/5/2d8b3b40-f6502184b0f514712ec44e93e4cf38ed.jpg",6.406,"2025-12-20T11:05:35.325235Z"
|
| 183 |
+
356,"1","SUGGESTIVE","2025-12-20T11:05:40.126220Z",356,"/data/upload/5/8d9e6ed8-f60a078c2adb5e2ed7984643b1a3d6ad.jpg",4.563,"2025-12-20T11:05:40.126246Z"
|
| 184 |
+
357,"1","UNCERTAIN","2025-12-20T11:05:42.162966Z",357,"/data/upload/5/915ec646-f60d0a9ef35ff32f41167f002f604218.jpg",1.798,"2025-12-20T11:05:42.162991Z"
|
| 185 |
+
358,"1","SUGGESTIVE","2025-12-20T11:05:43.617887Z",358,"/data/upload/5/ac9956e6-f61b32b46a5df8b7604a567f4101de1a.jpg",1.19,"2025-12-20T11:05:43.617910Z"
|
| 186 |
+
359,"1","UNCERTAIN","2025-12-20T11:05:45.343816Z",359,"/data/upload/5/38e3e29f-f6096fb5a8815393de8d3ce6046dcfa0.jpg",1.49,"2025-12-20T11:05:45.343840Z"
|
| 187 |
+
360,"1","SUGGESTIVE","2025-12-20T11:05:46.798111Z",360,"/data/upload/5/4cd02552-f627490d7770e822b0646ecc26314049.jpg",1.218,"2025-12-20T11:05:46.798135Z"
|
| 188 |
+
361,"1","FAMILY_SAFE","2025-12-20T11:05:48.044400Z",361,"/data/upload/5/96423c5a-f5d25e48cb07c00f6b4749341afd4fe9.jpg",1.025,"2025-12-20T11:05:48.044411Z"
|
| 189 |
+
362,"1","UNCERTAIN","2025-12-20T11:05:52.547956Z",362,"/data/upload/5/b2bdb576-f5f0b5059aa1f31f18454612c7b44cb4.jpg",4.281,"2025-12-20T11:05:52.547975Z"
|
| 190 |
+
363,"1","FAMILY_SAFE","2025-12-20T11:05:53.790882Z",363,"/data/upload/5/d9b4f6e3-f5f15fde94650b49c19b1108e7baacaa.jpg",0.999,"2025-12-20T11:05:53.790906Z"
|
| 191 |
+
364,"1","SUGGESTIVE","2025-12-20T11:05:55.131841Z",364,"/data/upload/5/78e1ef6c-f5f68931f14533c57ecfef9acb38dc7d.jpg",1.07,"2025-12-20T11:05:55.131863Z"
|
| 192 |
+
365,"1","SUGGESTIVE","2025-12-20T11:05:56.800233Z",365,"/data/upload/5/95214b1d-f5fbc4a6c74108a929561383bb572cd4.jpg",1.427,"2025-12-20T11:05:56.800255Z"
|
| 193 |
+
366,"1","FAMILY_SAFE","2025-12-20T11:05:58.647293Z",366,"/data/upload/5/52f9323f-f5a0911271d9a6ed11455f9f6ff7eb66.jpg",1.608,"2025-12-20T11:05:58.647316Z"
|
| 194 |
+
367,"1","FAMILY_SAFE","2025-12-20T11:06:06.211872Z",367,"/data/upload/5/437ce914-f5c13ab4ed01cc7efd808da48b8a5457.jpg",7.34,"2025-12-20T11:06:06.211884Z"
|
| 195 |
+
368,"1","UNCERTAIN","2025-12-20T11:06:08.652944Z",368,"/data/upload/5/3472223a-f5996eb32ca496db64f8988cee9a8878.jpg",2.2,"2025-12-20T11:06:08.652968Z"
|
| 196 |
+
369,"1","SUGGESTIVE","2025-12-20T11:06:11.313206Z",369,"/data/upload/5/79fb6415-f57b16711597d1da4c6c22c57af8a35a.jpg",2.419,"2025-12-20T11:06:11.313226Z"
|
| 197 |
+
370,"1","SUGGESTIVE","2025-12-20T11:06:12.945194Z",370,"/data/upload/5/8b7383e6-f57fb11b1c8484d4642295155ba8db7b.jpg",1.388,"2025-12-20T11:06:12.945218Z"
|
| 198 |
+
371,"1","SUGGESTIVE","2025-12-20T11:06:14.500956Z",371,"/data/upload/5/ae1beb31-f58d8b3fa1b33fbccd8c8d71e0fe1a2c.jpg",1.34,"2025-12-20T11:06:14.500976Z"
|
| 199 |
+
372,"1","FAMILY_SAFE","2025-12-20T11:06:16.952949Z",372,"/data/upload/5/6be40274-f55c44bbbe7e56c04a616cd84479e46f.jpg",2.211,"2025-12-20T11:06:16.952971Z"
|
| 200 |
+
373,"1","SUGGESTIVE","2025-12-20T11:06:19.670664Z",373,"/data/upload/5/79a2f826-f55deb0d18263824d1cef3e9ab9f1785.jpg",2.473,"2025-12-20T11:06:19.670687Z"
|
| 201 |
+
374,"1","FAMILY_SAFE","2025-12-20T11:06:21.212367Z",374,"/data/upload/5/eb3f6ce4-f572b605f472227d2aa10d6905b535e3.jpg",1.299,"2025-12-20T11:06:21.212385Z"
|
| 202 |
+
375,"1","SUGGESTIVE","2025-12-20T11:06:26.044664Z",375,"/data/upload/5/86690dd2-f573acc9c7d68bfa33ffaf904bdcbee1.jpg",4.589,"2025-12-20T11:06:26.044684Z"
|
| 203 |
+
376,"1","FAMILY_SAFE","2025-12-20T11:06:27.193909Z",376,"/data/upload/5/cb81d853-f5641be3510ca443208381edefb8dab9.jpg",0.899,"2025-12-20T11:06:27.193934Z"
|
| 204 |
+
377,"1","UNCERTAIN","2025-12-20T11:06:29.526765Z",377,"/data/upload/5/f3e026cb-f55636ad8ac978de1925576a495326e8.jpg",2.09,"2025-12-20T11:06:29.526787Z"
|
| 205 |
+
378,"1","FAMILY_SAFE","2025-12-20T11:06:32.430924Z",378,"/data/upload/5/dd964efd-f543f9d63f3caf812049461fe8e82f66.jpg",2.693,"2025-12-20T11:06:32.430947Z"
|
| 206 |
+
379,"1","SUGGESTIVE","2025-12-20T11:06:34.175038Z",379,"/data/upload/5/cddc368c-f555bcb967a62b3420b1563eabf14e03.jpg",1.491,"2025-12-20T11:06:34.175062Z"
|
| 207 |
+
380,"1","FAMILY_SAFE","2025-12-20T11:06:42.126381Z",380,"/data/upload/5/8a1bce2e-f531a8694f3e826cc46790d3d2d210f3.jpg",7.745,"2025-12-20T11:06:42.126403Z"
|
| 208 |
+
381,"1","FAMILY_SAFE","2025-12-20T11:06:44.453585Z",381,"/data/upload/5/4580faae-f532a291cff7ba273fcfbd81e466147a.jpg",2.048,"2025-12-20T11:06:44.453609Z"
|
| 209 |
+
382,"1","SUGGESTIVE","2025-12-20T11:06:47.490081Z",382,"/data/upload/5/cd5e94e9-f4eed19eaa6f1a5b7f3bf3fdab620193.jpg",2.791,"2025-12-20T11:06:47.490101Z"
|
| 210 |
+
383,"1","SUGGESTIVE","2025-12-20T11:06:48.990534Z",383,"/data/upload/5/e0abb514-f4f6cec6badab17d10b40557e6e9ceae.jpg",1.264,"2025-12-20T11:06:48.990561Z"
|
| 211 |
+
384,"1","SUGGESTIVE","2025-12-20T11:06:50.556145Z",384,"/data/upload/5/3265ae1c-f4f91efff09fee24636b9b50d58fcf25.jpg",1.321,"2025-12-20T11:06:50.556167Z"
|
| 212 |
+
385,"1","SUGGESTIVE","2025-12-20T11:06:51.603016Z",385,"/data/upload/5/e2e7bbee-f4f964fc3d06d2990c04caa8fc0e5295.jpg",0.805,"2025-12-20T11:06:51.603035Z"
|
| 213 |
+
386,"1","SUGGESTIVE","2025-12-20T11:06:52.717199Z",386,"/data/upload/5/8f9b1b13-f4fe1ba40065807edb72c03485dff3d2.jpg",0.867,"2025-12-20T11:06:52.717223Z"
|
| 214 |
+
387,"1","SUGGESTIVE","2025-12-20T11:06:53.681878Z",387,"/data/upload/5/9ee74b02-f50238c6721caa983df9656eef22236b.jpg",0.719,"2025-12-20T11:06:53.681898Z"
|
| 215 |
+
388,"1","SUGGESTIVE","2025-12-20T11:06:54.729565Z",388,"/data/upload/5/97429c97-f50926a996167d5a55ea0e3260627572.jpg",0.798,"2025-12-20T11:06:54.729585Z"
|
| 216 |
+
389,"1","SUGGESTIVE","2025-12-20T11:06:55.951339Z",389,"/data/upload/5/6775a784-f5072276faee8d0385236b2937d48a33.jpg",0.951,"2025-12-20T11:06:55.951358Z"
|
| 217 |
+
390,"1","FAMILY_SAFE","2025-12-20T11:07:00.396266Z",390,"/data/upload/5/735adacd-f4d811181ca6367340272ea2817eebb6.jpg",4.194,"2025-12-20T11:07:00.396290Z"
|
| 218 |
+
391,"1","SUGGESTIVE","2025-12-20T11:07:01.741988Z",391,"/data/upload/5/f2450298-f4e7b715922c1d07a2f7501b722bb12e.jpg",1.1,"2025-12-20T11:07:01.742011Z"
|
| 219 |
+
392,"1","SUGGESTIVE","2025-12-20T11:07:02.921853Z",392,"/data/upload/5/a04ba9a7-f4aee07e50f09863edf149352e42f73e.jpg",0.935,"2025-12-20T11:07:02.921877Z"
|
| 220 |
+
393,"1","SUGGESTIVE","2025-12-20T11:07:04.282533Z",393,"/data/upload/5/cdff04e2-f4c226e68f48b630dfd5b8f032c281f3.jpg",1.107,"2025-12-20T11:07:04.282556Z"
|
| 221 |
+
394,"1","UNCERTAIN","2025-12-20T11:07:07.375699Z",394,"/data/upload/5/1c2faeb4-f4c868518f6194c3d708d889b79c4357.jpg",2.836,"2025-12-20T11:07:07.375722Z"
|
| 222 |
+
395,"1","UNCERTAIN","2025-12-20T11:07:09.907880Z",395,"/data/upload/5/da36d596-f48abfffe24a134a2605d63c095d5601.jpg",2.28,"2025-12-20T11:07:09.907901Z"
|
| 223 |
+
396,"1","SUGGESTIVE","2025-12-20T11:07:11.242457Z",396,"/data/upload/5/9e7afccb-f49cbda7d6c418aa68c47ac16678be9d.jpg",1.085,"2025-12-20T11:07:11.242482Z"
|
| 224 |
+
397,"1","FAMILY_SAFE","2025-12-20T11:07:13.746642Z",397,"/data/upload/5/62a97430-f49d857cb54b7ad2a3a8bcd6c85a76d2.jpg",2.249,"2025-12-20T11:07:13.746663Z"
|
| 225 |
+
398,"1","FAMILY_SAFE","2025-12-20T11:07:17.639369Z",398,"/data/upload/5/f79720c4-f49f729c28e9aafef241b3e5d1365ebb.jpg",3.641,"2025-12-20T11:07:17.639394Z"
|
| 226 |
+
399,"1","SUGGESTIVE","2025-12-20T11:07:20.280399Z",399,"/data/upload/5/1fa27620-f46fcea94e5309ef137996d590f947a8.jpg",2.395,"2025-12-20T11:07:20.280420Z"
|
| 227 |
+
400,"1","FAMILY_SAFE","2025-12-20T11:07:21.492310Z",400,"/data/upload/5/a8f6045f-f44bd04a46d585f08df78d744a9920e0.jpg",0.964,"2025-12-20T11:07:21.492334Z"
|
| 228 |
+
401,"1","SUGGESTIVE","2025-12-20T11:07:22.755497Z",401,"/data/upload/5/9d5f7026-f442e9b50f65ce8e992c2d6d99045422.jpg",1.013,"2025-12-20T11:07:22.755525Z"
|
| 229 |
+
402,"1","FAMILY_SAFE","2025-12-20T11:07:23.978630Z",402,"/data/upload/5/d87227e3-f4591e17584e87f5ae145946468488a1.jpg",0.971,"2025-12-20T11:07:23.978651Z"
|
| 230 |
+
403,"1","UNCERTAIN","2025-12-20T11:07:25.879929Z",403,"/data/upload/5/5c828279-f45776fd9cff138a422bc299fda11907.jpg",1.693,"2025-12-20T11:07:25.879950Z"
|
| 231 |
+
404,"1","SUGGESTIVE","2025-12-20T11:07:27.548623Z",404,"/data/upload/5/5c339677-f450689a8cf22e1c4471ef894ea28a81.jpg",1.422,"2025-12-20T11:07:27.548646Z"
|
| 232 |
+
405,"1","SUGGESTIVE","2025-12-20T11:07:28.896320Z",405,"/data/upload/5/b47e520f-f453124a40f3bdbbe0c9dfe4996b6844.jpg",1.11,"2025-12-20T11:07:28.896332Z"
|
| 233 |
+
406,"1","SUGGESTIVE","2025-12-20T11:07:30.624164Z",406,"/data/upload/5/3a55ff4b-f40d7fc2218b3f42761e7abe785c7785.jpg",1.497,"2025-12-20T11:07:30.624188Z"
|
| 234 |
+
407,"1","UNCERTAIN","2025-12-20T11:07:32.486345Z",407,"/data/upload/5/ab4e8b9b-f433c523573d6c17da4f5f3da31fec75.jpg",1.618,"2025-12-20T11:07:32.486367Z"
|
| 235 |
+
408,"1","FAMILY_SAFE","2025-12-20T11:07:34.295061Z",408,"/data/upload/5/c5a2e52f-f412680ce7ff76d5c276884092c008f3.jpg",1.556,"2025-12-20T11:07:34.295084Z"
|
| 236 |
+
409,"1","FAMILY_SAFE","2025-12-20T11:07:35.358829Z",409,"/data/upload/5/2707ecab-f432252b9d85a485c9e4b3097633f71e.jpg",0.819,"2025-12-20T11:07:35.358854Z"
|
| 237 |
+
410,"1","SUGGESTIVE","2025-12-20T11:07:37.054116Z",410,"/data/upload/5/79a56ecc-f3e1b0aced852718d2b2cc7208728b62.jpg",1.446,"2025-12-20T11:07:37.054140Z"
|
| 238 |
+
411,"1","FAMILY_SAFE","2025-12-20T11:07:38.329402Z",411,"/data/upload/5/84efc00c-f3ebae6cdb55ebee567dc5937d26f433.jpg",1.025,"2025-12-20T11:07:38.329419Z"
|
| 239 |
+
412,"1","SUGGESTIVE","2025-12-20T11:07:39.328789Z",412,"/data/upload/5/916b7794-f3f76e5bd2aae5290c40831d2dba06fb.jpg",0.762,"2025-12-20T11:07:39.328810Z"
|
| 240 |
+
413,"1","SUGGESTIVE","2025-12-20T11:07:40.448655Z",413,"/data/upload/5/0c0ff4f4-f3b7d61057e3aabc5c1f2fa2e1d91f80.jpg",0.872,"2025-12-20T11:07:40.448677Z"
|
| 241 |
+
414,"1","FAMILY_SAFE","2025-12-20T11:07:41.981553Z",414,"/data/upload/5/de3532f8-f3c6565d9b0b5b4a9ea5791663a1cb98.jpg",1.284,"2025-12-20T11:07:41.981577Z"
|
| 242 |
+
415,"1","FAMILY_SAFE","2025-12-20T11:08:22.962376Z",415,"/data/upload/5/53a286c2-f3a74abc0a833c5b5b69b06d3530b13c.jpg",40.71,"2025-12-20T11:08:22.962396Z"
|
| 243 |
+
416,"1","SUGGESTIVE","2025-12-20T11:08:27.908642Z",416,"/data/upload/5/b80429f0-f3a782299db638313bc78a42fe799566.jpg",4.603,"2025-12-20T11:08:27.908664Z"
|
| 244 |
+
417,"1","SUGGESTIVE","2025-12-20T11:08:29.180520Z",417,"/data/upload/5/c5926927-f392b17c19a743f54238920721a05483.jpg",1.015,"2025-12-20T11:08:29.180541Z"
|
| 245 |
+
418,"1","SUGGESTIVE","2025-12-20T11:08:30.516467Z",418,"/data/upload/5/aaba3830-f392495a6934f1189fab05eeb50e6fd9.jpg",1.067,"2025-12-20T11:08:30.516488Z"
|
| 246 |
+
419,"1","SUGGESTIVE","2025-12-20T11:08:31.933046Z",419,"/data/upload/5/52172c96-f379ca12e1aa320afc400fb76fb2c470.jpg",1.157,"2025-12-20T11:08:31.933059Z"
|
| 247 |
+
420,"1","SUGGESTIVE","2025-12-20T11:08:33.358481Z",420,"/data/upload/5/6e49273c-f36c6d209021488c8bf51e89c19f58fb.jpg",1.179,"2025-12-20T11:08:33.358499Z"
|
| 248 |
+
421,"1","UNCERTAIN","2025-12-20T11:08:35.193055Z",421,"/data/upload/5/920afa72-f3537cd026f876e2535d657df257076c.jpg",1.554,"2025-12-20T11:08:35.193082Z"
|
| 249 |
+
422,"1","UNCERTAIN","2025-12-20T11:08:37.119985Z",422,"/data/upload/5/7e9fe457-f366645e8bc5d7b1122603ec99290bc2.jpg",1.656,"2025-12-20T11:08:37.120002Z"
|
| 250 |
+
423,"1","SUGGESTIVE","2025-12-20T11:08:38.625745Z",423,"/data/upload/5/10f36423-f30e3a374309519194229b8153c51588.jpg",1.235,"2025-12-20T11:08:38.625771Z"
|
| 251 |
+
424,"1","FAMILY_SAFE","2025-12-20T11:08:39.911415Z",424,"/data/upload/5/cd3dd942-f32a3c9a3b2b2f5fa7be6f8c73ae293b.jpg",1.021,"2025-12-20T11:08:39.911434Z"
|
| 252 |
+
425,"1","UNCERTAIN","2025-12-20T11:08:42.146916Z",425,"/data/upload/5/aac071e6-f32bb35b2b035066b5f7d88a1a27c0d7.jpg",1.966,"2025-12-20T11:08:42.146938Z"
|
| 253 |
+
426,"1","FAMILY_SAFE","2025-12-20T11:08:43.653249Z",426,"/data/upload/5/678d2056-f33cf9e01fb72fc6dce190f37c65c2dd.jpg",1.228,"2025-12-20T11:08:43.653271Z"
|
| 254 |
+
427,"1","FAMILY_SAFE","2025-12-20T11:08:44.961635Z",427,"/data/upload/5/965c31ef-f2f78f897ad0a224175515bbde549e2e.jpg",1.038,"2025-12-20T11:08:44.961656Z"
|
| 255 |
+
428,"1","UNCERTAIN","2025-12-20T11:08:47.791064Z",428,"/data/upload/5/579612c2-f2fa9ecf3da8d00302338efa4f87123c.jpg",2.554,"2025-12-20T11:08:47.791088Z"
|
| 256 |
+
429,"1","SUGGESTIVE","2025-12-20T11:08:50.707093Z",429,"/data/upload/5/9f66f820-f2fae6e2500b65f269b5e6de80996f17.jpg",2.651,"2025-12-20T11:08:50.707113Z"
|
| 257 |
+
430,"1","SUGGESTIVE","2025-12-20T11:08:53.843375Z",430,"/data/upload/5/75006524-f30c43c00748e7912ce105d616264ca8.jpg",2.868,"2025-12-20T11:08:53.843395Z"
|
| 258 |
+
431,"1","FAMILY_SAFE","2025-12-20T11:08:55.124117Z",431,"/data/upload/5/7c688d00-f3066b02932fbc939c22e9c3bb8e942a.jpg",1.024,"2025-12-20T11:08:55.124137Z"
|
| 259 |
+
432,"1","SUGGESTIVE","2025-12-20T11:08:56.726229Z",432,"/data/upload/5/3174b410-f2f05fc8d36aa9b2d14d9a0eed30416a.jpg",1.327,"2025-12-20T11:08:56.726251Z"
|
| 260 |
+
433,"1","UNCERTAIN","2025-12-20T11:08:58.921837Z",433,"/data/upload/5/c43cb7fb-f2f33b9d050b1eec02c29464f036d292.jpg",1.977,"2025-12-20T11:08:58.921878Z"
|
| 261 |
+
434,"1","SUGGESTIVE","2025-12-20T11:09:00.226999Z",434,"/data/upload/5/55e1d1ac-f2b9d5dc127dddd36b113f2719d89a97.jpg",1.048,"2025-12-20T11:09:00.227020Z"
|
| 262 |
+
435,"1","FAMILY_SAFE","2025-12-20T11:09:01.706294Z",435,"/data/upload/5/26f72a43-f2b9d6126ecc23b075d1c1acc8fe340d.jpg",1.226,"2025-12-20T11:09:01.706316Z"
|
| 263 |
+
436,"1","FAMILY_SAFE","2025-12-20T11:09:03.408842Z",436,"/data/upload/5/a6eee7e4-f2d5d25ff62ef48331c529bf26e170d4.jpg",1.444,"2025-12-20T11:09:03.408865Z"
|
| 264 |
+
437,"1","SUGGESTIVE","2025-12-20T11:09:05.442262Z",437,"/data/upload/5/6583b10b-f2aae7afc3a013755b2365cb2942dc64.jpg",1.779,"2025-12-20T11:09:05.442285Z"
|
| 265 |
+
438,"1","SUGGESTIVE","2025-12-20T11:09:07.089870Z",438,"/data/upload/5/3dc4ad74-f27b0f685d9b622d7ff36bdd97f72831.jpg",1.382,"2025-12-20T11:09:07.089889Z"
|
| 266 |
+
439,"1","UNCERTAIN","2025-12-20T11:09:09.933482Z",439,"/data/upload/5/6a8274e7-f2801326462d460409fa733227426003.jpg",2.586,"2025-12-20T11:09:09.933505Z"
|
| 267 |
+
440,"1","SUGGESTIVE","2025-12-20T11:09:11.186992Z",440,"/data/upload/5/7e1849f3-f26a9865a58639d9b17de158040c8d99.jpg",0.996,"2025-12-20T11:09:11.187012Z"
|
| 268 |
+
441,"1","SUGGESTIVE","2025-12-20T11:09:12.728129Z",441,"/data/upload/5/e4ae160c-f26b087c218148a8ca3f2e96e12d7a1b.jpg",1.284,"2025-12-20T11:09:12.728152Z"
|
| 269 |
+
442,"1","SUGGESTIVE","2025-12-20T11:09:15.215308Z",442,"/data/upload/5/4f4b4d5f-f26d88ffcd70edc8984c024f2de1ca39.jpg",2.229,"2025-12-20T11:09:15.215327Z"
|
| 270 |
+
443,"1","SUGGESTIVE","2025-12-20T11:09:16.452020Z",443,"/data/upload/5/55668d0d-f2691c288c683bcf94651a0bbffe21ad.jpg",0.979,"2025-12-20T11:09:16.452039Z"
|
| 271 |
+
444,"1","FAMILY_SAFE","2025-12-20T11:09:18.025849Z",444,"/data/upload/5/302fc960-f24d9b56d05bdf13a83cfabd87f8e5af.jpg",1.366,"2025-12-20T11:09:18.025867Z"
|
| 272 |
+
445,"1","SUGGESTIVE","2025-12-20T11:09:20.323696Z",445,"/data/upload/5/da992908-f24efb4f9760b0e7fbb3fcf77dba0891.jpg",2.055,"2025-12-20T11:09:20.323720Z"
|
| 273 |
+
446,"1","SUGGESTIVE","2025-12-20T11:09:21.705670Z",446,"/data/upload/5/09535428-f244b1f6799b0610306318fa09e744c4.jpg",1.122,"2025-12-20T11:09:21.705698Z"
|
| 274 |
+
447,"1","FAMILY_SAFE","2025-12-20T11:09:23.206455Z",447,"/data/upload/5/6b3255e8-f20ecb2425f29d21d4047bec13a2babb.jpg",1.26,"2025-12-20T11:09:23.206467Z"
|
| 275 |
+
448,"1","SUGGESTIVE","2025-12-20T11:09:24.479583Z",448,"/data/upload/5/3d3f89e4-f20eef0275884df087aefc827000488a.jpg",1.008,"2025-12-20T11:09:24.479605Z"
|
| 276 |
+
449,"1","FAMILY_SAFE","2025-12-20T11:09:26.174253Z",449,"/data/upload/5/476d2b62-f21375899b6c734ba68a8f2a74990efb.jpg",1.438,"2025-12-20T11:09:26.174278Z"
|
| 277 |
+
450,"1","FAMILY_SAFE","2025-12-20T11:09:27.939835Z",450,"/data/upload/5/2821adf9-f20de5b6356da5f1e38626064c8ac85e.jpg",1.504,"2025-12-20T11:09:27.939857Z"
|
| 278 |
+
451,"1","SUGGESTIVE","2025-12-20T11:09:29.381016Z",451,"/data/upload/5/78dd5846-f1b48acd52be4f8693ed99170c2a044c.jpg",1.189,"2025-12-20T11:09:29.381040Z"
|
| 279 |
+
452,"1","SUGGESTIVE","2025-12-20T11:09:31.326367Z",452,"/data/upload/5/7d5de576-f1c966431895a337d35d9ec3a7470b17.jpg",1.575,"2025-12-20T11:09:31.326386Z"
|
| 280 |
+
453,"1","SUGGESTIVE","2025-12-20T11:09:32.434032Z",453,"/data/upload/5/8cf1683d-f1d11292af5391d00957494b8b58f315.jpg",0.84,"2025-12-20T11:09:32.434054Z"
|
| 281 |
+
454,"1","SUGGESTIVE","2025-12-20T11:09:33.754811Z",454,"/data/upload/5/59b576bf-f1a168d27daac1da3571fcbcce7c1ebd.jpg",1.063,"2025-12-20T11:09:33.754833Z"
|
| 282 |
+
455,"1","UNCERTAIN","2025-12-20T11:09:36.458670Z",455,"/data/upload/5/8f0ff5de-f18c7dac0d1162379e292b0e4b9e22ce.jpg",2.447,"2025-12-20T11:09:36.458691Z"
|
| 283 |
+
456,"1","SUGGESTIVE","2025-12-20T11:09:37.745287Z",456,"/data/upload/5/3d83aaea-f186d77202e18462443a8c7ffc449919.jpg",1.026,"2025-12-20T11:09:37.745307Z"
|
| 284 |
+
457,"1","SUGGESTIVE","2025-12-20T11:09:38.769270Z",457,"/data/upload/5/d4d29b7b-f162dbe9bf0b44a6f2ddb910d725d56b.jpg",0.76,"2025-12-20T11:09:38.769291Z"
|
| 285 |
+
458,"1","SUGGESTIVE","2025-12-20T11:09:39.839893Z",458,"/data/upload/5/c6f24a4d-f1646b36bb33f474b8f66c112bf97cc3.jpg",0.815,"2025-12-20T11:09:39.839903Z"
|
| 286 |
+
459,"1","FAMILY_SAFE","2025-12-20T11:09:41.484421Z",459,"/data/upload/5/9d710615-f1712c2ed94b10ffedda4e1ea6e56fa9.jpg",1.379,"2025-12-20T11:09:41.484444Z"
|
| 287 |
+
460,"1","SUGGESTIVE","2025-12-20T11:09:44.628375Z",460,"/data/upload/5/c325de0e-f16866c512ca721aa3ba3b2129e4b66f.jpg",2.881,"2025-12-20T11:09:44.628395Z"
|
| 288 |
+
461,"1","SUGGESTIVE","2025-12-20T11:09:45.688039Z",461,"/data/upload/5/c9983270-f1643668073aa69e7f2b505d1b237098.jpg",0.795,"2025-12-20T11:09:45.688063Z"
|
| 289 |
+
462,"1","SUGGESTIVE","2025-12-20T11:09:46.769325Z",462,"/data/upload/5/ff926dbf-f12e5c2510e88db3c8fdf32aa7968f9d.jpg",0.817,"2025-12-20T11:09:46.769348Z"
|
| 290 |
+
463,"1","SUGGESTIVE","2025-12-20T11:09:47.754151Z",463,"/data/upload/5/edbf7bc4-f13bac93da13444f529aa1c821731161.jpg",0.72,"2025-12-20T11:09:47.754171Z"
|
| 291 |
+
464,"1","SUGGESTIVE","2025-12-20T11:09:48.805953Z",464,"/data/upload/5/d3721c85-f126f5fa7fd6939084fa439a5c194f18.jpg",0.787,"2025-12-20T11:09:48.805975Z"
|
| 292 |
+
465,"1","SUGGESTIVE","2025-12-20T11:09:49.715473Z",465,"/data/upload/5/b5e5e620-f126f93e4853f89a6e25b661040dc314.jpg",0.649,"2025-12-20T11:09:49.715495Z"
|
| 293 |
+
466,"1","SUGGESTIVE","2025-12-20T11:09:50.754293Z",466,"/data/upload/5/10135976-f1243b33b2f6d754c9bc9da9e8de97e4.jpg",0.773,"2025-12-20T11:09:50.754316Z"
|
| 294 |
+
467,"1","SUGGESTIVE","2025-12-20T11:09:51.874405Z",467,"/data/upload/5/b81fe122-f1404d9866f6128bd44a1eaee0a39cf7.jpg",0.856,"2025-12-20T11:09:51.874429Z"
|
| 295 |
+
468,"1","SUGGESTIVE","2025-12-20T11:09:53.537766Z",468,"/data/upload/5/f3d934fc-f14861197568fd42d5a3a8f39a8970b9.jpg",1.44,"2025-12-20T11:09:53.537786Z"
|
| 296 |
+
469,"1","SUGGESTIVE","2025-12-20T11:09:54.782268Z",469,"/data/upload/5/34496229-f104ed4e8f3c30e2fa8ddfbd3332b413.jpg",0.999,"2025-12-20T11:09:54.782295Z"
|
| 297 |
+
470,"1","SUGGESTIVE","2025-12-20T11:09:55.875573Z",470,"/data/upload/5/849c7056-f0b773be242aee171c66e49b6c3dfb63.jpg",0.823,"2025-12-20T11:09:55.875599Z"
|
| 298 |
+
471,"1","SUGGESTIVE","2025-12-20T11:09:56.955151Z",471,"/data/upload/5/c6d20edb-f0c80a1febd6aeb4ed6ccaf3fd82760a.jpg",0.811,"2025-12-20T11:09:56.955173Z"
|
| 299 |
+
472,"1","FAMILY_SAFE","2025-12-20T11:12:46.136601Z",472,"/data/upload/5/906d1fce-f0ca8c9fdee2f995b567b0626cdadcac.jpg",168.866,"2025-12-20T11:12:46.136613Z"
|
| 300 |
+
473,"1","SUGGESTIVE","2025-12-20T11:12:49.184658Z",473,"/data/upload/5/f638acd0-f0d3205ee8ebe32b2d53f1ad223e9818.jpg",2.728,"2025-12-20T11:12:49.184678Z"
|
| 301 |
+
474,"1","SUGGESTIVE","2025-12-20T11:12:50.440778Z",474,"/data/upload/5/da3f5f03-f0dd8d4ac7e466a7a233905f8db38a1c.jpg",0.972,"2025-12-20T11:12:50.440799Z"
|
| 302 |
+
475,"1","SUGGESTIVE","2025-12-20T11:12:52.212396Z",475,"/data/upload/5/c2917e19-f06b1f090a5e2f8b788720ce4489183a.jpg",1.49,"2025-12-20T11:12:52.212416Z"
|
| 303 |
+
476,"1","FAMILY_SAFE","2025-12-20T11:12:53.702227Z",476,"/data/upload/5/698e9ebb-f06d35d37cacac0d69db96016e0c182f.jpg",1.211,"2025-12-20T11:12:53.702249Z"
|
| 304 |
+
477,"1","SUGGESTIVE","2025-12-20T11:12:54.968969Z",477,"/data/upload/5/4696edaa-f06eb7893da319aec3f0de768a1a845d.jpg",0.98,"2025-12-20T11:12:54.968990Z"
|
| 305 |
+
478,"1","UNCERTAIN","2025-12-20T11:12:56.583670Z",478,"/data/upload/5/ad86327f-f08abc73a82adca2bbb2304c62991458.jpg",1.349,"2025-12-20T11:12:56.583692Z"
|
| 306 |
+
479,"1","SUGGESTIVE","2025-12-20T11:13:00.655782Z",479,"/data/upload/5/7713ccd7-f08c1d5efaa9ae3e99274ef65dbc7cc4.jpg",3.804,"2025-12-20T11:13:00.655803Z"
|
| 307 |
+
480,"1","SUGGESTIVE","2025-12-20T11:13:02.802689Z",480,"/data/upload/5/88e6096c-f0809c968c34e21b25ef28da489b68fd.jpg",1.878,"2025-12-20T11:13:02.802709Z"
|
| 308 |
+
481,"1","FAMILY_SAFE","2025-12-20T11:13:04.135859Z",481,"/data/upload/5/524bc0ae-f06772600ff35982e30ec813edb89dc2.jpg",1.067,"2025-12-20T11:13:04.135880Z"
|
| 309 |
+
482,"1","FAMILY_SAFE","2025-12-20T11:13:06.542634Z",482,"/data/upload/5/3d31944e-f049c93ef72e3bd5edbf919222d2d1ae.jpg",2.137,"2025-12-20T11:13:06.542654Z"
|
| 310 |
+
483,"1","SUGGESTIVE","2025-12-20T11:13:07.889861Z",483,"/data/upload/5/47efba26-f0445c4671cbf87f6be472f5102475c2.jpg",1.076,"2025-12-20T11:13:07.889884Z"
|
| 311 |
+
484,"1","SUGGESTIVE","2025-12-20T11:13:09.407175Z",484,"/data/upload/5/fa8fe379-f0357ced6ed7226ecfd6bc274c3e8a5b.jpg",1.25,"2025-12-20T11:13:09.407198Z"
|
| 312 |
+
485,"1","SUGGESTIVE","2025-12-20T11:13:10.806777Z",485,"/data/upload/5/475a96b3-eff990daac3ddb54436bad2cc950abb3.jpg",1.13,"2025-12-20T11:13:10.806798Z"
|
| 313 |
+
486,"1","SUGGESTIVE","2025-12-20T11:13:12.241372Z",486,"/data/upload/5/fa249f4f-efb7440d597d698c5442b03cc11096ab.jpg",1.212,"2025-12-20T11:13:12.241388Z"
|
| 314 |
+
487,"1","SUGGESTIVE","2025-12-20T11:13:13.939921Z",487,"/data/upload/5/b10f30c8-efc08bbcc30ce2804f50c73ff07cffec.jpg",1.483,"2025-12-20T11:13:13.939940Z"
|
| 315 |
+
488,"1","SUGGESTIVE","2025-12-20T11:13:15.124442Z",488,"/data/upload/5/faba1751-efc073e437c18987a2f1476da3de0b3a.jpg",0.916,"2025-12-20T11:13:15.124463Z"
|
| 316 |
+
489,"1","SUGGESTIVE","2025-12-20T11:13:16.664950Z",489,"/data/upload/5/0098546d-efd85646ed2bdbc974b9c3c579691730.jpg",1.27,"2025-12-20T11:13:16.664969Z"
|
| 317 |
+
490,"1","SUGGESTIVE","2025-12-20T11:13:17.941764Z",490,"/data/upload/5/b4635fff-efef5f2439ee81918faf609d5a0aa163.jpg",1.003,"2025-12-20T11:13:17.941787Z"
|
| 318 |
+
491,"1","SUGGESTIVE","2025-12-20T11:13:19.103118Z",491,"/data/upload/5/4c7faf4b-efef22ec0ad48c3b2f51c82dcb9565e6.jpg",0.891,"2025-12-20T11:13:19.103139Z"
|
| 319 |
+
492,"1","SUGGESTIVE","2025-12-20T11:13:20.409808Z",492,"/data/upload/5/e9be5783-efa81f12be12471dd91827cfb74404a9.jpg",1.036,"2025-12-20T11:13:20.409828Z"
|
| 320 |
+
493,"1","SUGGESTIVE","2025-12-20T11:13:21.543572Z",493,"/data/upload/5/0df8255e-efaa8dd97b36b54c67356ca6c1500791.jpg",0.866,"2025-12-20T11:13:21.543588Z"
|
| 321 |
+
494,"1","SUGGESTIVE","2025-12-20T11:13:22.602764Z",494,"/data/upload/5/e96341ac-ef6a78b93788b6cab069d01b92516ec6.jpg",0.793,"2025-12-20T11:13:22.602784Z"
|
| 322 |
+
495,"1","SUGGESTIVE","2025-12-20T11:13:23.921753Z",495,"/data/upload/5/2a7d0d01-ef6b436f284fd4c6a95adef2c0dc0555.jpg",1.062,"2025-12-20T11:13:23.921763Z"
|
| 323 |
+
496,"1","SUGGESTIVE","2025-12-20T11:13:25.119683Z",496,"/data/upload/5/e764a81b-ef7d423ff22abad26fcdc945e31dca5b.jpg",0.94,"2025-12-20T11:13:25.119704Z"
|
| 324 |
+
497,"1","SUGGESTIVE","2025-12-20T11:13:26.356293Z",497,"/data/upload/5/6ffc5735-ef70be698e9f8dbd29dacb15ac4d0ec9.jpg",0.97,"2025-12-20T11:13:26.356315Z"
|
| 325 |
+
498,"1","SUGGESTIVE","2025-12-20T11:13:27.651103Z",498,"/data/upload/5/98ce088a-ef76eea72ea523ba10369ff89f844b8d.jpg",1.024,"2025-12-20T11:13:27.651127Z"
|
| 326 |
+
499,"1","SUGGESTIVE","2025-12-20T11:13:28.931608Z",499,"/data/upload/5/772bc39c-ef4a21bca7ceab6a75e2a5fd738408d9.jpg",1.044,"2025-12-20T11:13:28.931630Z"
|
| 327 |
+
500,"1","SUGGESTIVE","2025-12-20T11:13:30.180348Z",500,"/data/upload/5/7207626d-ef378dd1f4004be18abc11bef3c80de4.jpg",0.96,"2025-12-20T11:13:30.180370Z"
|
| 328 |
+
501,"1","SUGGESTIVE","2025-12-20T11:13:31.336122Z",501,"/data/upload/5/281a7d11-ef4790408c0eb4ad41d481796a8d76fd.jpg",0.882,"2025-12-20T11:13:31.336143Z"
|
| 329 |
+
502,"1","FAMILY_SAFE","2025-12-20T11:13:32.792343Z",502,"/data/upload/5/15072791-ef0a3b5c272d10607604167b4bc37034.jpg",1.183,"2025-12-20T11:13:32.792367Z"
|
| 330 |
+
503,"1","UNCERTAIN","2025-12-20T11:13:36.021549Z",503,"/data/upload/5/6dc70b1e-ef1026a33c894d18a1a1f32922017fbf.jpg",2.957,"2025-12-20T11:13:36.021570Z"
|
| 331 |
+
504,"1","SUGGESTIVE","2025-12-20T11:13:37.328820Z",504,"/data/upload/5/c8740c8b-eedc4a75b4521825dd368a81324741e4.jpg",1.046,"2025-12-20T11:13:37.328833Z"
|
| 332 |
+
505,"1","UNCERTAIN","2025-12-20T11:13:39.974605Z",505,"/data/upload/5/dcfb8a01-eebd67e28f811ad93ce45d7a22c9a280.jpg",2.385,"2025-12-20T11:13:39.974623Z"
|
| 333 |
+
506,"1","SUGGESTIVE","2025-12-20T11:13:41.259678Z",506,"/data/upload/5/9283a4a4-eed2a73a4dc7506b1ce5042c0d86a41f.jpg",1.023,"2025-12-20T11:13:41.259699Z"
|
| 334 |
+
507,"1","SUGGESTIVE","2025-12-20T11:13:43.239857Z",507,"/data/upload/5/d9b69ac8-eed7b464c9a9d59069f62bd631953120.jpg",1.703,"2025-12-20T11:13:43.239877Z"
|
| 335 |
+
508,"1","UNCERTAIN","2025-12-20T11:13:47.266206Z",508,"/data/upload/5/81f42f14-ee9ba96fe055cbfa17dbe24799365177.jpg",3.765,"2025-12-20T11:13:47.266218Z"
|
| 336 |
+
509,"1","SUGGESTIVE","2025-12-20T11:13:55.896786Z",509,"/data/upload/5/5878b83e-ee9dc9d669cf306bf6bf04dfaf3b1c9d.jpg",8.423,"2025-12-20T11:13:55.896802Z"
|
| 337 |
+
510,"1","SUGGESTIVE","2025-12-20T11:13:57.135918Z",510,"/data/upload/5/e31a796f-eea76211c790d725a7dd027a99213afb.jpg",0.949,"2025-12-20T11:13:57.135942Z"
|
| 338 |
+
511,"1","SUGGESTIVE","2025-12-20T11:13:58.373320Z",511,"/data/upload/5/a4c89124-eeaa866b8633bedc8034bce163670339.jpg",0.955,"2025-12-20T11:13:58.373342Z"
|
| 339 |
+
512,"1","SUGGESTIVE","2025-12-20T11:13:59.537399Z",512,"/data/upload/5/35909ea6-eeab35797f69d18b0187e08c5549efb6.jpg",0.893,"2025-12-20T11:13:59.537422Z"
|
| 340 |
+
513,"1","SUGGESTIVE","2025-12-20T11:14:00.628161Z",513,"/data/upload/5/da887e4a-eeb5d0dbe82e36107e2af75b20ab17c7.jpg",0.823,"2025-12-20T11:14:00.628182Z"
|
| 341 |
+
514,"1","SUGGESTIVE","2025-12-20T11:14:01.905252Z",514,"/data/upload/5/75ab9401-eebbd19e449133670a58baff0fa109ec.jpg",0.991,"2025-12-20T11:14:01.905271Z"
|
| 342 |
+
515,"1","SUGGESTIVE","2025-12-20T11:14:02.983344Z",515,"/data/upload/5/e75f4995-eebcec31909a43812f2334fb37807008.jpg",0.807,"2025-12-20T11:14:02.983367Z"
|
| 343 |
+
516,"1","SUGGESTIVE","2025-12-20T11:14:04.036058Z",516,"/data/upload/5/de0c936f-ee8a39d9411e2cd46e726afe1c5a4895.jpg",0.777,"2025-12-20T11:14:04.036081Z"
|
| 344 |
+
517,"1","FAMILY_SAFE","2025-12-20T11:14:05.905275Z",517,"/data/upload/5/e2e721c6-ee8c7ace06eac5eecd8b709b93976d0b.jpg",1.588,"2025-12-20T11:14:05.905294Z"
|
| 345 |
+
518,"1","SUGGESTIVE","2025-12-20T11:14:07.773033Z",518,"/data/upload/5/6828a485-ee90a0e72628f9dc27de80e5ce701bc2.jpg",1.592,"2025-12-20T11:14:07.773054Z"
|
| 346 |
+
519,"1","FAMILY_SAFE","2025-12-20T11:14:09.171253Z",519,"/data/upload/5/ef0ac7d6-ee890fafca12595501b30093d54320af.jpg",1.119,"2025-12-20T11:14:09.171273Z"
|
| 347 |
+
520,"1","UNCERTAIN","2025-12-20T11:14:13.686655Z",520,"/data/upload/5/eb7e0cef-ee93704434f4aa96859be27f8b04f4ca.jpg",4.233,"2025-12-20T11:14:13.686678Z"
|
| 348 |
+
521,"1","FAMILY_SAFE","2025-12-20T11:14:15.141517Z",521,"/data/upload/5/6127f82d-ee4fad4fd52e6f1dc5121d1965a31e61.jpg",1.18,"2025-12-20T11:14:15.141540Z"
|
| 349 |
+
522,"1","FAMILY_SAFE","2025-12-20T11:14:16.832347Z",522,"/data/upload/5/cc55d5b2-ee745023dec8ba83a3b401aaa5a34f2d.jpg",1.415,"2025-12-20T11:14:16.832370Z"
|
| 350 |
+
523,"1","SUGGESTIVE","2025-12-20T11:14:18.268038Z",523,"/data/upload/5/ae6d504b-ee44eff2d80d58e6f2c6122fcc468c63.jpg",1.162,"2025-12-20T11:14:18.268059Z"
|
| 351 |
+
524,"1","UNCERTAIN","2025-12-20T11:14:19.950922Z",524,"/data/upload/5/5fee8ad9-ee435d2ab53c469e63808c8d60c6351e.jpg",1.403,"2025-12-20T11:14:19.950946Z"
|
| 352 |
+
525,"1","SUGGESTIVE","2025-12-20T11:14:21.710157Z",525,"/data/upload/5/a0a2d935-ee166c5de961d809600d8a47a8284e7e.jpg",1.485,"2025-12-20T11:14:21.710180Z"
|
| 353 |
+
526,"1","FAMILY_SAFE","2025-12-20T11:14:24.977643Z",526,"/data/upload/5/8a5bf427-ee3086dce1a61b091b09bb8bf460d671.jpg",2.987,"2025-12-20T11:14:24.977665Z"
|
| 354 |
+
527,"1","FAMILY_SAFE","2025-12-20T11:14:26.473080Z",527,"/data/upload/5/305abb91-ede68be22f91fbddc1f4e072b05c0ae5.jpg",1.216,"2025-12-20T11:14:26.473099Z"
|
| 355 |
+
528,"1","SUGGESTIVE","2025-12-20T11:14:34.476082Z",528,"/data/upload/5/429234c0-edf1ded0501e179112b516a99a58f6b3.jpg",7.624,"2025-12-20T11:14:34.476105Z"
|
| 356 |
+
529,"1","FAMILY_SAFE","2025-12-20T11:14:35.731319Z",529,"/data/upload/5/90e7a11a-edf5de76bd4db7ec201caf452ffd1519.jpg",0.964,"2025-12-20T11:14:35.731341Z"
|
| 357 |
+
530,"1","SUGGESTIVE","2025-12-20T11:14:40.517155Z",530,"/data/upload/5/357576cd-edbca137d1801a86d305e4ad3f3a6305.jpg",4.498,"2025-12-20T11:14:40.517177Z"
|
| 358 |
+
531,"1","SUGGESTIVE","2025-12-20T11:14:41.874482Z",531,"/data/upload/5/274e3d8d-edcdf84578e3103a185073e581089641.jpg",1.121,"2025-12-20T11:14:41.874501Z"
|
| 359 |
+
532,"1","SUGGESTIVE","2025-12-20T11:14:43.078036Z",532,"/data/upload/5/09696d76-edd88c179c4b8d37223a74e58757921b.jpg",0.936,"2025-12-20T11:14:43.078049Z"
|
| 360 |
+
533,"1","SUGGESTIVE","2025-12-20T11:14:44.531706Z",533,"/data/upload/5/2befe926-eddca7fbfe13ebce00a268c70550b580.jpg",1.176,"2025-12-20T11:14:44.531729Z"
|
| 361 |
+
534,"1","UNCERTAIN","2025-12-20T11:14:46.797039Z",534,"/data/upload/5/dd0a59aa-edddf271573716e8e4e571451c634b85.jpg",1.951,"2025-12-20T11:14:46.797055Z"
|
| 362 |
+
535,"1","FAMILY_SAFE","2025-12-20T11:14:48.109629Z",535,"/data/upload/5/52784190-ed8db5c9ad94f3f769b504dba5d12f3c.jpg",1.026,"2025-12-20T11:14:48.109649Z"
|
| 363 |
+
536,"1","UNCERTAIN","2025-12-20T11:14:52.728165Z",536,"/data/upload/5/7c8e5c47-ed9f73ea5150c7871fa9ab71e2808929.jpg",4.327,"2025-12-20T11:14:52.728187Z"
|
| 364 |
+
537,"1","SUGGESTIVE","2025-12-20T11:14:57.525160Z",537,"/data/upload/5/23660c64-ed78b3d3e8cf8fa817e55818ef219f2f.jpg",4.515,"2025-12-20T11:14:57.525177Z"
|
| 365 |
+
538,"1","SUGGESTIVE","2025-12-20T11:14:58.675477Z",538,"/data/upload/5/36ccdc32-ed9326789faddcf165c85c0c46e61892.jpg",0.859,"2025-12-20T11:14:58.675498Z"
|
| 366 |
+
539,"1","SUGGESTIVE","2025-12-20T11:14:59.853456Z",539,"/data/upload/5/eae0b0ad-eda271d3e424bcbddf17ba2795ca31ab.jpg",0.942,"2025-12-20T11:14:59.853477Z"
|
| 367 |
+
540,"1","FAMILY_SAFE","2025-12-20T11:15:02.140692Z",540,"/data/upload/5/7817ce56-edb7db1fcb69296415e2f32cd5cac1ba.jpg",1.997,"2025-12-20T11:15:02.140713Z"
|
| 368 |
+
541,"1","FAMILY_SAFE","2025-12-20T11:15:03.743247Z",541,"/data/upload/5/7151cdf8-edb3802789ea655bda76512662ef16fd.jpg",1.321,"2025-12-20T11:15:03.743270Z"
|
| 369 |
+
542,"1","SUGGESTIVE","2025-12-20T11:15:05.815531Z",542,"/data/upload/5/420c8652-ed4fa0d4320a9474fcdbf9f260d5ccd9.jpg",1.829,"2025-12-20T11:15:05.815552Z"
|
| 370 |
+
543,"1","SUGGESTIVE","2025-12-20T11:15:07.248456Z",543,"/data/upload/5/f12d507b-ed6ad32bca5a4012c154cea7d74675c1.jpg",1.15,"2025-12-20T11:15:07.248477Z"
|
| 371 |
+
544,"1","SUGGESTIVE","2025-12-20T11:15:09.882659Z",544,"/data/upload/5/ea78c268-ed59c63ff419564a0091bf4dba0db57b.jpg",2.361,"2025-12-20T11:15:09.882680Z"
|
| 372 |
+
545,"1","SUGGESTIVE","2025-12-20T11:15:11.329418Z",545,"/data/upload/5/8bc1df46-ed684d1f722a3e6fd6644a086a941908.jpg",1.166,"2025-12-20T11:15:11.329443Z"
|
| 373 |
+
546,"1","FAMILY_SAFE","2025-12-20T11:15:13.800073Z",546,"/data/upload/5/6ac74b20-ed0dd06c432216aa905a2732eb14d356.jpg",2.181,"2025-12-20T11:15:13.800097Z"
|
| 374 |
+
547,"1","UNCERTAIN","2025-12-20T11:15:16.999522Z",547,"/data/upload/5/f88fee24-ed21cb4f07ee87064a3203c18fd4cce1.jpg",2.921,"2025-12-20T11:15:16.999544Z"
|
| 375 |
+
548,"1","FAMILY_SAFE","2025-12-20T11:15:25.935429Z",548,"/data/upload/5/2f604374-ed22e47a89b289fcddbd58d84fe4af7a.jpg",8.658,"2025-12-20T11:15:25.935441Z"
|
| 376 |
+
549,"1","FAMILY_SAFE","2025-12-20T11:15:35.261454Z",549,"/data/upload/5/3afea32d-ece69a65ed45a3edf1fc00efbbfaedb7.jpg",9.003,"2025-12-20T11:15:35.261477Z"
|
| 377 |
+
550,"1","SUGGESTIVE","2025-12-20T11:15:36.996397Z",550,"/data/upload/5/e4e420e1-ece99c6f98d2a711d94c11bb54cce29f.jpg",1.411,"2025-12-20T11:15:36.996419Z"
|
| 378 |
+
551,"1","FAMILY_SAFE","2025-12-20T11:15:38.332445Z",551,"/data/upload/5/c356522a-ed0ab3e1587ed20eeace37e94f8d54ba.jpg",1.041,"2025-12-20T11:15:38.332458Z"
|
| 379 |
+
552,"1","FAMILY_SAFE","2025-12-20T11:15:39.769695Z",552,"/data/upload/5/a9f4ce1f-ed0b80d5b8a1a6cd023555b1695c5037.jpg",1.173,"2025-12-20T11:15:39.769708Z"
|
| 380 |
+
553,"1","FAMILY_SAFE","2025-12-20T11:15:40.870114Z",553,"/data/upload/5/5822bed3-ed0c697143d8cfcf7772d205537c1a53.jpg",0.827,"2025-12-20T11:15:40.870126Z"
|
| 381 |
+
554,"1","UNCERTAIN","2025-12-20T11:15:42.636356Z",554,"/data/upload/5/8d880f44-ed01e05d1b0f341627595626f0d1fc19.jpg",1.48,"2025-12-20T11:15:42.636377Z"
|
| 382 |
+
555,"1","UNCERTAIN","2025-12-20T11:15:45.710540Z",555,"/data/upload/5/d513daab-ed0590024f5fe63e2dca696949cd4a3b.jpg",2.776,"2025-12-20T11:15:45.710565Z"
|
| 383 |
+
556,"1","SUGGESTIVE","2025-12-20T11:15:47.346622Z",556,"/data/upload/5/c80032d6-ecd074a8a73aafc255fb87c50ab46d32.jpg",1.348,"2025-12-20T11:15:47.346644Z"
|
| 384 |
+
557,"1","SUGGESTIVE","2025-12-20T11:15:48.529900Z",557,"/data/upload/5/5cb76bcd-ecd461884c7d815ca300840ac7dff722.jpg",0.895,"2025-12-20T11:15:48.529922Z"
|
| 385 |
+
558,"1","SUGGESTIVE","2025-12-20T11:15:52.668563Z",558,"/data/upload/5/475e3763-ecab477c7f479d98386c20ed15ddc8ed.jpg",3.851,"2025-12-20T11:15:52.668584Z"
|
| 386 |
+
559,"1","SUGGESTIVE","2025-12-20T11:15:54.567362Z",559,"/data/upload/5/38faa256-ecb96a10b5007cac877671cd626e11bc.jpg",1.602,"2025-12-20T11:15:54.567383Z"
|
| 387 |
+
560,"1","FAMILY_SAFE","2025-12-20T11:15:56.337890Z",560,"/data/upload/5/0a0d8662-ecb215bf839692ed00a48cf006405234.jpg",1.481,"2025-12-20T11:15:56.337909Z"
|
| 388 |
+
561,"1","SUGGESTIVE","2025-12-20T11:15:57.966410Z",561,"/data/upload/5/fe38b006-ec912c8d68846d3d4cae46a6dc2e2e67.jpg",1.341,"2025-12-20T11:15:57.966432Z"
|
| 389 |
+
562,"1","SUGGESTIVE","2025-12-20T11:15:59.137586Z",562,"/data/upload/5/61198ea6-eca396464fb1343904128cac952dccba.jpg",0.887,"2025-12-20T11:15:59.137606Z"
|
| 390 |
+
563,"1","SUGGESTIVE","2025-12-20T11:16:00.622365Z",563,"/data/upload/5/f42a237d-ec8ba9e30ab570db99c521c4d75e877a.jpg",1.19,"2025-12-20T11:16:00.622387Z"
|
| 391 |
+
564,"1","FAMILY_SAFE","2025-12-20T11:16:02.887401Z",564,"/data/upload/5/9ea2a68b-ec75da7bce977ab4b2d77224ad0ed08d.jpg",2.012,"2025-12-20T11:16:02.887421Z"
|
| 392 |
+
565,"1","SUGGESTIVE","2025-12-20T11:16:04.458689Z",565,"/data/upload/5/b19e9aff-ec7752c4445664d6a594779d0cba33a6.jpg",1.266,"2025-12-20T11:16:04.458709Z"
|
| 393 |
+
566,"1","FAMILY_SAFE","2025-12-20T11:16:05.825255Z",566,"/data/upload/5/cb8a1b42-ec4ed6c5f59cd751b1d4a8cbd5ef9730.jpg",1.121,"2025-12-20T11:16:05.825278Z"
|
| 394 |
+
567,"1","SUGGESTIVE","2025-12-20T11:16:07.289021Z",567,"/data/upload/5/11f16074-ec4f3a4fceac2b83221995baa3ce6138.jpg",1.171,"2025-12-20T11:16:07.289043Z"
|
| 395 |
+
568,"1","FAMILY_SAFE","2025-12-20T11:16:09.451497Z",568,"/data/upload/5/cf990f78-ec4898ce293c0fce9e3df490ef83741d.jpg",1.874,"2025-12-20T11:16:09.451517Z"
|
| 396 |
+
569,"1","FAMILY_SAFE","2025-12-20T11:16:12.080564Z",569,"/data/upload/5/958ec76b-ec5156a1d4dad967c4ed14a44fc9c10f.jpg",2.338,"2025-12-20T11:16:12.080586Z"
|
| 397 |
+
570,"1","FAMILY_SAFE","2025-12-20T11:16:15.484336Z",570,"/data/upload/5/b1c40d0c-ec5965d57ca71e648adc70401156b743.jpg",3.151,"2025-12-20T11:16:15.484358Z"
|
| 398 |
+
571,"1","SUGGESTIVE","2025-12-20T11:16:18.658159Z",571,"/data/upload/5/5c8c7c7e-ec3c4b7b7261c385c7792663a153b2dc.jpg",2.875,"2025-12-20T11:16:18.658181Z"
|
| 399 |
+
572,"1","SUGGESTIVE","2025-12-20T11:16:19.912910Z",572,"/data/upload/5/c8925d60-ec2488d58f5c6f80593119f44bdb6f36.jpg",0.962,"2025-12-20T11:16:19.912934Z"
|
| 400 |
+
573,"1","SUGGESTIVE","2025-12-20T11:16:21.529093Z",573,"/data/upload/5/783f692a-ec3873aa10b64f2c5c0ae4044d8dd916.jpg",1.316,"2025-12-20T11:16:21.529115Z"
|
| 401 |
+
574,"1","SUGGESTIVE","2025-12-20T11:16:23.018673Z",574,"/data/upload/5/c59d6aef-ec366037d7416be3f574f23f7e0fb3ef.jpg",1.234,"2025-12-20T11:16:23.018695Z"
|
| 402 |
+
575,"1","UNCERTAIN","2025-12-20T11:16:26.042777Z",575,"/data/upload/5/ba90116c-ebfda352bd5113859294aff74239faed.jpg",2.726,"2025-12-20T11:16:26.042812Z"
|
| 403 |
+
576,"1","FAMILY_SAFE","2025-12-20T11:16:28.693166Z",576,"/data/upload/5/74013397-ebfe9c315f7eba7ee13ffecfbe52cab8.jpg",2.355,"2025-12-20T11:16:28.693188Z"
|
| 404 |
+
577,"1","SUGGESTIVE","2025-12-20T11:16:31.044435Z",577,"/data/upload/5/2827b91c-ec1a1c97dab7c740188280a871b78251.jpg",2.062,"2025-12-20T11:16:31.044457Z"
|
| 405 |
+
578,"1","SUGGESTIVE","2025-12-20T11:16:32.150600Z",578,"/data/upload/5/07efebe4-ebd3a3a173aa3985f69c95a9bbeec91a.jpg",0.811,"2025-12-20T11:16:32.150620Z"
|
| 406 |
+
579,"1","SUGGESTIVE","2025-12-20T11:16:34.495508Z",579,"/data/upload/5/34018f60-ebe7ee3f3605c66f1be4eb323e3ae05f.jpg",2.053,"2025-12-20T11:16:34.495530Z"
|
| 407 |
+
580,"1","SUGGESTIVE","2025-12-20T11:16:35.645933Z",580,"/data/upload/5/a2dd1244-ebe59192b6950204b3fee2c0edf9242d.jpg",0.897,"2025-12-20T11:16:35.645960Z"
|
| 408 |
+
581,"1","UNCERTAIN","2025-12-20T11:16:38.122775Z",581,"/data/upload/5/670193c9-ebef8223abe988c0821aefae3c6e6e98.jpg",2.184,"2025-12-20T11:16:38.122798Z"
|
| 409 |
+
582,"1","SUGGESTIVE","2025-12-20T11:16:39.382056Z",582,"/data/upload/5/c91cb641-ebf05bafa1371d6feb6aa81ea7cbbf7a.jpg",0.962,"2025-12-20T11:16:39.382081Z"
|
| 410 |
+
583,"1","SUGGESTIVE","2025-12-20T11:16:40.717924Z",583,"/data/upload/5/e91af0b1-ebf0503fe32e2e3a76346007e4aaf886.jpg",1.082,"2025-12-20T11:16:40.717945Z"
|
| 411 |
+
584,"1","FAMILY_SAFE","2025-12-20T11:16:42.560031Z",584,"/data/upload/5/5fddd072-ebb2b0dd48dc25f919f57ff2a2e7312a.jpg",1.529,"2025-12-20T11:16:42.560060Z"
|
| 412 |
+
585,"1","UNCERTAIN","2025-12-20T11:16:47.348097Z",585,"/data/upload/5/26c7e03e-ebcf6c5f871a5dc3e6e9f035bf8fba78.jpg",4.49,"2025-12-20T11:16:47.348120Z"
|
| 413 |
+
586,"1","SUGGESTIVE","2025-12-20T11:16:48.792913Z",586,"/data/upload/5/19060fc3-ebd170644a805b3966416bc6f2d40528.jpg",1.152,"2025-12-20T11:16:48.792936Z"
|
| 414 |
+
587,"1","SUGGESTIVE","2025-12-20T11:16:50.003030Z",587,"/data/upload/5/6a2a26d9-eb8a6ed9fea3fd6949774e598fed9d20.jpg",0.913,"2025-12-20T11:16:50.003050Z"
|
| 415 |
+
588,"1","SUGGESTIVE","2025-12-20T11:16:51.116372Z",588,"/data/upload/5/61cf0086-eb8d76f9ea022d2b18f119288e0fb083.jpg",0.818,"2025-12-20T11:16:51.116393Z"
|
| 416 |
+
589,"1","SUGGESTIVE","2025-12-20T11:16:52.553391Z",589,"/data/upload/5/71c87364-eb9f10122a8e23579c8d1a2cdc0e8db4.jpg",1.141,"2025-12-20T11:16:52.553410Z"
|
| 417 |
+
590,"1","SUGGESTIVE","2025-12-20T11:16:54.439366Z",590,"/data/upload/5/9eebe5b1-eb905d1b7fc7b0eac9adea12bee291bc.jpg",1.581,"2025-12-20T11:16:54.439389Z"
|
| 418 |
+
591,"1","SUGGESTIVE","2025-12-20T11:16:55.809365Z",591,"/data/upload/5/b7ac5915-eb915f5d723fe6d575e7471e8130924d.jpg",1.065,"2025-12-20T11:16:55.809387Z"
|
| 419 |
+
592,"1","FAMILY_SAFE","2025-12-20T11:16:57.902445Z",592,"/data/upload/5/700eea71-eb7967ec45df17fadffae1e9b84a1c03.jpg",1.838,"2025-12-20T11:16:57.902469Z"
|
| 420 |
+
593,"1","SUGGESTIVE","2025-12-20T11:17:03.290332Z",593,"/data/upload/5/dd925e69-eba026d7ab6dcbf77c05e9e1fce9f98b.jpg",5.127,"2025-12-20T11:17:03.290353Z"
|
| 421 |
+
594,"1","FAMILY_SAFE","2025-12-20T11:17:04.792415Z",594,"/data/upload/5/01dc90a4-eba313f10bf5953b52dc8145a668f4b1.jpg",1.253,"2025-12-20T11:17:04.792426Z"
|
| 422 |
+
595,"1","FAMILY_SAFE","2025-12-20T11:17:06.088346Z",595,"/data/upload/5/49462a8c-eb3e848d5f3969eb49f10ef14db11593.jpg",1.058,"2025-12-20T11:17:06.088364Z"
|
| 423 |
+
596,"1","UNCERTAIN","2025-12-20T11:17:08.374506Z",596,"/data/upload/5/84cabf94-eb46a86b864004fb56c426f3e6859869.jpg",2.047,"2025-12-20T11:17:08.374518Z"
|
| 424 |
+
597,"1","SUGGESTIVE","2025-12-20T11:17:10.703608Z",597,"/data/upload/5/8d99d164-eb630bc86c8b347b6e4f3f947ef03b45.jpg",2.084,"2025-12-20T11:17:10.703628Z"
|
| 425 |
+
598,"1","FAMILY_SAFE","2025-12-20T11:17:12.055943Z",598,"/data/upload/5/a5dc7a8b-eb0b4aec28838b01b635ae2d906319fd.jpg",1.095,"2025-12-20T11:17:12.055962Z"
|
| 426 |
+
599,"1","SUGGESTIVE","2025-12-20T11:17:14.330023Z",599,"/data/upload/5/c998ec26-eb0fd6ae406bcbf648f37716832167b7.jpg",2.013,"2025-12-20T11:17:14.330043Z"
|
| 427 |
+
600,"1","UNCERTAIN","2025-12-20T11:17:16.223352Z",600,"/data/upload/5/9a363203-eb1efa483d18843e2d34330b324e49e7.jpg",1.63,"2025-12-20T11:17:16.223375Z"
|
| 428 |
+
601,"1","SUGGESTIVE","2025-12-20T11:17:18.298434Z",601,"/data/upload/5/80174771-eb2bbc40d914d047f6a15d0d1db4af9b.jpg",1.816,"2025-12-20T11:17:18.298455Z"
|
| 429 |
+
602,"1","SUGGESTIVE","2025-12-20T11:17:20.449203Z",602,"/data/upload/5/da470e08-eb214a887113aeae8902116d5ebcb84a.jpg",1.891,"2025-12-20T11:17:20.449223Z"
|
| 430 |
+
603,"1","UNCERTAIN","2025-12-20T11:17:22.482759Z",603,"/data/upload/5/c1369917-eb396372a0cbb497fcb259ecf9859fab.jpg",1.772,"2025-12-20T11:17:22.482780Z"
|
| 431 |
+
604,"1","SUGGESTIVE","2025-12-20T11:17:23.676845Z",604,"/data/upload/5/eaf48512-eae00de851425f14cf837f6238fb3111.jpg",0.934,"2025-12-20T11:17:23.676867Z"
|
| 432 |
+
605,"1","SUGGESTIVE","2025-12-20T11:17:25.074810Z",605,"/data/upload/5/3ae42af7-ea9478ccf8264c91cf5485c93fecba1b.jpg",1.109,"2025-12-20T11:17:25.074831Z"
|
| 433 |
+
606,"1","FAMILY_SAFE","2025-12-20T11:17:26.367613Z",606,"/data/upload/5/990348b4-ea889002933fd0689c1bd805505d00ca.jpg",1.028,"2025-12-20T11:17:26.367637Z"
|
| 434 |
+
607,"1","SUGGESTIVE","2025-12-20T11:17:27.785077Z",607,"/data/upload/5/77e2c941-eaa26e78346e1d92ee8b34a80aff9826.jpg",1.154,"2025-12-20T11:17:27.785097Z"
|
| 435 |
+
608,"1","SUGGESTIVE","2025-12-20T11:17:29.276528Z",608,"/data/upload/5/775910aa-eaac5564f212f117e0ea7174b0876484.jpg",1.231,"2025-12-20T11:17:29.276546Z"
|
| 436 |
+
609,"1","SUGGESTIVE","2025-12-20T11:17:30.986551Z",609,"/data/upload/5/b8405e3c-eac0ebc831eeb117fb36c86452b6c5f5.jpg",1.448,"2025-12-20T11:17:30.986569Z"
|
| 437 |
+
610,"1","SUGGESTIVE","2025-12-20T11:17:32.280226Z",610,"/data/upload/5/1e5eb554-ea5d2de8ab1fd0ec4b61ed153805d638.jpg",1.031,"2025-12-20T11:17:32.280245Z"
|
| 438 |
+
611,"1","SUGGESTIVE","2025-12-20T11:17:33.617114Z",611,"/data/upload/5/ee2ed958-ea6df97b08a8c96a9587abe7764f9cc3.jpg",1.069,"2025-12-20T11:17:33.617138Z"
|
| 439 |
+
612,"1","SUGGESTIVE","2025-12-20T11:17:34.830280Z",612,"/data/upload/5/27bffd86-ea6fffbf1d3afbbbeea92a3c1c6deffd.jpg",0.96,"2025-12-20T11:17:34.830291Z"
|
| 440 |
+
613,"1","SUGGESTIVE","2025-12-20T11:17:36.024430Z",613,"/data/upload/5/bc246849-ea71edf190810bac9c56483239eae59a.jpg",0.954,"2025-12-20T11:17:36.024452Z"
|
| 441 |
+
614,"1","UNCERTAIN","2025-12-20T11:17:38.001067Z",614,"/data/upload/5/39c155ed-ea4b1f27828cbd87b0f95f1f36cd7a54.jpg",1.711,"2025-12-20T11:17:38.001089Z"
|
| 442 |
+
615,"1","UNCERTAIN","2025-12-20T11:17:39.958934Z",615,"/data/upload/5/2b92f3dc-ea5380a591b6e34d1382a67221b558aa.jpg",1.693,"2025-12-20T11:17:39.958953Z"
|
| 443 |
+
616,"1","UNCERTAIN","2025-12-20T11:17:42.141113Z",616,"/data/upload/5/03579438-ea1f42c6e20979a40230b242e5d6bbee.jpg",1.922,"2025-12-20T11:17:42.141136Z"
|
| 444 |
+
617,"1","SUGGESTIVE","2025-12-20T11:17:47.238864Z",617,"/data/upload/5/e5da72ea-ea20b59163f3b360f62d68e4f132393b.jpg",4.806,"2025-12-20T11:17:47.238881Z"
|
| 445 |
+
618,"1","UNCERTAIN","2025-12-20T11:17:49.325187Z",618,"/data/upload/5/7fce3819-ea37c94a8cb1c50c4084d4c9cc9bd177.jpg",1.798,"2025-12-20T11:17:49.325212Z"
|
| 446 |
+
619,"1","UNCERTAIN","2025-12-20T11:17:51.372252Z",619,"/data/upload/5/0b24edd3-e9d77067389acfaa2897de087ec279a1.jpg",1.783,"2025-12-20T11:17:51.372275Z"
|
| 447 |
+
620,"1","UNCERTAIN","2025-12-20T11:17:53.649618Z",620,"/data/upload/5/b61339af-e9e395951ba5901de8ba2b15899689ee.jpg",2.015,"2025-12-20T11:17:53.649643Z"
|
| 448 |
+
621,"1","SUGGESTIVE","2025-12-20T11:17:55.332499Z",621,"/data/upload/5/bb7c935c-e9eefa0852edb5311b63d6fbf85a9815.jpg",1.416,"2025-12-20T11:17:55.332524Z"
|
| 449 |
+
622,"1","SUGGESTIVE","2025-12-20T11:17:56.616158Z",622,"/data/upload/5/3bcb2655-e9f9cb6790fcb4c6960e5b834abfe72c.jpg",1.017,"2025-12-20T11:17:56.616182Z"
|
| 450 |
+
623,"1","SUGGESTIVE","2025-12-20T11:17:57.786359Z",623,"/data/upload/5/630fff65-e9f0689b5df3c0bbb17ec7a670ebacb8.jpg",0.903,"2025-12-20T11:17:57.786380Z"
|
| 451 |
+
624,"1","SUGGESTIVE","2025-12-20T11:17:58.867328Z",624,"/data/upload/5/3c9f8955-e9b23e6e929900bbbbb29be5affa0ae5.jpg",0.813,"2025-12-20T11:17:58.867353Z"
|
| 452 |
+
625,"1","UNCERTAIN","2025-12-20T11:18:01.360483Z",625,"/data/upload/5/e2b2a6ac-e9a15368497b12a5f502151ce2babdd1.jpg",2.229,"2025-12-20T11:18:01.360506Z"
|
| 453 |
+
626,"1","SUGGESTIVE","2025-12-20T11:18:02.960491Z",626,"/data/upload/5/28c4871f-e9ab035913a3f11963041ef9b89caa2e.jpg",1.347,"2025-12-20T11:18:02.960501Z"
|
| 454 |
+
627,"1","SUGGESTIVE","2025-12-20T11:18:04.139209Z",627,"/data/upload/5/e41d2daa-e96c2e00fce0f439d17ad2731eb76f06.jpg",0.927,"2025-12-20T11:18:04.139229Z"
|
| 455 |
+
628,"1","FAMILY_SAFE","2025-12-20T11:18:05.410684Z",628,"/data/upload/5/31a90818-e983a4f33a2035ff412231c35d7fcfa5.jpg",1.001,"2025-12-20T11:18:05.410706Z"
|
| 456 |
+
629,"1","FAMILY_SAFE","2025-12-20T11:18:06.674246Z",629,"/data/upload/5/4da9491c-e95cf7d4d15184aeb5847e9e6a51e9d0.jpg",1.002,"2025-12-20T11:18:06.674269Z"
|
data/annotations.json
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
data/falcons_predictions.csv
ADDED
|
@@ -0,0 +1,456 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
annotation_id,file_upload,actual_filename,label_studio_choice,label_0,label_1,score_0,score_1
|
| 2 |
+
175,0f7d40c8-ffd86ff5fbd82d0e6eb176cbc0b83634.jpg,0f7d40c8-ffd86ff5fbd82d0e6eb176cbc0b83634.jpg,UNCERTAIN,normal,nsfw,0.9997729659080505,0.00022706740128342062
|
| 3 |
+
176,abe701ef-fff11e31ec0146bd469e5e3afa14a37a.jpg,abe701ef-fff11e31ec0146bd469e5e3afa14a37a.jpg,FAMILY_SAFE,normal,nsfw,0.9992530941963196,0.0007468326948583126
|
| 4 |
+
177,f3f6d9e7-ff8ba374753afc33d6efcddfa8190820.jpg,f3f6d9e7-ff8ba374753afc33d6efcddfa8190820.jpg,UNCERTAIN,normal,nsfw,0.9977607727050781,0.0022392449900507927
|
| 5 |
+
178,2a71e0e5-ff8f980e673cd0ca47acd5e46a60860e.jpg,2a71e0e5-ff8f980e673cd0ca47acd5e46a60860e.jpg,UNCERTAIN,normal,nsfw,0.9959889054298401,0.004011069890111685
|
| 6 |
+
179,883fb0f5-ff89d127a396bc4e269161fcb0debafc.jpg,883fb0f5-ff89d127a396bc4e269161fcb0debafc.jpg,UNCERTAIN,normal,nsfw,0.9997225403785706,0.00027748438878916204
|
| 7 |
+
180,2af0302e-ff943feb34677ab7380b172f5a879061.jpg,2af0302e-ff943feb34677ab7380b172f5a879061.jpg,FAMILY_SAFE,normal,nsfw,0.9970329999923706,0.0029670321382582188
|
| 8 |
+
181,00b62e8d-ff8923c82c694582614e3c6426f27d50.jpg,00b62e8d-ff8923c82c694582614e3c6426f27d50.jpg,SUGGESTIVE,nsfw,normal,0.540604829788208,0.459395170211792
|
| 9 |
+
182,bc29dd51-ffa3ea1e617fc51d9f897c3651d8c58c.jpg,bc29dd51-ffa3ea1e617fc51d9f897c3651d8c58c.jpg,UNCERTAIN,normal,nsfw,0.9997908473014832,0.00020912200852762908
|
| 10 |
+
183,7efcc1a9-ffb14bc253b175a8064d17ffe2c7249b.jpg,7efcc1a9-ffb14bc253b175a8064d17ffe2c7249b.jpg,FAMILY_SAFE,normal,nsfw,0.9997037053108215,0.000296269339742139
|
| 11 |
+
184,1ade517e-ff5c303cb978725b41ecdc33f99a9811.jpg,1ade517e-ff5c303cb978725b41ecdc33f99a9811.jpg,UNCERTAIN,normal,nsfw,0.9994058609008789,0.0005940930568613112
|
| 12 |
+
185,e90235cf-ff4ee441959276cee003489e10030787.jpg,e90235cf-ff4ee441959276cee003489e10030787.jpg,FAMILY_SAFE,normal,nsfw,0.9998548030853271,0.0001452306896680966
|
| 13 |
+
186,cb00e4b8-ff57d7cdec78610cfc32857254662054.jpg,cb00e4b8-ff57d7cdec78610cfc32857254662054.jpg,SUGGESTIVE,normal,nsfw,0.9996379613876343,0.000361983897164464
|
| 14 |
+
187,d140fb6b-ff42165c1c025a99db8fd3fbf47b9e8d.jpg,d140fb6b-ff42165c1c025a99db8fd3fbf47b9e8d.jpg,SUGGESTIVE,normal,nsfw,0.9991843104362488,0.0008156667463481426
|
| 15 |
+
188,a1cd3b22-ff0dbc383dfd54bed44ec0583cbba777.jpg,a1cd3b22-ff0dbc383dfd54bed44ec0583cbba777.jpg,SUGGESTIVE,normal,nsfw,0.9913567304611206,0.008643229492008686
|
| 16 |
+
189,ed323d8b-ff3cae8c55408c7ed67ef1daf9751319.jpg,ed323d8b-ff3cae8c55408c7ed67ef1daf9751319.jpg,SUGGESTIVE,normal,nsfw,0.9957081079483032,0.00429188646376133
|
| 17 |
+
190,c8ec92d5-fee9ea29f695f6f590dbaf3ecc99351b.jpg,c8ec92d5-fee9ea29f695f6f590dbaf3ecc99351b.jpg,UNCERTAIN,normal,nsfw,0.9986482262611389,0.0013518353225663304
|
| 18 |
+
191,f2c80c32-ff0a5673ea6b3139e5440728d7be66b4.jpg,f2c80c32-ff0a5673ea6b3139e5440728d7be66b4.jpg,SUGGESTIVE,normal,nsfw,0.9998561143875122,0.00014389827265404165
|
| 19 |
+
192,e9b17aee-ff007a23e0caf370e590d636413628fb.jpg,e9b17aee-ff007a23e0caf370e590d636413628fb.jpg,SUGGESTIVE,normal,nsfw,0.9974243640899658,0.0025756950490176678
|
| 20 |
+
193,c53b2fea-feb2e70ea41a86df9c9984df1aff49d1.jpg,c53b2fea-feb2e70ea41a86df9c9984df1aff49d1.jpg,SUGGESTIVE,normal,nsfw,0.9991050362586975,0.0008949259063228965
|
| 21 |
+
194,1540c751-feb3ae09e5e5e2d27b1c6b0d75e66c73.jpg,1540c751-feb3ae09e5e5e2d27b1c6b0d75e66c73.jpg,UNCERTAIN,normal,nsfw,0.9998250603675842,0.00017495673091616482
|
| 22 |
+
195,18eb5521-febafb43e0a8a5a62bd64d0e1e2c51bb.jpg,18eb5521-febafb43e0a8a5a62bd64d0e1e2c51bb.jpg,UNCERTAIN,nsfw,normal,0.6787581443786621,0.3212418854236603
|
| 23 |
+
196,09c99130-fec2e3149882333a9a5a381f562f9536.jpg,09c99130-fec2e3149882333a9a5a381f562f9536.jpg,FAMILY_SAFE,normal,nsfw,0.9995145797729492,0.0004854484577663243
|
| 24 |
+
197,6d3cfee1-fec30d1ce7fd3c5f8056da81cc0f56cd.jpg,6d3cfee1-fec30d1ce7fd3c5f8056da81cc0f56cd.jpg,SUGGESTIVE,normal,nsfw,0.999420166015625,0.0005798744969069958
|
| 25 |
+
198,02e91ed5-fecaf071c6d469a5e9db4516cf04c34f.jpg,02e91ed5-fecaf071c6d469a5e9db4516cf04c34f.jpg,UNCERTAIN,normal,nsfw,0.997307538986206,0.0026925040874630213
|
| 26 |
+
199,6084597d-fed1a27739f7fc733adfe4843185b995.jpg,6084597d-fed1a27739f7fc733adfe4843185b995.jpg,UNCERTAIN,normal,nsfw,0.9895889759063721,0.010411050170660019
|
| 27 |
+
200,18699932-fe8d4f54e561bf7a76f70e6b28299d59.jpg,18699932-fe8d4f54e561bf7a76f70e6b28299d59.jpg,FAMILY_SAFE,normal,nsfw,0.9997500777244568,0.00024995882995426655
|
| 28 |
+
201,759b4eb3-fe4ec0e6a0803e088352ad9cba4e969a.jpg,759b4eb3-fe4ec0e6a0803e088352ad9cba4e969a.jpg,FAMILY_SAFE,normal,nsfw,0.9990509152412415,0.0009490289958193898
|
| 29 |
+
202,fd0a4064-fe4f57b1dc8f46cbd79d69ad05652ac8.jpg,fd0a4064-fe4f57b1dc8f46cbd79d69ad05652ac8.jpg,UNCERTAIN,normal,nsfw,0.9997256398200989,0.0002743340446613729
|
| 30 |
+
203,722170f8-fe61bb1e7709ddb889307cd6d644bbb9.jpg,722170f8-fe61bb1e7709ddb889307cd6d644bbb9.jpg,SUGGESTIVE,normal,nsfw,0.9990665316581726,0.0009335206705145538
|
| 31 |
+
204,597903c6-fe446bc03fc71ccd0559f01bebbd073d.jpg,597903c6-fe446bc03fc71ccd0559f01bebbd073d.jpg,UNCERTAIN,normal,nsfw,0.985272228717804,0.01472778432071209
|
| 32 |
+
205,ded203db-fe11b6d8acc63b2819390a12a32bbd30.jpg,ded203db-fe11b6d8acc63b2819390a12a32bbd30.jpg,UNCERTAIN,normal,nsfw,0.998673677444458,0.001326378551311791
|
| 33 |
+
206,72e813f5-fde81d8132b2c70f39798f11186997bd.jpg,72e813f5-fde81d8132b2c70f39798f11186997bd.jpg,FAMILY_SAFE,normal,nsfw,0.8751723170280457,0.12482769787311554
|
| 34 |
+
207,6474cda9-fde879b3ab6d5f8fb99aacad817dc18f.jpg,6474cda9-fde879b3ab6d5f8fb99aacad817dc18f.jpg,FAMILY_SAFE,normal,nsfw,0.9998339414596558,0.0001660660345805809
|
| 35 |
+
208,9d734426-fdfc5d73210e52e70f9c1b337c7a7423.jpg,9d734426-fdfc5d73210e52e70f9c1b337c7a7423.jpg,FAMILY_SAFE,normal,nsfw,0.999377965927124,0.0006220253999345005
|
| 36 |
+
209,940a8d2a-fe06e1df8abfcc599b4edf3ceb84b767.jpg,940a8d2a-fe06e1df8abfcc599b4edf3ceb84b767.jpg,UNCERTAIN,normal,nsfw,0.9946976900100708,0.005302340257912874
|
| 37 |
+
210,6cf544b3-fdcc56c858be84644a24f71ca1ecf009.jpg,6cf544b3-fdcc56c858be84644a24f71ca1ecf009.jpg,FAMILY_SAFE,normal,nsfw,0.9998241066932678,0.0001759189326548949
|
| 38 |
+
211,c90492e9-fdce40a990a776a3ef934aa8eacfa0da.jpg,c90492e9-fdce40a990a776a3ef934aa8eacfa0da.jpg,FAMILY_SAFE,normal,nsfw,0.9997498393058777,0.0002501762646716088
|
| 39 |
+
212,d5d56f5c-fdd0daec3624d1d7acf8048484a7efe2.jpg,d5d56f5c-fdd0daec3624d1d7acf8048484a7efe2.jpg,FAMILY_SAFE,normal,nsfw,0.9997718930244446,0.00022811919916421175
|
| 40 |
+
213,1b6ade1e-fdbea88aeaa93ac7dbcb38d07b917e7d.jpg,1b6ade1e-fdbea88aeaa93ac7dbcb38d07b917e7d.jpg,UNCERTAIN,normal,nsfw,0.9995244741439819,0.0004754928813781589
|
| 41 |
+
214,e7c85aca-fdc00eac708506181cc0b3018d217b97.jpg,e7c85aca-fdc00eac708506181cc0b3018d217b97.jpg,UNCERTAIN,normal,nsfw,0.9997454285621643,0.0002546043542679399
|
| 42 |
+
215,6519a095-fd8eea5a65e5ef6cec86fe214c5a3cd3.jpg,6519a095-fd8eea5a65e5ef6cec86fe214c5a3cd3.jpg,SUGGESTIVE,normal,nsfw,0.9910959005355835,0.00890403613448143
|
| 43 |
+
216,bdce6a65-fd918dbde3d770d03716835677e7b611.jpg,bdce6a65-fd918dbde3d770d03716835677e7b611.jpg,FAMILY_SAFE,normal,nsfw,0.999869704246521,0.0001302508608205244
|
| 44 |
+
217,8ed58548-fd9371dd911d3a2099a6a652db4248b4.jpg,8ed58548-fd9371dd911d3a2099a6a652db4248b4.jpg,SUGGESTIVE,normal,nsfw,0.9998261332511902,0.00017390357970725745
|
| 45 |
+
218,72f07c2b-fd94006f594a7575961947fcca9faa08.jpg,72f07c2b-fd94006f594a7575961947fcca9faa08.jpg,SUGGESTIVE,normal,nsfw,0.9692232608795166,0.030776789411902428
|
| 46 |
+
219,9eb0117b-fd7f50b9d57c9384041914d1b4cdd77c.jpg,9eb0117b-fd7f50b9d57c9384041914d1b4cdd77c.jpg,FAMILY_SAFE,normal,nsfw,0.9997332692146301,0.0002667715307325125
|
| 47 |
+
220,e243712d-fd71a7a81dea0c9fc195cf6d6f32b0a9.jpg,e243712d-fd71a7a81dea0c9fc195cf6d6f32b0a9.jpg,FAMILY_SAFE,normal,nsfw,0.999825656414032,0.000174321947270073
|
| 48 |
+
221,3198b794-fd826bc213d0273afbb83b3c4aec1adc.jpg,3198b794-fd826bc213d0273afbb83b3c4aec1adc.jpg,FAMILY_SAFE,normal,nsfw,0.9998593330383301,0.00014069890312384814
|
| 49 |
+
222,75ee25dc-fd71396788725bb988c9cd3689fcde68.jpg,75ee25dc-fd71396788725bb988c9cd3689fcde68.jpg,FAMILY_SAFE,normal,nsfw,0.9998794794082642,0.00012045811308780685
|
| 50 |
+
223,3dade0ea-fd3e2ce0703f9c027862f5a79c788b56.jpg,3dade0ea-fd3e2ce0703f9c027862f5a79c788b56.jpg,UNCERTAIN,normal,nsfw,0.9997287392616272,0.0002712743589654565
|
| 51 |
+
224,13a4e537-fd4bbf6927a13c5289dfa509b7a4078b.jpg,13a4e537-fd4bbf6927a13c5289dfa509b7a4078b.jpg,FAMILY_SAFE,normal,nsfw,0.9997079968452454,0.0002919857215601951
|
| 52 |
+
225,afddcafe-fd4da06b37fbae5380cf0d7fa0678103.jpg,afddcafe-fd4da06b37fbae5380cf0d7fa0678103.jpg,SUGGESTIVE,normal,nsfw,0.9938650727272034,0.006134872790426016
|
| 53 |
+
226,84acb822-fd4eb64e7f0ca587d908435fb95b2909.jpg,84acb822-fd4eb64e7f0ca587d908435fb95b2909.jpg,FAMILY_SAFE,normal,nsfw,0.9997391104698181,0.00026090958272106946
|
| 54 |
+
227,022b4f3e-fd39709199d9f45147c183dee3c5d697.jpg,022b4f3e-fd39709199d9f45147c183dee3c5d697.jpg,FAMILY_SAFE,normal,nsfw,0.9998074173927307,0.00019258396059740335
|
| 55 |
+
228,d4ccee96-fd24b551b4531ae14433a7950eaa85b3.jpg,d4ccee96-fd24b551b4531ae14433a7950eaa85b3.jpg,SUGGESTIVE,normal,nsfw,0.9998704195022583,0.00012956224964000285
|
| 56 |
+
229,3a78a22b-fd38a720ae06640dd25aaf9c11dd9672.jpg,3a78a22b-fd38a720ae06640dd25aaf9c11dd9672.jpg,FAMILY_SAFE,normal,nsfw,0.9983555674552917,0.0016443702625110745
|
| 57 |
+
230,6d307a2e-fd2268af5eafa750a7e5a3a521ff7fdd.jpg,6d307a2e-fd2268af5eafa750a7e5a3a521ff7fdd.jpg,UNCERTAIN,normal,nsfw,0.9991208910942078,0.000879096332937479
|
| 58 |
+
231,b224fc67-fd150330c8a62cd9ab45e51f4de6969f.jpg,b224fc67-fd150330c8a62cd9ab45e51f4de6969f.jpg,SUGGESTIVE,normal,nsfw,0.9981344938278198,0.0018654720624908805
|
| 59 |
+
232,6da2441b-fcf901727f0b68c35c55f5734189c1f0.jpg,6da2441b-fcf901727f0b68c35c55f5734189c1f0.jpg,UNCERTAIN,normal,nsfw,0.9996097683906555,0.00039020637632347643
|
| 60 |
+
233,ef1cbf46-fd08dc2a899b79496087b34b88b82f2d.jpg,ef1cbf46-fd08dc2a899b79496087b34b88b82f2d.jpg,SUGGESTIVE,normal,nsfw,0.9989173412322998,0.001082667731679976
|
| 61 |
+
234,d1a55b96-fca9c570e98556bb8c40835c55cba67d.jpg,d1a55b96-fca9c570e98556bb8c40835c55cba67d.jpg,SUGGESTIVE,normal,nsfw,0.9889764189720154,0.011023531667888165
|
| 62 |
+
235,fc1397fa-fcbbcf0191ab925aa67604ff0c7f141e.jpg,fc1397fa-fcbbcf0191ab925aa67604ff0c7f141e.jpg,SUGGESTIVE,normal,nsfw,0.9978255033493042,0.0021744840778410435
|
| 63 |
+
236,74454c95-fcbf1a2490d9531efc33322b2702912f.jpg,74454c95-fcbf1a2490d9531efc33322b2702912f.jpg,SUGGESTIVE,normal,nsfw,0.9995723366737366,0.0004276306426618248
|
| 64 |
+
237,b7206afa-fcc50f8b1362042b4acad74a4b4ae4ed.jpg,b7206afa-fcc50f8b1362042b4acad74a4b4ae4ed.jpg,FAMILY_SAFE,normal,nsfw,0.9998793601989746,0.00012062559835612774
|
| 65 |
+
238,64be13ce-fc813fdb8cb41651b9b4d5141fcd386a.jpg,64be13ce-fc813fdb8cb41651b9b4d5141fcd386a.jpg,SUGGESTIVE,normal,nsfw,0.9902662634849548,0.009733765386044979
|
| 66 |
+
239,d5c64c7c-fca4fe8aa6a350ab9680692ebbe1e13c.jpg,d5c64c7c-fca4fe8aa6a350ab9680692ebbe1e13c.jpg,SUGGESTIVE,normal,nsfw,0.9657689332962036,0.034231096506118774
|
| 67 |
+
240,8af150d5-fca025dcf76a43feae0bf2e8e9a6c1e2.jpg,8af150d5-fca025dcf76a43feae0bf2e8e9a6c1e2.jpg,SUGGESTIVE,normal,nsfw,0.9997478127479553,0.00025219659437425435
|
| 68 |
+
241,0df4b27b-fc6fefe3f417fdbfd91da8cffe59f7db.jpg,0df4b27b-fc6fefe3f417fdbfd91da8cffe59f7db.jpg,SUGGESTIVE,normal,nsfw,0.9997876286506653,0.00021238009503576905
|
| 69 |
+
242,a90c3b4e-fc39f11aab8aae4bb03057701a7b8312.jpg,a90c3b4e-fc39f11aab8aae4bb03057701a7b8312.jpg,SUGGESTIVE,normal,nsfw,0.9993686079978943,0.0006314468337222934
|
| 70 |
+
243,3c42d798-fc74b1fc4095a324b1f1ca1ac322278d.jpg,3c42d798-fc74b1fc4095a324b1f1ca1ac322278d.jpg,FAMILY_SAFE,normal,nsfw,0.9997140765190125,0.0002858526713680476
|
| 71 |
+
244,0bfb63b2-fc644a2683a976d8391e70f88408468b.jpg,0bfb63b2-fc644a2683a976d8391e70f88408468b.jpg,FAMILY_SAFE,normal,nsfw,0.9951044321060181,0.0048955390229821205
|
| 72 |
+
245,b0091e81-fbf4b07fffa61fa2650649ec19debf39.jpg,b0091e81-fbf4b07fffa61fa2650649ec19debf39.jpg,FAMILY_SAFE,normal,nsfw,0.9922400712966919,0.0077599151991307735
|
| 73 |
+
246,6faa5147-fbf13c899fbdd8e750dc46cc284249c5.jpg,6faa5147-fbf13c899fbdd8e750dc46cc284249c5.jpg,SUGGESTIVE,normal,nsfw,0.9998651742935181,0.00013476356980390847
|
| 74 |
+
247,bcfeea6a-fc1baf625d3e36ca4c5a29521f72525e.jpg,bcfeea6a-fc1baf625d3e36ca4c5a29521f72525e.jpg,FAMILY_SAFE,normal,nsfw,0.9995433688163757,0.0004566544957924634
|
| 75 |
+
248,0d5b1538-fc21d81fb821d214b4f4f1d7f553475d.jpg,0d5b1538-fc21d81fb821d214b4f4f1d7f553475d.jpg,FAMILY_SAFE,normal,nsfw,0.9997746348381042,0.0002253740094602108
|
| 76 |
+
249,cfb6f5d7-fc07723d545d098aafab4aeb7d2e65a3.jpg,cfb6f5d7-fc07723d545d098aafab4aeb7d2e65a3.jpg,UNCERTAIN,normal,nsfw,0.999457061290741,0.000542939524166286
|
| 77 |
+
250,43a803bd-fbcddca8eb614e2e2076c1128d30fa58.jpg,43a803bd-fbcddca8eb614e2e2076c1128d30fa58.jpg,SUGGESTIVE,normal,nsfw,0.9997774958610535,0.00022255742806009948
|
| 78 |
+
251,930fa681-fbd64159d7d027262f736408659d40cb.jpg,930fa681-fbd64159d7d027262f736408659d40cb.jpg,FAMILY_SAFE,normal,nsfw,0.9990699887275696,0.0009300094679929316
|
| 79 |
+
252,c884f2e6-fbb763c6f6f858fdfc270f3f3bda1eac.jpg,c884f2e6-fbb763c6f6f858fdfc270f3f3bda1eac.jpg,SUGGESTIVE,normal,nsfw,0.9953006505966187,0.004699346609413624
|
| 80 |
+
253,b3f73152-fbc604a00ac5d9d6a73cec8789a75d0c.jpg,b3f73152-fbc604a00ac5d9d6a73cec8789a75d0c.jpg,FAMILY_SAFE,normal,nsfw,0.993653416633606,0.0063466038554906845
|
| 81 |
+
254,f3e719e9-fbc9929373c24b1afd9523aa5253a594.jpg,f3e719e9-fbc9929373c24b1afd9523aa5253a594.jpg,SUGGESTIVE,normal,nsfw,0.9996848106384277,0.00031520574702881277
|
| 82 |
+
255,ac2b938f-fbca15037c332d6e9e658e2129217794.jpg,ac2b938f-fbca15037c332d6e9e658e2129217794.jpg,SUGGESTIVE,normal,nsfw,0.9951456189155579,0.00485434802249074
|
| 83 |
+
256,e0092f87-fb6ad7084b95e0bb2eb9575082907662.jpg,e0092f87-fb6ad7084b95e0bb2eb9575082907662.jpg,SUGGESTIVE,normal,nsfw,0.9990241527557373,0.000975856208242476
|
| 84 |
+
257,efd3b12b-fb7ba81d49347796a797d1322a64cb71.jpg,efd3b12b-fb7ba81d49347796a797d1322a64cb71.jpg,SUGGESTIVE,normal,nsfw,0.9998902082443237,0.0001097766580642201
|
| 85 |
+
258,74426174-fb701d0e6a714179959ac8e1e4e2cb88.jpg,74426174-fb701d0e6a714179959ac8e1e4e2cb88.jpg,FAMILY_SAFE,normal,nsfw,0.9997884631156921,0.00021158819436095655
|
| 86 |
+
259,68adaf6f-fb61755f0c2afaafdd9aa36f7632cbe5.jpg,68adaf6f-fb61755f0c2afaafdd9aa36f7632cbe5.jpg,SUGGESTIVE,normal,nsfw,0.9869140982627869,0.01308595109730959
|
| 87 |
+
260,c61c6042-fb607386dd384e6b0d53ef878bbffc55.jpg,c61c6042-fb607386dd384e6b0d53ef878bbffc55.jpg,FAMILY_SAFE,normal,nsfw,0.9994868040084839,0.0005132092628628016
|
| 88 |
+
261,7ec3bcbe-fb2e1bdb34ace56b99befc2547a8b83d.jpg,7ec3bcbe-fb2e1bdb34ace56b99befc2547a8b83d.jpg,FAMILY_SAFE,normal,nsfw,0.9998151659965515,0.00018488273781258613
|
| 89 |
+
262,bec475e6-fb3c593276f0f040a7450ca213d97882.jpg,bec475e6-fb3c593276f0f040a7450ca213d97882.jpg,FAMILY_SAFE,normal,nsfw,0.9996404647827148,0.00035952351754531264
|
| 90 |
+
263,966460f7-fb50d0f85eb7e491722e734b961926f0.jpg,966460f7-fb50d0f85eb7e491722e734b961926f0.jpg,FAMILY_SAFE,normal,nsfw,0.9993305206298828,0.0006695562624372542
|
| 91 |
+
264,243861f5-fb468ddeda48f68ec3539bebe07b92b4.jpg,243861f5-fb468ddeda48f68ec3539bebe07b92b4.jpg,FAMILY_SAFE,normal,nsfw,0.9998698234558105,0.00013020416372455657
|
| 92 |
+
265,54045990-fb1c02d4c50a59be3fe3cb249de403e0.jpg,54045990-fb1c02d4c50a59be3fe3cb249de403e0.jpg,SUGGESTIVE,normal,nsfw,0.986099362373352,0.013900673016905785
|
| 93 |
+
266,7439530f-faf1f5d9d6e51a84ce632df317dd5c5c.jpg,7439530f-faf1f5d9d6e51a84ce632df317dd5c5c.jpg,UNCERTAIN,normal,nsfw,0.9969670176506042,0.0030329835135489702
|
| 94 |
+
267,e0eec550-faf27f9511974b5ef529ba718677c5f4.jpg,e0eec550-faf27f9511974b5ef529ba718677c5f4.jpg,UNCERTAIN,normal,nsfw,0.9993395209312439,0.00066045590210706
|
| 95 |
+
268,1101ce4b-fab7821aae25aff865b20b0d33d86900.jpg,1101ce4b-fab7821aae25aff865b20b0d33d86900.jpg,FAMILY_SAFE,normal,nsfw,0.9998095631599426,0.00019051322306040674
|
| 96 |
+
269,26464718-fac69b44cccb94236c9f905bed46158f.jpg,26464718-fac69b44cccb94236c9f905bed46158f.jpg,FAMILY_SAFE,normal,nsfw,0.9996384382247925,0.00036152900429442525
|
| 97 |
+
270,d588345d-fad53b443bc3e52bada85783afdac562.jpg,d588345d-fad53b443bc3e52bada85783afdac562.jpg,FAMILY_SAFE,normal,nsfw,0.9911034107208252,0.008896546438336372
|
| 98 |
+
271,7f1fa2e7-fad69c88bcef4434a55b3bf3854b3e56.jpg,7f1fa2e7-fad69c88bcef4434a55b3bf3854b3e56.jpg,UNCERTAIN,normal,nsfw,0.9998892545700073,0.00011075734801124781
|
| 99 |
+
272,717afd8f-fa6ef41aabda28f51249407ce46a827e.jpg,717afd8f-fa6ef41aabda28f51249407ce46a827e.jpg,FAMILY_SAFE,normal,nsfw,0.9992254972457886,0.0007745388429611921
|
| 100 |
+
273,191a25a2-fa7b42eb84363adcd60082a3a7f02f84.jpg,191a25a2-fa7b42eb84363adcd60082a3a7f02f84.jpg,UNCERTAIN,normal,nsfw,0.9753845930099487,0.024615352973341942
|
| 101 |
+
274,41febcdf-fa9e77f0788145d7ac42edcffb6e9dee.jpg,41febcdf-fa9e77f0788145d7ac42edcffb6e9dee.jpg,FAMILY_SAFE,normal,nsfw,0.9998276233673096,0.00017234891129191965
|
| 102 |
+
275,4bb4ff8b-fa9f2688e1b4e92538569ecb9efecf2e.jpg,4bb4ff8b-fa9f2688e1b4e92538569ecb9efecf2e.jpg,UNCERTAIN,normal,nsfw,0.9995473027229309,0.000452632230008021
|
| 103 |
+
276,12aefe0a-fa87c0f54b8cb07a14fc311c369e9a4c.jpg,12aefe0a-fa87c0f54b8cb07a14fc311c369e9a4c.jpg,UNCERTAIN,normal,nsfw,0.9997121691703796,0.00028786665643565357
|
| 104 |
+
277,0f927896-fa94a466d4178dcd4c762f7567c11147.jpg,0f927896-fa94a466d4178dcd4c762f7567c11147.jpg,SUGGESTIVE,normal,nsfw,0.9997789263725281,0.00022108960547484457
|
| 105 |
+
278,3b82e875-faa13416b0d8d2adc2b6815dd1e6c82d.jpg,3b82e875-faa13416b0d8d2adc2b6815dd1e6c82d.jpg,FAMILY_SAFE,normal,nsfw,0.9997296929359436,0.00027034926461055875
|
| 106 |
+
279,7a5551c7-fa5b56c4e382fd4dca384daf1768acb4.jpg,7a5551c7-fa5b56c4e382fd4dca384daf1768acb4.jpg,SUGGESTIVE,normal,nsfw,0.9997959733009338,0.00020401085203047842
|
| 107 |
+
280,abf1e90d-fa5c6d304163052761d4453c693c202d.jpg,abf1e90d-fa5c6d304163052761d4453c693c202d.jpg,FAMILY_SAFE,normal,nsfw,0.9998476505279541,0.00015236144827213138
|
| 108 |
+
281,150e925a-fa6a15e903e7949093f4ec11fcffdb01.jpg,150e925a-fa6a15e903e7949093f4ec11fcffdb01.jpg,UNCERTAIN,normal,nsfw,0.999750554561615,0.0002493993961252272
|
| 109 |
+
282,76aa5a7e-fa41e4a96249c0b8ed90389733c081d8.jpg,76aa5a7e-fa41e4a96249c0b8ed90389733c081d8.jpg,SUGGESTIVE,normal,nsfw,0.9998562335968018,0.00014372151053976268
|
| 110 |
+
283,891276e7-fa63fcd0e11eb612b2c8f1ade43de7c8.jpg,891276e7-fa63fcd0e11eb612b2c8f1ade43de7c8.jpg,SUGGESTIVE,normal,nsfw,0.9962157607078552,0.0037842097226530313
|
| 111 |
+
284,0fea6f76-fa412fb78ec94ab051ac0880e255a897.jpg,0fea6f76-fa412fb78ec94ab051ac0880e255a897.jpg,FAMILY_SAFE,normal,nsfw,0.9998717308044434,0.0001282975572394207
|
| 112 |
+
285,7cb410fd-fa1a50f4102b66555a1a05afa9ddbf3c.jpg,7cb410fd-fa1a50f4102b66555a1a05afa9ddbf3c.jpg,UNCERTAIN,normal,nsfw,0.9993300437927246,0.0006699986406601965
|
| 113 |
+
286,907cb3ad-fa1dab55d34f1c7140ea41a1b3ab5eae.jpg,907cb3ad-fa1dab55d34f1c7140ea41a1b3ab5eae.jpg,UNCERTAIN,normal,nsfw,0.9992107152938843,0.0007892599678598344
|
| 114 |
+
287,bf824357-fa2c514037f31c0ab98d66373d371e3a.jpg,bf824357-fa2c514037f31c0ab98d66373d371e3a.jpg,FAMILY_SAFE,normal,nsfw,0.9998695850372314,0.000130453088786453
|
| 115 |
+
288,f953d2e3-f9f74d590b0f4d8da8ba20a07bc2a596.jpg,f953d2e3-f9f74d590b0f4d8da8ba20a07bc2a596.jpg,FAMILY_SAFE,normal,nsfw,0.9996881484985352,0.0003119299071840942
|
| 116 |
+
289,db2c891b-f9fc35243c2c7592c2d5858be342a34d.jpg,db2c891b-f9fc35243c2c7592c2d5858be342a34d.jpg,FAMILY_SAFE,normal,nsfw,0.999743640422821,0.00025635765632614493
|
| 117 |
+
290,53bd404d-fa068c5e8fe813fbb1d90b5a0744e172.jpg,53bd404d-fa068c5e8fe813fbb1d90b5a0744e172.jpg,UNCERTAIN,normal,nsfw,0.999733030796051,0.00026693433756008744
|
| 118 |
+
291,a23fc1cb-fa075d603e631d04c9871dbb00ed0a14.jpg,a23fc1cb-fa075d603e631d04c9871dbb00ed0a14.jpg,SUGGESTIVE,normal,nsfw,0.9997664093971252,0.0002335895405849442
|
| 119 |
+
292,ee0e3f1d-fa1607fba97dd47d889e0c8eb0a82624.jpg,ee0e3f1d-fa1607fba97dd47d889e0c8eb0a82624.jpg,SUGGESTIVE,normal,nsfw,0.9997625946998596,0.00023744819918647408
|
| 120 |
+
293,3aef96bb-f9d6c4a53c12013b5bbb6e830275486e.jpg,3aef96bb-f9d6c4a53c12013b5bbb6e830275486e.jpg,SUGGESTIVE,normal,nsfw,0.9998776912689209,0.00012230630090925843
|
| 121 |
+
294,9f665793-f9ea859c158d6cece283b619afdf2f49.jpg,9f665793-f9ea859c158d6cece283b619afdf2f49.jpg,SUGGESTIVE,normal,nsfw,0.9998897314071655,0.00011029541201423854
|
| 122 |
+
295,db0aaa30-f9a1f16e76e3adad3ce2ed9fe0c7a03f.jpg,db0aaa30-f9a1f16e76e3adad3ce2ed9fe0c7a03f.jpg,UNCERTAIN,normal,nsfw,0.9998188614845276,0.0001811861147871241
|
| 123 |
+
296,03abd3cc-f9aaa2af6fea2261610e48ed5e11ede4.jpg,03abd3cc-f9aaa2af6fea2261610e48ed5e11ede4.jpg,UNCERTAIN,normal,nsfw,0.9996980428695679,0.0003019814030267298
|
| 124 |
+
297,d741a3e7-f9b3403712c87698322446ef48a0027c.jpg,d741a3e7-f9b3403712c87698322446ef48a0027c.jpg,SUGGESTIVE,normal,nsfw,0.9936589598655701,0.006341090425848961
|
| 125 |
+
298,b502117c-f9bd44609a914f7aabd3a901d457b1e7.jpg,b502117c-f9bd44609a914f7aabd3a901d457b1e7.jpg,SUGGESTIVE,nsfw,normal,0.9648807644844055,0.035119153559207916
|
| 126 |
+
299,96ba7ff4-f984b6e28aa8e0e13f71bd41a8c65194.jpg,96ba7ff4-f984b6e28aa8e0e13f71bd41a8c65194.jpg,SUGGESTIVE,normal,nsfw,0.9775092601776123,0.022490795701742172
|
| 127 |
+
300,85f90f88-f96b6fc62dadba4eb00b5cfaa1168b87.jpg,85f90f88-f96b6fc62dadba4eb00b5cfaa1168b87.jpg,FAMILY_SAFE,normal,nsfw,0.9998483657836914,0.0001515850017312914
|
| 128 |
+
301,32e49293-f96bffb22c42bd3beb968d5ff5583c6b.jpg,32e49293-f96bffb22c42bd3beb968d5ff5583c6b.jpg,SUGGESTIVE,normal,nsfw,0.9995248317718506,0.00047522177919745445
|
| 129 |
+
302,263d89d9-f96c4c07dcded0f0fd1aa150a693a181.jpg,263d89d9-f96c4c07dcded0f0fd1aa150a693a181.jpg,FAMILY_SAFE,normal,nsfw,0.9998806715011597,0.00011933724454138428
|
| 130 |
+
303,78e8d1c7-f96c7473c85142a222056be7c7759184.jpg,78e8d1c7-f96c7473c85142a222056be7c7759184.jpg,SUGGESTIVE,normal,nsfw,0.9996101260185242,0.0003899533476214856
|
| 131 |
+
304,0fc4362d-f9610ac04fe21d9bd96689b8c6ae1669.jpg,0fc4362d-f9610ac04fe21d9bd96689b8c6ae1669.jpg,FAMILY_SAFE,normal,nsfw,0.9996802806854248,0.0003197768528480083
|
| 132 |
+
305,24f3bf36-f9633749641995381ff42d72352bafe2.jpg,24f3bf36-f9633749641995381ff42d72352bafe2.jpg,UNCERTAIN,normal,nsfw,0.9978522062301636,0.0021477804984897375
|
| 133 |
+
306,3216e20d-f93c3f8af10c70801ce921842c77afc4.jpg,3216e20d-f93c3f8af10c70801ce921842c77afc4.jpg,UNCERTAIN,normal,nsfw,0.9602324366569519,0.039767488837242126
|
| 134 |
+
307,93bfe360-f95143e4ae1515b8bf5c2d813aa36bbc.jpg,93bfe360-f95143e4ae1515b8bf5c2d813aa36bbc.jpg,SUGGESTIVE,normal,nsfw,0.999043881893158,0.0009561094339005649
|
| 135 |
+
308,0a08bf3b-f954833a10de7c149ac73c5b4af4c189.jpg,0a08bf3b-f954833a10de7c149ac73c5b4af4c189.jpg,FAMILY_SAFE,normal,nsfw,0.9998812675476074,0.00011877575161634013
|
| 136 |
+
309,a54eda5e-f8fdf05663173fa7dc689333e3f21f23.jpg,a54eda5e-f8fdf05663173fa7dc689333e3f21f23.jpg,SUGGESTIVE,normal,nsfw,0.9991862177848816,0.0008137212134897709
|
| 137 |
+
310,29f522c1-f91a65be37a0e49d78ac4f6bc0cfcb61.jpg,29f522c1-f91a65be37a0e49d78ac4f6bc0cfcb61.jpg,FAMILY_SAFE,normal,nsfw,0.9990737438201904,0.0009262749226763844
|
| 138 |
+
311,43ccd6b7-f8b2c595800cb08b05b4f2503fdbbced.jpg,43ccd6b7-f8b2c595800cb08b05b4f2503fdbbced.jpg,SUGGESTIVE,normal,nsfw,0.9903642535209656,0.009635809808969498
|
| 139 |
+
312,c7f29f62-f8b38d085dc15913e26ed1580d0cb644.jpg,c7f29f62-f8b38d085dc15913e26ed1580d0cb644.jpg,UNCERTAIN,normal,nsfw,0.9997991919517517,0.0002008238952839747
|
| 140 |
+
313,ca35d72e-f8c8ee06b8b818d1f0f5229014ee8760.jpg,ca35d72e-f8c8ee06b8b818d1f0f5229014ee8760.jpg,UNCERTAIN,normal,nsfw,0.9824240803718567,0.01757584512233734
|
| 141 |
+
314,65120b69-f8ee23b284b41157bb5b9eb488cf5828.jpg,65120b69-f8ee23b284b41157bb5b9eb488cf5828.jpg,SUGGESTIVE,normal,nsfw,0.9984427094459534,0.0015573232667520642
|
| 142 |
+
315,4abc60a4-f8a72d3f92f7e3793a093556c5b6b446.jpg,4abc60a4-f8a72d3f92f7e3793a093556c5b6b446.jpg,SUGGESTIVE,normal,nsfw,0.9984434247016907,0.0015565553912892938
|
| 143 |
+
316,ee55d94c-f8a860d078da463b28618029d547eca0.jpg,ee55d94c-f8a860d078da463b28618029d547eca0.jpg,SUGGESTIVE,normal,nsfw,0.9984941482543945,0.001505902037024498
|
| 144 |
+
317,42ea7be6-f8a950c61b1b181a99bb6837f76ddcf5.jpg,42ea7be6-f8a950c61b1b181a99bb6837f76ddcf5.jpg,SUGGESTIVE,normal,nsfw,0.8773965835571289,0.12260346859693527
|
| 145 |
+
318,2b96cec7-f87b6da37656aef1c82f6841cdfd216a.jpg,2b96cec7-f87b6da37656aef1c82f6841cdfd216a.jpg,FAMILY_SAFE,normal,nsfw,0.9998650550842285,0.00013486770330928266
|
| 146 |
+
319,a4651f0f-f8714d6a5bafd4d86377bf04957f37e5.jpg,a4651f0f-f8714d6a5bafd4d86377bf04957f37e5.jpg,SUGGESTIVE,normal,nsfw,0.9695289731025696,0.030470989644527435
|
| 147 |
+
320,fee5f161-f8856cf1b3bd39861cb9f95337cd0992.jpg,fee5f161-f8856cf1b3bd39861cb9f95337cd0992.jpg,FAMILY_SAFE,normal,nsfw,0.9998781681060791,0.00012184139632154256
|
| 148 |
+
321,26999a9e-f8869ae287068ce36b4b05663da6713a.jpg,26999a9e-f8869ae287068ce36b4b05663da6713a.jpg,FAMILY_SAFE,normal,nsfw,0.9998818635940552,0.00011806297698058188
|
| 149 |
+
322,2d689dc9-f852dde27ecdc40533bb40683087f7e1.jpg,2d689dc9-f852dde27ecdc40533bb40683087f7e1.jpg,UNCERTAIN,normal,nsfw,0.9998548030853271,0.0001451258867746219
|
| 150 |
+
323,207cc31f-f86351d67e2629dc35f1e524915fcd11.jpg,207cc31f-f86351d67e2629dc35f1e524915fcd11.jpg,SUGGESTIVE,normal,nsfw,0.9993031024932861,0.000696860603056848
|
| 151 |
+
324,f3898f2e-f8447631bc00c8f2467b1a20ee6bfa78.jpg,f3898f2e-f8447631bc00c8f2467b1a20ee6bfa78.jpg,UNCERTAIN,normal,nsfw,0.9997257590293884,0.000274246180197224
|
| 152 |
+
325,8cb018af-f8542037683b99dbc67c7f7d6c5a46b3.jpg,8cb018af-f8542037683b99dbc67c7f7d6c5a46b3.jpg,UNCERTAIN,normal,nsfw,0.9981718063354492,0.00182823627255857
|
| 153 |
+
326,5d6063fc-f822f1d61d47f66997ce6f86c974a4a4.jpg,5d6063fc-f822f1d61d47f66997ce6f86c974a4a4.jpg,FAMILY_SAFE,normal,nsfw,0.9998130202293396,0.00018702170928008854
|
| 154 |
+
327,57bec3b8-f8222b4da2ca05b7b639120cac5f92f2.jpg,57bec3b8-f8222b4da2ca05b7b639120cac5f92f2.jpg,SUGGESTIVE,normal,nsfw,0.9990129470825195,0.000986975384876132
|
| 155 |
+
328,918752f9-f7e4163d39bf966f1d403bfcf469cc5f.jpg,918752f9-f7e4163d39bf966f1d403bfcf469cc5f.jpg,UNCERTAIN,normal,nsfw,0.9995145797729492,0.0004854544240515679
|
| 156 |
+
329,bdce8a23-f7f267f10da481cbc97981f022b36a07.jpg,bdce8a23-f7f267f10da481cbc97981f022b36a07.jpg,SUGGESTIVE,normal,nsfw,0.9884392619132996,0.011560764163732529
|
| 157 |
+
330,d9e26b6c-f7de775f4820d021c70c42e8785c047b.jpg,d9e26b6c-f7de775f4820d021c70c42e8785c047b.jpg,SUGGESTIVE,normal,nsfw,0.9781965613365173,0.02180345170199871
|
| 158 |
+
331,654d822f-f7e1c87ca29b75a4e59263db1e0f59a1.jpg,654d822f-f7e1c87ca29b75a4e59263db1e0f59a1.jpg,UNCERTAIN,normal,nsfw,0.9995540976524353,0.00044591561891138554
|
| 159 |
+
332,13f55350-f7c55782f457e6c3c4a17c4f4254a946.jpg,13f55350-f7c55782f457e6c3c4a17c4f4254a946.jpg,FAMILY_SAFE,normal,nsfw,0.9995529055595398,0.0004470178682822734
|
| 160 |
+
333,bf4fd201-f7aa8582cc615c5efc747a723ed54f9e.jpg,bf4fd201-f7aa8582cc615c5efc747a723ed54f9e.jpg,UNCERTAIN,normal,nsfw,0.9998310804367065,0.00016887497622519732
|
| 161 |
+
334,6520255c-f79bc54aa05611d22b65098a11e71a34.jpg,6520255c-f79bc54aa05611d22b65098a11e71a34.jpg,UNCERTAIN,normal,nsfw,0.9873402714729309,0.012659757398068905
|
| 162 |
+
335,e7695c72-f7761769f7463d55a2df9300c743a324.jpg,e7695c72-f7761769f7463d55a2df9300c743a324.jpg,UNCERTAIN,normal,nsfw,0.996834933757782,0.0031650972086936235
|
| 163 |
+
336,681dcc99-f77695115dd9a221c2239aece214b49e.jpg,681dcc99-f77695115dd9a221c2239aece214b49e.jpg,UNCERTAIN,normal,nsfw,0.9998076558113098,0.00019238794629927725
|
| 164 |
+
337,bc15263c-f745fcf48c946c9d4393fd48f4cffc0e.jpg,bc15263c-f745fcf48c946c9d4393fd48f4cffc0e.jpg,SUGGESTIVE,normal,nsfw,0.9814505577087402,0.018549490720033646
|
| 165 |
+
338,88c7b383-f7303e5b824a66239e6afcd87a8ef62f.jpg,88c7b383-f7303e5b824a66239e6afcd87a8ef62f.jpg,UNCERTAIN,normal,nsfw,0.9998843669891357,0.00011559967970242724
|
| 166 |
+
339,9342d436-f73693da56901519a595fead5f85d069.jpg,9342d436-f73693da56901519a595fead5f85d069.jpg,SUGGESTIVE,normal,nsfw,0.9998339414596558,0.00016600285016465932
|
| 167 |
+
340,1bfa81bf-f71e69c1823525251dc2201172364595.jpg,1bfa81bf-f71e69c1823525251dc2201172364595.jpg,SUGGESTIVE,normal,nsfw,0.9996392726898193,0.00036067768814973533
|
| 168 |
+
341,37fbd106-f72a254e0142a25852937f68f91eeff0.jpg,37fbd106-f72a254e0142a25852937f68f91eeff0.jpg,FAMILY_SAFE,normal,nsfw,0.9998490810394287,0.00015092763351276517
|
| 169 |
+
342,75ec4326-f6f57e02e3025fda7e6587ada129b5da.jpg,75ec4326-f6f57e02e3025fda7e6587ada129b5da.jpg,UNCERTAIN,normal,nsfw,0.9996010661125183,0.00039896275848150253
|
| 170 |
+
343,112d370c-f6e10f65554a282ad88561eb6606b673.jpg,112d370c-f6e10f65554a282ad88561eb6606b673.jpg,UNCERTAIN,normal,nsfw,0.9995631575584412,0.0004368835943751037
|
| 171 |
+
344,258f99f7-f6cc5af7cdd7d677b39960916ddce332.jpg,258f99f7-f6cc5af7cdd7d677b39960916ddce332.jpg,FAMILY_SAFE,normal,nsfw,0.9987820982933044,0.0012178717879578471
|
| 172 |
+
345,e654ed6f-f6a9eed8dbdaaebe8483cb023b1cc155.jpg,e654ed6f-f6a9eed8dbdaaebe8483cb023b1cc155.jpg,SUGGESTIVE,normal,nsfw,0.9922598004341125,0.007740158587694168
|
| 173 |
+
346,32c60d49-f6afce2e8ed7f791361d5f859faf6f93.jpg,32c60d49-f6afce2e8ed7f791361d5f859faf6f93.jpg,SUGGESTIVE,normal,nsfw,0.999648928642273,0.00035101932007819414
|
| 174 |
+
347,8e037415-f6b1bdcd5cc1123f61514494633c0261.jpg,8e037415-f6b1bdcd5cc1123f61514494633c0261.jpg,FAMILY_SAFE,normal,nsfw,0.9997624754905701,0.00023753425921313465
|
| 175 |
+
348,1a95de13-f6a20f3450549f295c9d440e3b50fe4b.jpg,1a95de13-f6a20f3450549f295c9d440e3b50fe4b.jpg,SUGGESTIVE,normal,nsfw,0.9996700286865234,0.0003299415693618357
|
| 176 |
+
349,d8e036ec-f69ba433d87943ba7fe96bdee75c0633.jpg,d8e036ec-f69ba433d87943ba7fe96bdee75c0633.jpg,SUGGESTIVE,normal,nsfw,0.9985595345497131,0.0014404255198314786
|
| 177 |
+
350,150cadee-f6913caa3c66a906611cd76004dc0e89.jpg,150cadee-f6913caa3c66a906611cd76004dc0e89.jpg,FAMILY_SAFE,normal,nsfw,0.999876856803894,0.00012310734018683434
|
| 178 |
+
351,d45cdae6-f69459f653bf0a475f7003c64ad87484.jpg,d45cdae6-f69459f653bf0a475f7003c64ad87484.jpg,SUGGESTIVE,normal,nsfw,0.9878225922584534,0.012177384458482265
|
| 179 |
+
352,3ba7cebd-f67d4c2318dfb10031f4d3a40e767467.jpg,3ba7cebd-f67d4c2318dfb10031f4d3a40e767467.jpg,UNCERTAIN,normal,nsfw,0.9996795654296875,0.00032041341182775795
|
| 180 |
+
353,b947afc5-f68da9a3284e87b939e43ed78c2ba697.jpg,b947afc5-f68da9a3284e87b939e43ed78c2ba697.jpg,SUGGESTIVE,normal,nsfw,0.9995492100715637,0.0004507983394432813
|
| 181 |
+
354,548c342e-f6555d7bd2ce56360984e39d06eb6d3e.jpg,548c342e-f6555d7bd2ce56360984e39d06eb6d3e.jpg,SUGGESTIVE,normal,nsfw,0.999617338180542,0.0003826588799711317
|
| 182 |
+
355,2d8b3b40-f6502184b0f514712ec44e93e4cf38ed.jpg,2d8b3b40-f6502184b0f514712ec44e93e4cf38ed.jpg,SUGGESTIVE,normal,nsfw,0.9998575448989868,0.00014247694343794137
|
| 183 |
+
356,8d9e6ed8-f60a078c2adb5e2ed7984643b1a3d6ad.jpg,8d9e6ed8-f60a078c2adb5e2ed7984643b1a3d6ad.jpg,SUGGESTIVE,normal,nsfw,0.9972025156021118,0.002797480672597885
|
| 184 |
+
357,915ec646-f60d0a9ef35ff32f41167f002f604218.jpg,915ec646-f60d0a9ef35ff32f41167f002f604218.jpg,UNCERTAIN,normal,nsfw,0.9996912479400635,0.00030873133800923824
|
| 185 |
+
358,ac9956e6-f61b32b46a5df8b7604a567f4101de1a.jpg,ac9956e6-f61b32b46a5df8b7604a567f4101de1a.jpg,SUGGESTIVE,normal,nsfw,0.9991870522499084,0.0008128986810334027
|
| 186 |
+
359,38e3e29f-f6096fb5a8815393de8d3ce6046dcfa0.jpg,38e3e29f-f6096fb5a8815393de8d3ce6046dcfa0.jpg,UNCERTAIN,normal,nsfw,0.998040497303009,0.0019595164339989424
|
| 187 |
+
360,4cd02552-f627490d7770e822b0646ecc26314049.jpg,4cd02552-f627490d7770e822b0646ecc26314049.jpg,SUGGESTIVE,normal,nsfw,0.9993622899055481,0.0006376710953190923
|
| 188 |
+
361,96423c5a-f5d25e48cb07c00f6b4749341afd4fe9.jpg,96423c5a-f5d25e48cb07c00f6b4749341afd4fe9.jpg,FAMILY_SAFE,normal,nsfw,0.9998424053192139,0.00015762825205456465
|
| 189 |
+
362,b2bdb576-f5f0b5059aa1f31f18454612c7b44cb4.jpg,b2bdb576-f5f0b5059aa1f31f18454612c7b44cb4.jpg,UNCERTAIN,normal,nsfw,0.9992197751998901,0.0007801808533258736
|
| 190 |
+
363,d9b4f6e3-f5f15fde94650b49c19b1108e7baacaa.jpg,d9b4f6e3-f5f15fde94650b49c19b1108e7baacaa.jpg,FAMILY_SAFE,normal,nsfw,0.9996950626373291,0.0003050143423024565
|
| 191 |
+
364,78e1ef6c-f5f68931f14533c57ecfef9acb38dc7d.jpg,78e1ef6c-f5f68931f14533c57ecfef9acb38dc7d.jpg,SUGGESTIVE,normal,nsfw,0.9994333386421204,0.0005666653160005808
|
| 192 |
+
365,95214b1d-f5fbc4a6c74108a929561383bb572cd4.jpg,95214b1d-f5fbc4a6c74108a929561383bb572cd4.jpg,SUGGESTIVE,normal,nsfw,0.9998775720596313,0.00012242977390997112
|
| 193 |
+
366,52f9323f-f5a0911271d9a6ed11455f9f6ff7eb66.jpg,52f9323f-f5a0911271d9a6ed11455f9f6ff7eb66.jpg,FAMILY_SAFE,normal,nsfw,0.9998146891593933,0.00018535259005147964
|
| 194 |
+
367,437ce914-f5c13ab4ed01cc7efd808da48b8a5457.jpg,437ce914-f5c13ab4ed01cc7efd808da48b8a5457.jpg,FAMILY_SAFE,normal,nsfw,0.9996523857116699,0.00034764609881676733
|
| 195 |
+
368,3472223a-f5996eb32ca496db64f8988cee9a8878.jpg,3472223a-f5996eb32ca496db64f8988cee9a8878.jpg,UNCERTAIN,normal,nsfw,0.9996458292007446,0.0003542196354828775
|
| 196 |
+
369,79fb6415-f57b16711597d1da4c6c22c57af8a35a.jpg,79fb6415-f57b16711597d1da4c6c22c57af8a35a.jpg,SUGGESTIVE,normal,nsfw,0.999861478805542,0.0001385176001349464
|
| 197 |
+
370,8b7383e6-f57fb11b1c8484d4642295155ba8db7b.jpg,8b7383e6-f57fb11b1c8484d4642295155ba8db7b.jpg,SUGGESTIVE,normal,nsfw,0.9977987408638,0.0022012870758771896
|
| 198 |
+
371,ae1beb31-f58d8b3fa1b33fbccd8c8d71e0fe1a2c.jpg,ae1beb31-f58d8b3fa1b33fbccd8c8d71e0fe1a2c.jpg,SUGGESTIVE,normal,nsfw,0.9998409748077393,0.00015904728206805885
|
| 199 |
+
372,6be40274-f55c44bbbe7e56c04a616cd84479e46f.jpg,6be40274-f55c44bbbe7e56c04a616cd84479e46f.jpg,FAMILY_SAFE,normal,nsfw,0.999651312828064,0.00034863263135775924
|
| 200 |
+
373,79a2f826-f55deb0d18263824d1cef3e9ab9f1785.jpg,79a2f826-f55deb0d18263824d1cef3e9ab9f1785.jpg,SUGGESTIVE,normal,nsfw,0.9977415800094604,0.0022583974059671164
|
| 201 |
+
374,eb3f6ce4-f572b605f472227d2aa10d6905b535e3.jpg,eb3f6ce4-f572b605f472227d2aa10d6905b535e3.jpg,FAMILY_SAFE,normal,nsfw,0.9988118410110474,0.001188235473819077
|
| 202 |
+
375,86690dd2-f573acc9c7d68bfa33ffaf904bdcbee1.jpg,86690dd2-f573acc9c7d68bfa33ffaf904bdcbee1.jpg,SUGGESTIVE,normal,nsfw,0.9998475313186646,0.00015247335250023752
|
| 203 |
+
376,cb81d853-f5641be3510ca443208381edefb8dab9.jpg,cb81d853-f5641be3510ca443208381edefb8dab9.jpg,FAMILY_SAFE,normal,nsfw,0.9997938275337219,0.00020623421005439013
|
| 204 |
+
377,f3e026cb-f55636ad8ac978de1925576a495326e8.jpg,f3e026cb-f55636ad8ac978de1925576a495326e8.jpg,UNCERTAIN,normal,nsfw,0.999305248260498,0.0006947180954739451
|
| 205 |
+
378,dd964efd-f543f9d63f3caf812049461fe8e82f66.jpg,dd964efd-f543f9d63f3caf812049461fe8e82f66.jpg,FAMILY_SAFE,normal,nsfw,0.9998542070388794,0.00014579847629647702
|
| 206 |
+
379,cddc368c-f555bcb967a62b3420b1563eabf14e03.jpg,cddc368c-f555bcb967a62b3420b1563eabf14e03.jpg,SUGGESTIVE,normal,nsfw,0.9997989535331726,0.00020105495059397072
|
| 207 |
+
380,8a1bce2e-f531a8694f3e826cc46790d3d2d210f3.jpg,8a1bce2e-f531a8694f3e826cc46790d3d2d210f3.jpg,FAMILY_SAFE,normal,nsfw,0.9988186955451965,0.001181305618956685
|
| 208 |
+
381,4580faae-f532a291cff7ba273fcfbd81e466147a.jpg,4580faae-f532a291cff7ba273fcfbd81e466147a.jpg,FAMILY_SAFE,normal,nsfw,0.999891996383667,0.00010798982111737132
|
| 209 |
+
382,cd5e94e9-f4eed19eaa6f1a5b7f3bf3fdab620193.jpg,cd5e94e9-f4eed19eaa6f1a5b7f3bf3fdab620193.jpg,SUGGESTIVE,normal,nsfw,0.8613846898078918,0.13861526548862457
|
| 210 |
+
383,e0abb514-f4f6cec6badab17d10b40557e6e9ceae.jpg,e0abb514-f4f6cec6badab17d10b40557e6e9ceae.jpg,SUGGESTIVE,normal,nsfw,0.9978744983673096,0.0021254634484648705
|
| 211 |
+
384,3265ae1c-f4f91efff09fee24636b9b50d58fcf25.jpg,3265ae1c-f4f91efff09fee24636b9b50d58fcf25.jpg,SUGGESTIVE,normal,nsfw,0.9965303540229797,0.0034697160590440035
|
| 212 |
+
385,e2e7bbee-f4f964fc3d06d2990c04caa8fc0e5295.jpg,e2e7bbee-f4f964fc3d06d2990c04caa8fc0e5295.jpg,SUGGESTIVE,normal,nsfw,0.9913933277130127,0.008606689982116222
|
| 213 |
+
386,8f9b1b13-f4fe1ba40065807edb72c03485dff3d2.jpg,8f9b1b13-f4fe1ba40065807edb72c03485dff3d2.jpg,SUGGESTIVE,normal,nsfw,0.9984216690063477,0.0015782896662130952
|
| 214 |
+
387,9ee74b02-f50238c6721caa983df9656eef22236b.jpg,9ee74b02-f50238c6721caa983df9656eef22236b.jpg,SUGGESTIVE,normal,nsfw,0.9997636675834656,0.0002363044914091006
|
| 215 |
+
388,97429c97-f50926a996167d5a55ea0e3260627572.jpg,97429c97-f50926a996167d5a55ea0e3260627572.jpg,SUGGESTIVE,normal,nsfw,0.9990457892417908,0.0009541796753183007
|
| 216 |
+
389,6775a784-f5072276faee8d0385236b2937d48a33.jpg,6775a784-f5072276faee8d0385236b2937d48a33.jpg,SUGGESTIVE,normal,nsfw,0.9996180534362793,0.00038195078377611935
|
| 217 |
+
390,735adacd-f4d811181ca6367340272ea2817eebb6.jpg,735adacd-f4d811181ca6367340272ea2817eebb6.jpg,FAMILY_SAFE,normal,nsfw,0.9998158812522888,0.00018414028454571962
|
| 218 |
+
391,f2450298-f4e7b715922c1d07a2f7501b722bb12e.jpg,f2450298-f4e7b715922c1d07a2f7501b722bb12e.jpg,SUGGESTIVE,normal,nsfw,0.9938139915466309,0.006185967940837145
|
| 219 |
+
392,a04ba9a7-f4aee07e50f09863edf149352e42f73e.jpg,a04ba9a7-f4aee07e50f09863edf149352e42f73e.jpg,SUGGESTIVE,normal,nsfw,0.9985635876655579,0.001436458551324904
|
| 220 |
+
393,cdff04e2-f4c226e68f48b630dfd5b8f032c281f3.jpg,cdff04e2-f4c226e68f48b630dfd5b8f032c281f3.jpg,SUGGESTIVE,normal,nsfw,0.9998898506164551,0.00011018524674000219
|
| 221 |
+
394,1c2faeb4-f4c868518f6194c3d708d889b79c4357.jpg,1c2faeb4-f4c868518f6194c3d708d889b79c4357.jpg,UNCERTAIN,normal,nsfw,0.999393105506897,0.000606877205427736
|
| 222 |
+
395,da36d596-f48abfffe24a134a2605d63c095d5601.jpg,da36d596-f48abfffe24a134a2605d63c095d5601.jpg,UNCERTAIN,normal,nsfw,0.9873709678649902,0.01262897253036499
|
| 223 |
+
396,9e7afccb-f49cbda7d6c418aa68c47ac16678be9d.jpg,9e7afccb-f49cbda7d6c418aa68c47ac16678be9d.jpg,SUGGESTIVE,normal,nsfw,0.9979022741317749,0.002097678603604436
|
| 224 |
+
397,62a97430-f49d857cb54b7ad2a3a8bcd6c85a76d2.jpg,62a97430-f49d857cb54b7ad2a3a8bcd6c85a76d2.jpg,FAMILY_SAFE,normal,nsfw,0.9997784495353699,0.0002215868153143674
|
| 225 |
+
398,f79720c4-f49f729c28e9aafef241b3e5d1365ebb.jpg,f79720c4-f49f729c28e9aafef241b3e5d1365ebb.jpg,FAMILY_SAFE,normal,nsfw,0.9996718168258667,0.0003281381505075842
|
| 226 |
+
399,1fa27620-f46fcea94e5309ef137996d590f947a8.jpg,1fa27620-f46fcea94e5309ef137996d590f947a8.jpg,SUGGESTIVE,normal,nsfw,0.9996253252029419,0.0003746873699128628
|
| 227 |
+
400,a8f6045f-f44bd04a46d585f08df78d744a9920e0.jpg,a8f6045f-f44bd04a46d585f08df78d744a9920e0.jpg,FAMILY_SAFE,normal,nsfw,0.9997288584709167,0.0002710835251491517
|
| 228 |
+
401,9d5f7026-f442e9b50f65ce8e992c2d6d99045422.jpg,9d5f7026-f442e9b50f65ce8e992c2d6d99045422.jpg,SUGGESTIVE,normal,nsfw,0.9995225667953491,0.00047749438090249896
|
| 229 |
+
402,d87227e3-f4591e17584e87f5ae145946468488a1.jpg,d87227e3-f4591e17584e87f5ae145946468488a1.jpg,FAMILY_SAFE,normal,nsfw,0.9992788434028625,0.0007211175980046391
|
| 230 |
+
403,5c828279-f45776fd9cff138a422bc299fda11907.jpg,5c828279-f45776fd9cff138a422bc299fda11907.jpg,UNCERTAIN,normal,nsfw,0.9996461868286133,0.00035378089523874223
|
| 231 |
+
404,5c339677-f450689a8cf22e1c4471ef894ea28a81.jpg,5c339677-f450689a8cf22e1c4471ef894ea28a81.jpg,SUGGESTIVE,normal,nsfw,0.9990713596343994,0.0009285944979637861
|
| 232 |
+
405,b47e520f-f453124a40f3bdbbe0c9dfe4996b6844.jpg,b47e520f-f453124a40f3bdbbe0c9dfe4996b6844.jpg,SUGGESTIVE,normal,nsfw,0.9882595539093018,0.011740484274923801
|
| 233 |
+
406,3a55ff4b-f40d7fc2218b3f42761e7abe785c7785.jpg,3a55ff4b-f40d7fc2218b3f42761e7abe785c7785.jpg,SUGGESTIVE,normal,nsfw,0.9947978258132935,0.005202192347496748
|
| 234 |
+
407,ab4e8b9b-f433c523573d6c17da4f5f3da31fec75.jpg,ab4e8b9b-f433c523573d6c17da4f5f3da31fec75.jpg,UNCERTAIN,normal,nsfw,0.9950957298278809,0.0049043516628444195
|
| 235 |
+
408,c5a2e52f-f412680ce7ff76d5c276884092c008f3.jpg,c5a2e52f-f412680ce7ff76d5c276884092c008f3.jpg,FAMILY_SAFE,normal,nsfw,0.9997836947441101,0.00021634760196320713
|
| 236 |
+
409,2707ecab-f432252b9d85a485c9e4b3097633f71e.jpg,2707ecab-f432252b9d85a485c9e4b3097633f71e.jpg,FAMILY_SAFE,normal,nsfw,0.9994390606880188,0.0005608751089312136
|
| 237 |
+
410,79a56ecc-f3e1b0aced852718d2b2cc7208728b62.jpg,79a56ecc-f3e1b0aced852718d2b2cc7208728b62.jpg,SUGGESTIVE,normal,nsfw,0.8720280528068542,0.12797199189662933
|
| 238 |
+
411,84efc00c-f3ebae6cdb55ebee567dc5937d26f433.jpg,84efc00c-f3ebae6cdb55ebee567dc5937d26f433.jpg,FAMILY_SAFE,normal,nsfw,0.9987412095069885,0.0012587562669068575
|
| 239 |
+
412,916b7794-f3f76e5bd2aae5290c40831d2dba06fb.jpg,916b7794-f3f76e5bd2aae5290c40831d2dba06fb.jpg,SUGGESTIVE,normal,nsfw,0.8943421840667725,0.10565780848264694
|
| 240 |
+
413,0c0ff4f4-f3b7d61057e3aabc5c1f2fa2e1d91f80.jpg,0c0ff4f4-f3b7d61057e3aabc5c1f2fa2e1d91f80.jpg,SUGGESTIVE,normal,nsfw,0.9998076558113098,0.00019230962789151818
|
| 241 |
+
414,de3532f8-f3c6565d9b0b5b4a9ea5791663a1cb98.jpg,de3532f8-f3c6565d9b0b5b4a9ea5791663a1cb98.jpg,FAMILY_SAFE,normal,nsfw,0.9997285008430481,0.0002714624279178679
|
| 242 |
+
415,53a286c2-f3a74abc0a833c5b5b69b06d3530b13c.jpg,53a286c2-f3a74abc0a833c5b5b69b06d3530b13c.jpg,FAMILY_SAFE,normal,nsfw,0.998989999294281,0.0010100338840857148
|
| 243 |
+
416,b80429f0-f3a782299db638313bc78a42fe799566.jpg,b80429f0-f3a782299db638313bc78a42fe799566.jpg,SUGGESTIVE,normal,nsfw,0.9973938465118408,0.0026061558164656162
|
| 244 |
+
417,c5926927-f392b17c19a743f54238920721a05483.jpg,c5926927-f392b17c19a743f54238920721a05483.jpg,SUGGESTIVE,normal,nsfw,0.9817613959312439,0.018238577991724014
|
| 245 |
+
418,aaba3830-f392495a6934f1189fab05eeb50e6fd9.jpg,aaba3830-f392495a6934f1189fab05eeb50e6fd9.jpg,SUGGESTIVE,normal,nsfw,0.9966259002685547,0.0033741453662514687
|
| 246 |
+
419,52172c96-f379ca12e1aa320afc400fb76fb2c470.jpg,52172c96-f379ca12e1aa320afc400fb76fb2c470.jpg,SUGGESTIVE,normal,nsfw,0.9824513792991638,0.017548613250255585
|
| 247 |
+
420,6e49273c-f36c6d209021488c8bf51e89c19f58fb.jpg,6e49273c-f36c6d209021488c8bf51e89c19f58fb.jpg,SUGGESTIVE,normal,nsfw,0.999698281288147,0.00030169246019795537
|
| 248 |
+
421,920afa72-f3537cd026f876e2535d657df257076c.jpg,920afa72-f3537cd026f876e2535d657df257076c.jpg,UNCERTAIN,normal,nsfw,0.9994059801101685,0.0005939656402915716
|
| 249 |
+
422,7e9fe457-f366645e8bc5d7b1122603ec99290bc2.jpg,7e9fe457-f366645e8bc5d7b1122603ec99290bc2.jpg,UNCERTAIN,normal,nsfw,0.9981566071510315,0.0018434127559885383
|
| 250 |
+
423,10f36423-f30e3a374309519194229b8153c51588.jpg,10f36423-f30e3a374309519194229b8153c51588.jpg,SUGGESTIVE,normal,nsfw,0.99979168176651,0.00020831581787206233
|
| 251 |
+
424,cd3dd942-f32a3c9a3b2b2f5fa7be6f8c73ae293b.jpg,cd3dd942-f32a3c9a3b2b2f5fa7be6f8c73ae293b.jpg,FAMILY_SAFE,normal,nsfw,0.9988677501678467,0.0011322912760078907
|
| 252 |
+
425,aac071e6-f32bb35b2b035066b5f7d88a1a27c0d7.jpg,aac071e6-f32bb35b2b035066b5f7d88a1a27c0d7.jpg,UNCERTAIN,normal,nsfw,0.9997696280479431,0.00023034941114019603
|
| 253 |
+
426,678d2056-f33cf9e01fb72fc6dce190f37c65c2dd.jpg,678d2056-f33cf9e01fb72fc6dce190f37c65c2dd.jpg,FAMILY_SAFE,normal,nsfw,0.9997981190681458,0.00020187979680486023
|
| 254 |
+
427,965c31ef-f2f78f897ad0a224175515bbde549e2e.jpg,965c31ef-f2f78f897ad0a224175515bbde549e2e.jpg,FAMILY_SAFE,normal,nsfw,0.9991511106491089,0.0008488516323268414
|
| 255 |
+
428,579612c2-f2fa9ecf3da8d00302338efa4f87123c.jpg,579612c2-f2fa9ecf3da8d00302338efa4f87123c.jpg,UNCERTAIN,normal,nsfw,0.9998456239700317,0.0001543779653729871
|
| 256 |
+
429,9f66f820-f2fae6e2500b65f269b5e6de80996f17.jpg,9f66f820-f2fae6e2500b65f269b5e6de80996f17.jpg,SUGGESTIVE,normal,nsfw,0.9984607696533203,0.0015392180066555738
|
| 257 |
+
430,75006524-f30c43c00748e7912ce105d616264ca8.jpg,75006524-f30c43c00748e7912ce105d616264ca8.jpg,SUGGESTIVE,normal,nsfw,0.9998741149902344,0.0001258885022252798
|
| 258 |
+
431,7c688d00-f3066b02932fbc939c22e9c3bb8e942a.jpg,7c688d00-f3066b02932fbc939c22e9c3bb8e942a.jpg,FAMILY_SAFE,normal,nsfw,0.9996674060821533,0.00033258332405239344
|
| 259 |
+
432,3174b410-f2f05fc8d36aa9b2d14d9a0eed30416a.jpg,3174b410-f2f05fc8d36aa9b2d14d9a0eed30416a.jpg,SUGGESTIVE,normal,nsfw,0.9997445940971375,0.00025539036141708493
|
| 260 |
+
433,c43cb7fb-f2f33b9d050b1eec02c29464f036d292.jpg,c43cb7fb-f2f33b9d050b1eec02c29464f036d292.jpg,UNCERTAIN,normal,nsfw,0.9807888865470886,0.01921112835407257
|
| 261 |
+
434,55e1d1ac-f2b9d5dc127dddd36b113f2719d89a97.jpg,55e1d1ac-f2b9d5dc127dddd36b113f2719d89a97.jpg,SUGGESTIVE,normal,nsfw,0.9972233772277832,0.002776677953079343
|
| 262 |
+
435,26f72a43-f2b9d6126ecc23b075d1c1acc8fe340d.jpg,26f72a43-f2b9d6126ecc23b075d1c1acc8fe340d.jpg,FAMILY_SAFE,normal,nsfw,0.999832034111023,0.00016795787087175995
|
| 263 |
+
436,a6eee7e4-f2d5d25ff62ef48331c529bf26e170d4.jpg,a6eee7e4-f2d5d25ff62ef48331c529bf26e170d4.jpg,FAMILY_SAFE,normal,nsfw,0.9990725517272949,0.0009273760369978845
|
| 264 |
+
437,6583b10b-f2aae7afc3a013755b2365cb2942dc64.jpg,6583b10b-f2aae7afc3a013755b2365cb2942dc64.jpg,SUGGESTIVE,normal,nsfw,0.9978328347206116,0.0021671587601304054
|
| 265 |
+
438,3dc4ad74-f27b0f685d9b622d7ff36bdd97f72831.jpg,3dc4ad74-f27b0f685d9b622d7ff36bdd97f72831.jpg,SUGGESTIVE,normal,nsfw,0.9686691761016846,0.031330808997154236
|
| 266 |
+
439,6a8274e7-f2801326462d460409fa733227426003.jpg,6a8274e7-f2801326462d460409fa733227426003.jpg,UNCERTAIN,normal,nsfw,0.9974777102470398,0.002522299764677882
|
| 267 |
+
440,7e1849f3-f26a9865a58639d9b17de158040c8d99.jpg,7e1849f3-f26a9865a58639d9b17de158040c8d99.jpg,SUGGESTIVE,normal,nsfw,0.9998754262924194,0.00012460736616048962
|
| 268 |
+
441,e4ae160c-f26b087c218148a8ca3f2e96e12d7a1b.jpg,e4ae160c-f26b087c218148a8ca3f2e96e12d7a1b.jpg,SUGGESTIVE,normal,nsfw,0.9998156428337097,0.00018439750419929624
|
| 269 |
+
442,4f4b4d5f-f26d88ffcd70edc8984c024f2de1ca39.jpg,4f4b4d5f-f26d88ffcd70edc8984c024f2de1ca39.jpg,SUGGESTIVE,normal,nsfw,0.964965283870697,0.035034723579883575
|
| 270 |
+
443,55668d0d-f2691c288c683bcf94651a0bbffe21ad.jpg,55668d0d-f2691c288c683bcf94651a0bbffe21ad.jpg,SUGGESTIVE,normal,nsfw,0.9992935657501221,0.0007064234232529998
|
| 271 |
+
444,302fc960-f24d9b56d05bdf13a83cfabd87f8e5af.jpg,302fc960-f24d9b56d05bdf13a83cfabd87f8e5af.jpg,FAMILY_SAFE,normal,nsfw,0.9996316432952881,0.0003683122922666371
|
| 272 |
+
445,da992908-f24efb4f9760b0e7fbb3fcf77dba0891.jpg,da992908-f24efb4f9760b0e7fbb3fcf77dba0891.jpg,SUGGESTIVE,normal,nsfw,0.9995579123497009,0.00044201468699611723
|
| 273 |
+
446,09535428-f244b1f6799b0610306318fa09e744c4.jpg,09535428-f244b1f6799b0610306318fa09e744c4.jpg,SUGGESTIVE,nsfw,normal,0.6244999170303345,0.3755000829696655
|
| 274 |
+
447,6b3255e8-f20ecb2425f29d21d4047bec13a2babb.jpg,6b3255e8-f20ecb2425f29d21d4047bec13a2babb.jpg,FAMILY_SAFE,normal,nsfw,0.9995390176773071,0.0004609605821315199
|
| 275 |
+
448,3d3f89e4-f20eef0275884df087aefc827000488a.jpg,3d3f89e4-f20eef0275884df087aefc827000488a.jpg,SUGGESTIVE,normal,nsfw,0.9922945499420166,0.007705426309257746
|
| 276 |
+
449,476d2b62-f21375899b6c734ba68a8f2a74990efb.jpg,476d2b62-f21375899b6c734ba68a8f2a74990efb.jpg,FAMILY_SAFE,normal,nsfw,0.9998154044151306,0.00018456812540534884
|
| 277 |
+
450,2821adf9-f20de5b6356da5f1e38626064c8ac85e.jpg,2821adf9-f20de5b6356da5f1e38626064c8ac85e.jpg,FAMILY_SAFE,normal,nsfw,0.98700350522995,0.01299649104475975
|
| 278 |
+
451,78dd5846-f1b48acd52be4f8693ed99170c2a044c.jpg,78dd5846-f1b48acd52be4f8693ed99170c2a044c.jpg,SUGGESTIVE,normal,nsfw,0.999638557434082,0.00036139943404123187
|
| 279 |
+
452,7d5de576-f1c966431895a337d35d9ec3a7470b17.jpg,7d5de576-f1c966431895a337d35d9ec3a7470b17.jpg,SUGGESTIVE,normal,nsfw,0.9998262524604797,0.0001737588900141418
|
| 280 |
+
453,8cf1683d-f1d11292af5391d00957494b8b58f315.jpg,8cf1683d-f1d11292af5391d00957494b8b58f315.jpg,SUGGESTIVE,normal,nsfw,0.9463752508163452,0.0536247193813324
|
| 281 |
+
454,59b576bf-f1a168d27daac1da3571fcbcce7c1ebd.jpg,59b576bf-f1a168d27daac1da3571fcbcce7c1ebd.jpg,SUGGESTIVE,normal,nsfw,0.9998243451118469,0.00017573418153915554
|
| 282 |
+
455,8f0ff5de-f18c7dac0d1162379e292b0e4b9e22ce.jpg,8f0ff5de-f18c7dac0d1162379e292b0e4b9e22ce.jpg,UNCERTAIN,normal,nsfw,0.9998642206192017,0.0001357875153189525
|
| 283 |
+
456,3d83aaea-f186d77202e18462443a8c7ffc449919.jpg,3d83aaea-f186d77202e18462443a8c7ffc449919.jpg,SUGGESTIVE,normal,nsfw,0.6798476576805115,0.3201523423194885
|
| 284 |
+
457,d4d29b7b-f162dbe9bf0b44a6f2ddb910d725d56b.jpg,d4d29b7b-f162dbe9bf0b44a6f2ddb910d725d56b.jpg,SUGGESTIVE,nsfw,normal,0.9853374361991882,0.014662537723779678
|
| 285 |
+
458,c6f24a4d-f1646b36bb33f474b8f66c112bf97cc3.jpg,c6f24a4d-f1646b36bb33f474b8f66c112bf97cc3.jpg,SUGGESTIVE,normal,nsfw,0.9956642985343933,0.004335693083703518
|
| 286 |
+
459,9d710615-f1712c2ed94b10ffedda4e1ea6e56fa9.jpg,9d710615-f1712c2ed94b10ffedda4e1ea6e56fa9.jpg,FAMILY_SAFE,normal,nsfw,0.9998646974563599,0.00013527559349313378
|
| 287 |
+
460,c325de0e-f16866c512ca721aa3ba3b2129e4b66f.jpg,c325de0e-f16866c512ca721aa3ba3b2129e4b66f.jpg,SUGGESTIVE,normal,nsfw,0.862500011920929,0.13749992847442627
|
| 288 |
+
461,c9983270-f1643668073aa69e7f2b505d1b237098.jpg,c9983270-f1643668073aa69e7f2b505d1b237098.jpg,SUGGESTIVE,normal,nsfw,0.9968101382255554,0.003189866663888097
|
| 289 |
+
462,ff926dbf-f12e5c2510e88db3c8fdf32aa7968f9d.jpg,ff926dbf-f12e5c2510e88db3c8fdf32aa7968f9d.jpg,SUGGESTIVE,normal,nsfw,0.9991756081581116,0.0008243792108260095
|
| 290 |
+
463,edbf7bc4-f13bac93da13444f529aa1c821731161.jpg,edbf7bc4-f13bac93da13444f529aa1c821731161.jpg,SUGGESTIVE,normal,nsfw,0.9960294961929321,0.00397053686901927
|
| 291 |
+
464,d3721c85-f126f5fa7fd6939084fa439a5c194f18.jpg,d3721c85-f126f5fa7fd6939084fa439a5c194f18.jpg,SUGGESTIVE,normal,nsfw,0.9940470457077026,0.005952890962362289
|
| 292 |
+
465,b5e5e620-f126f93e4853f89a6e25b661040dc314.jpg,b5e5e620-f126f93e4853f89a6e25b661040dc314.jpg,SUGGESTIVE,normal,nsfw,0.9998496770858765,0.00015029715723358095
|
| 293 |
+
466,10135976-f1243b33b2f6d754c9bc9da9e8de97e4.jpg,10135976-f1243b33b2f6d754c9bc9da9e8de97e4.jpg,SUGGESTIVE,normal,nsfw,0.9975334405899048,0.002466561971232295
|
| 294 |
+
467,b81fe122-f1404d9866f6128bd44a1eaee0a39cf7.jpg,b81fe122-f1404d9866f6128bd44a1eaee0a39cf7.jpg,SUGGESTIVE,normal,nsfw,0.9997952580451965,0.00020479942031670362
|
| 295 |
+
468,f3d934fc-f14861197568fd42d5a3a8f39a8970b9.jpg,f3d934fc-f14861197568fd42d5a3a8f39a8970b9.jpg,SUGGESTIVE,normal,nsfw,0.9988933205604553,0.0011067389277741313
|
| 296 |
+
469,34496229-f104ed4e8f3c30e2fa8ddfbd3332b413.jpg,34496229-f104ed4e8f3c30e2fa8ddfbd3332b413.jpg,SUGGESTIVE,normal,nsfw,0.9998835325241089,0.0001164382483693771
|
| 297 |
+
470,849c7056-f0b773be242aee171c66e49b6c3dfb63.jpg,849c7056-f0b773be242aee171c66e49b6c3dfb63.jpg,SUGGESTIVE,normal,nsfw,0.987106204032898,0.012893790379166603
|
| 298 |
+
471,c6d20edb-f0c80a1febd6aeb4ed6ccaf3fd82760a.jpg,c6d20edb-f0c80a1febd6aeb4ed6ccaf3fd82760a.jpg,SUGGESTIVE,normal,nsfw,0.9994415640830994,0.0005584025057032704
|
| 299 |
+
472,906d1fce-f0ca8c9fdee2f995b567b0626cdadcac.jpg,906d1fce-f0ca8c9fdee2f995b567b0626cdadcac.jpg,FAMILY_SAFE,normal,nsfw,0.9998373985290527,0.00016257402603514493
|
| 300 |
+
473,f638acd0-f0d3205ee8ebe32b2d53f1ad223e9818.jpg,f638acd0-f0d3205ee8ebe32b2d53f1ad223e9818.jpg,SUGGESTIVE,nsfw,normal,0.9045382142066956,0.09546181559562683
|
| 301 |
+
474,da3f5f03-f0dd8d4ac7e466a7a233905f8db38a1c.jpg,da3f5f03-f0dd8d4ac7e466a7a233905f8db38a1c.jpg,SUGGESTIVE,normal,nsfw,0.999875545501709,0.00012445455649867654
|
| 302 |
+
475,c2917e19-f06b1f090a5e2f8b788720ce4489183a.jpg,c2917e19-f06b1f090a5e2f8b788720ce4489183a.jpg,SUGGESTIVE,normal,nsfw,0.9982013702392578,0.00179858913179487
|
| 303 |
+
476,698e9ebb-f06d35d37cacac0d69db96016e0c182f.jpg,698e9ebb-f06d35d37cacac0d69db96016e0c182f.jpg,FAMILY_SAFE,normal,nsfw,0.9998571872711182,0.00014280530740506947
|
| 304 |
+
477,4696edaa-f06eb7893da319aec3f0de768a1a845d.jpg,4696edaa-f06eb7893da319aec3f0de768a1a845d.jpg,SUGGESTIVE,normal,nsfw,0.9997778534889221,0.0002221308823209256
|
| 305 |
+
478,ad86327f-f08abc73a82adca2bbb2304c62991458.jpg,ad86327f-f08abc73a82adca2bbb2304c62991458.jpg,UNCERTAIN,normal,nsfw,0.9998138546943665,0.00018621298659127206
|
| 306 |
+
479,7713ccd7-f08c1d5efaa9ae3e99274ef65dbc7cc4.jpg,7713ccd7-f08c1d5efaa9ae3e99274ef65dbc7cc4.jpg,SUGGESTIVE,normal,nsfw,0.999243974685669,0.0007560368394479156
|
| 307 |
+
480,88e6096c-f0809c968c34e21b25ef28da489b68fd.jpg,88e6096c-f0809c968c34e21b25ef28da489b68fd.jpg,SUGGESTIVE,normal,nsfw,0.987617552280426,0.012382478453218937
|
| 308 |
+
481,524bc0ae-f06772600ff35982e30ec813edb89dc2.jpg,524bc0ae-f06772600ff35982e30ec813edb89dc2.jpg,FAMILY_SAFE,normal,nsfw,0.9998425245285034,0.00015740175149403512
|
| 309 |
+
482,3d31944e-f049c93ef72e3bd5edbf919222d2d1ae.jpg,3d31944e-f049c93ef72e3bd5edbf919222d2d1ae.jpg,FAMILY_SAFE,normal,nsfw,0.9996181726455688,0.00038179222610779107
|
| 310 |
+
483,47efba26-f0445c4671cbf87f6be472f5102475c2.jpg,47efba26-f0445c4671cbf87f6be472f5102475c2.jpg,SUGGESTIVE,normal,nsfw,0.9708232283592224,0.029176760464906693
|
| 311 |
+
484,fa8fe379-f0357ced6ed7226ecfd6bc274c3e8a5b.jpg,fa8fe379-f0357ced6ed7226ecfd6bc274c3e8a5b.jpg,SUGGESTIVE,normal,nsfw,0.9998766183853149,0.0001233635121025145
|
| 312 |
+
485,475a96b3-eff990daac3ddb54436bad2cc950abb3.jpg,475a96b3-eff990daac3ddb54436bad2cc950abb3.jpg,SUGGESTIVE,normal,nsfw,0.9998899698257446,0.00011007435387000442
|
| 313 |
+
486,fa249f4f-efb7440d597d698c5442b03cc11096ab.jpg,fa249f4f-efb7440d597d698c5442b03cc11096ab.jpg,SUGGESTIVE,normal,nsfw,0.9998382329940796,0.00016170606249943376
|
| 314 |
+
487,b10f30c8-efc08bbcc30ce2804f50c73ff07cffec.jpg,b10f30c8-efc08bbcc30ce2804f50c73ff07cffec.jpg,SUGGESTIVE,normal,nsfw,0.9997361302375793,0.00026390326092951
|
| 315 |
+
488,faba1751-efc073e437c18987a2f1476da3de0b3a.jpg,faba1751-efc073e437c18987a2f1476da3de0b3a.jpg,SUGGESTIVE,normal,nsfw,0.9994059801101685,0.0005939817638136446
|
| 316 |
+
489,0098546d-efd85646ed2bdbc974b9c3c579691730.jpg,0098546d-efd85646ed2bdbc974b9c3c579691730.jpg,SUGGESTIVE,normal,nsfw,0.9998643398284912,0.00013560686784330755
|
| 317 |
+
490,b4635fff-efef5f2439ee81918faf609d5a0aa163.jpg,b4635fff-efef5f2439ee81918faf609d5a0aa163.jpg,SUGGESTIVE,normal,nsfw,0.9107722043991089,0.08922784775495529
|
| 318 |
+
491,4c7faf4b-efef22ec0ad48c3b2f51c82dcb9565e6.jpg,4c7faf4b-efef22ec0ad48c3b2f51c82dcb9565e6.jpg,SUGGESTIVE,nsfw,normal,0.9064558744430542,0.0935441255569458
|
| 319 |
+
492,e9be5783-efa81f12be12471dd91827cfb74404a9.jpg,e9be5783-efa81f12be12471dd91827cfb74404a9.jpg,SUGGESTIVE,normal,nsfw,0.9912118315696716,0.008788185194134712
|
| 320 |
+
493,0df8255e-efaa8dd97b36b54c67356ca6c1500791.jpg,0df8255e-efaa8dd97b36b54c67356ca6c1500791.jpg,SUGGESTIVE,normal,nsfw,0.9995287656784058,0.00047127206926234066
|
| 321 |
+
494,e96341ac-ef6a78b93788b6cab069d01b92516ec6.jpg,e96341ac-ef6a78b93788b6cab069d01b92516ec6.jpg,SUGGESTIVE,normal,nsfw,0.9994308352470398,0.0005691580008715391
|
| 322 |
+
495,2a7d0d01-ef6b436f284fd4c6a95adef2c0dc0555.jpg,2a7d0d01-ef6b436f284fd4c6a95adef2c0dc0555.jpg,SUGGESTIVE,nsfw,normal,0.831125020980835,0.16887502372264862
|
| 323 |
+
496,e764a81b-ef7d423ff22abad26fcdc945e31dca5b.jpg,e764a81b-ef7d423ff22abad26fcdc945e31dca5b.jpg,SUGGESTIVE,normal,nsfw,0.997032880783081,0.002967139007523656
|
| 324 |
+
497,6ffc5735-ef70be698e9f8dbd29dacb15ac4d0ec9.jpg,6ffc5735-ef70be698e9f8dbd29dacb15ac4d0ec9.jpg,SUGGESTIVE,normal,nsfw,0.9053156971931458,0.09468436986207962
|
| 325 |
+
498,98ce088a-ef76eea72ea523ba10369ff89f844b8d.jpg,98ce088a-ef76eea72ea523ba10369ff89f844b8d.jpg,SUGGESTIVE,normal,nsfw,0.9992297887802124,0.0007702443399466574
|
| 326 |
+
499,772bc39c-ef4a21bca7ceab6a75e2a5fd738408d9.jpg,772bc39c-ef4a21bca7ceab6a75e2a5fd738408d9.jpg,SUGGESTIVE,normal,nsfw,0.9997027516365051,0.0002972601796500385
|
| 327 |
+
500,7207626d-ef378dd1f4004be18abc11bef3c80de4.jpg,7207626d-ef378dd1f4004be18abc11bef3c80de4.jpg,SUGGESTIVE,normal,nsfw,0.999743640422821,0.00025639336672611535
|
| 328 |
+
501,281a7d11-ef4790408c0eb4ad41d481796a8d76fd.jpg,281a7d11-ef4790408c0eb4ad41d481796a8d76fd.jpg,SUGGESTIVE,normal,nsfw,0.9994195699691772,0.0005804733373224735
|
| 329 |
+
502,15072791-ef0a3b5c272d10607604167b4bc37034.jpg,15072791-ef0a3b5c272d10607604167b4bc37034.jpg,FAMILY_SAFE,normal,nsfw,0.9994798302650452,0.0005201894091442227
|
| 330 |
+
503,6dc70b1e-ef1026a33c894d18a1a1f32922017fbf.jpg,6dc70b1e-ef1026a33c894d18a1a1f32922017fbf.jpg,UNCERTAIN,normal,nsfw,0.9979990124702454,0.0020009740255773067
|
| 331 |
+
504,c8740c8b-eedc4a75b4521825dd368a81324741e4.jpg,c8740c8b-eedc4a75b4521825dd368a81324741e4.jpg,SUGGESTIVE,normal,nsfw,0.9358147382736206,0.06418519467115402
|
| 332 |
+
505,dcfb8a01-eebd67e28f811ad93ce45d7a22c9a280.jpg,dcfb8a01-eebd67e28f811ad93ce45d7a22c9a280.jpg,UNCERTAIN,normal,nsfw,0.9998223185539246,0.0001777190191205591
|
| 333 |
+
506,9283a4a4-eed2a73a4dc7506b1ce5042c0d86a41f.jpg,9283a4a4-eed2a73a4dc7506b1ce5042c0d86a41f.jpg,SUGGESTIVE,normal,nsfw,0.9995916485786438,0.00040832426748238504
|
| 334 |
+
507,d9b69ac8-eed7b464c9a9d59069f62bd631953120.jpg,d9b69ac8-eed7b464c9a9d59069f62bd631953120.jpg,SUGGESTIVE,normal,nsfw,0.9988251328468323,0.001174827921204269
|
| 335 |
+
508,81f42f14-ee9ba96fe055cbfa17dbe24799365177.jpg,81f42f14-ee9ba96fe055cbfa17dbe24799365177.jpg,UNCERTAIN,normal,nsfw,0.9998863935470581,0.00011355768947396427
|
| 336 |
+
509,5878b83e-ee9dc9d669cf306bf6bf04dfaf3b1c9d.jpg,5878b83e-ee9dc9d669cf306bf6bf04dfaf3b1c9d.jpg,SUGGESTIVE,normal,nsfw,0.898333728313446,0.10166630893945694
|
| 337 |
+
510,e31a796f-eea76211c790d725a7dd027a99213afb.jpg,e31a796f-eea76211c790d725a7dd027a99213afb.jpg,SUGGESTIVE,normal,nsfw,0.9998282194137573,0.00017174292588606477
|
| 338 |
+
511,a4c89124-eeaa866b8633bedc8034bce163670339.jpg,a4c89124-eeaa866b8633bedc8034bce163670339.jpg,SUGGESTIVE,normal,nsfw,0.8561798334121704,0.1438201516866684
|
| 339 |
+
512,35909ea6-eeab35797f69d18b0187e08c5549efb6.jpg,35909ea6-eeab35797f69d18b0187e08c5549efb6.jpg,SUGGESTIVE,normal,nsfw,0.9995488524436951,0.0004511241859290749
|
| 340 |
+
513,da887e4a-eeb5d0dbe82e36107e2af75b20ab17c7.jpg,da887e4a-eeb5d0dbe82e36107e2af75b20ab17c7.jpg,SUGGESTIVE,normal,nsfw,0.9998612403869629,0.00013870011025574058
|
| 341 |
+
514,75ab9401-eebbd19e449133670a58baff0fa109ec.jpg,75ab9401-eebbd19e449133670a58baff0fa109ec.jpg,SUGGESTIVE,normal,nsfw,0.9996418952941895,0.0003580819466151297
|
| 342 |
+
515,e75f4995-eebcec31909a43812f2334fb37807008.jpg,e75f4995-eebcec31909a43812f2334fb37807008.jpg,SUGGESTIVE,normal,nsfw,0.7762184143066406,0.2237815260887146
|
| 343 |
+
516,de0c936f-ee8a39d9411e2cd46e726afe1c5a4895.jpg,de0c936f-ee8a39d9411e2cd46e726afe1c5a4895.jpg,SUGGESTIVE,normal,nsfw,0.9985060691833496,0.0014939785469323397
|
| 344 |
+
517,e2e721c6-ee8c7ace06eac5eecd8b709b93976d0b.jpg,e2e721c6-ee8c7ace06eac5eecd8b709b93976d0b.jpg,FAMILY_SAFE,normal,nsfw,0.9998879432678223,0.00011204835755052045
|
| 345 |
+
518,6828a485-ee90a0e72628f9dc27de80e5ce701bc2.jpg,6828a485-ee90a0e72628f9dc27de80e5ce701bc2.jpg,SUGGESTIVE,normal,nsfw,0.99810791015625,0.0018920493312180042
|
| 346 |
+
519,ef0ac7d6-ee890fafca12595501b30093d54320af.jpg,ef0ac7d6-ee890fafca12595501b30093d54320af.jpg,FAMILY_SAFE,normal,nsfw,0.9981156587600708,0.0018843928119167686
|
| 347 |
+
520,eb7e0cef-ee93704434f4aa96859be27f8b04f4ca.jpg,eb7e0cef-ee93704434f4aa96859be27f8b04f4ca.jpg,UNCERTAIN,normal,nsfw,0.9998538494110107,0.00014615508553106338
|
| 348 |
+
521,6127f82d-ee4fad4fd52e6f1dc5121d1965a31e61.jpg,6127f82d-ee4fad4fd52e6f1dc5121d1965a31e61.jpg,FAMILY_SAFE,normal,nsfw,0.999703586101532,0.00029643464949913323
|
| 349 |
+
522,cc55d5b2-ee745023dec8ba83a3b401aaa5a34f2d.jpg,cc55d5b2-ee745023dec8ba83a3b401aaa5a34f2d.jpg,FAMILY_SAFE,normal,nsfw,0.9996598958969116,0.0003401471476536244
|
| 350 |
+
523,ae6d504b-ee44eff2d80d58e6f2c6122fcc468c63.jpg,ae6d504b-ee44eff2d80d58e6f2c6122fcc468c63.jpg,SUGGESTIVE,normal,nsfw,0.8872804045677185,0.11271965503692627
|
| 351 |
+
524,5fee8ad9-ee435d2ab53c469e63808c8d60c6351e.jpg,5fee8ad9-ee435d2ab53c469e63808c8d60c6351e.jpg,UNCERTAIN,normal,nsfw,0.9997671246528625,0.00023291923571377993
|
| 352 |
+
525,a0a2d935-ee166c5de961d809600d8a47a8284e7e.jpg,a0a2d935-ee166c5de961d809600d8a47a8284e7e.jpg,SUGGESTIVE,normal,nsfw,0.9969425797462463,0.0030573715921491385
|
| 353 |
+
526,8a5bf427-ee3086dce1a61b091b09bb8bf460d671.jpg,8a5bf427-ee3086dce1a61b091b09bb8bf460d671.jpg,FAMILY_SAFE,normal,nsfw,0.9993253946304321,0.0006745969876646996
|
| 354 |
+
527,305abb91-ede68be22f91fbddc1f4e072b05c0ae5.jpg,305abb91-ede68be22f91fbddc1f4e072b05c0ae5.jpg,FAMILY_SAFE,normal,nsfw,0.9994320273399353,0.0005679792957380414
|
| 355 |
+
528,429234c0-edf1ded0501e179112b516a99a58f6b3.jpg,429234c0-edf1ded0501e179112b516a99a58f6b3.jpg,SUGGESTIVE,normal,nsfw,0.9998096823692322,0.00019035361765418202
|
| 356 |
+
529,90e7a11a-edf5de76bd4db7ec201caf452ffd1519.jpg,90e7a11a-edf5de76bd4db7ec201caf452ffd1519.jpg,FAMILY_SAFE,normal,nsfw,0.9998328685760498,0.0001671185455052182
|
| 357 |
+
530,357576cd-edbca137d1801a86d305e4ad3f3a6305.jpg,357576cd-edbca137d1801a86d305e4ad3f3a6305.jpg,SUGGESTIVE,normal,nsfw,0.999861478805542,0.0001384449569741264
|
| 358 |
+
531,274e3d8d-edcdf84578e3103a185073e581089641.jpg,274e3d8d-edcdf84578e3103a185073e581089641.jpg,SUGGESTIVE,normal,nsfw,0.9994798302650452,0.0005201554740779102
|
| 359 |
+
532,09696d76-edd88c179c4b8d37223a74e58757921b.jpg,09696d76-edd88c179c4b8d37223a74e58757921b.jpg,SUGGESTIVE,normal,nsfw,0.9998741149902344,0.00012588826939463615
|
| 360 |
+
533,2befe926-eddca7fbfe13ebce00a268c70550b580.jpg,2befe926-eddca7fbfe13ebce00a268c70550b580.jpg,SUGGESTIVE,normal,nsfw,0.9993149042129517,0.0006850805366411805
|
| 361 |
+
534,dd0a59aa-edddf271573716e8e4e571451c634b85.jpg,dd0a59aa-edddf271573716e8e4e571451c634b85.jpg,UNCERTAIN,normal,nsfw,0.9937036633491516,0.006296264939010143
|
| 362 |
+
535,52784190-ed8db5c9ad94f3f769b504dba5d12f3c.jpg,52784190-ed8db5c9ad94f3f769b504dba5d12f3c.jpg,FAMILY_SAFE,normal,nsfw,0.9998564720153809,0.0001435485464753583
|
| 363 |
+
536,7c8e5c47-ed9f73ea5150c7871fa9ab71e2808929.jpg,7c8e5c47-ed9f73ea5150c7871fa9ab71e2808929.jpg,UNCERTAIN,normal,nsfw,0.9996107220649719,0.0003893586399499327
|
| 364 |
+
537,23660c64-ed78b3d3e8cf8fa817e55818ef219f2f.jpg,23660c64-ed78b3d3e8cf8fa817e55818ef219f2f.jpg,SUGGESTIVE,normal,nsfw,0.9991844296455383,0.000815597188193351
|
| 365 |
+
538,36ccdc32-ed9326789faddcf165c85c0c46e61892.jpg,36ccdc32-ed9326789faddcf165c85c0c46e61892.jpg,SUGGESTIVE,normal,nsfw,0.9997581839561462,0.00024176304577849805
|
| 366 |
+
539,eae0b0ad-eda271d3e424bcbddf17ba2795ca31ab.jpg,eae0b0ad-eda271d3e424bcbddf17ba2795ca31ab.jpg,SUGGESTIVE,normal,nsfw,0.9977908134460449,0.002209202153608203
|
| 367 |
+
540,7817ce56-edb7db1fcb69296415e2f32cd5cac1ba.jpg,7817ce56-edb7db1fcb69296415e2f32cd5cac1ba.jpg,FAMILY_SAFE,normal,nsfw,0.9995988011360168,0.0004011883575003594
|
| 368 |
+
541,7151cdf8-edb3802789ea655bda76512662ef16fd.jpg,7151cdf8-edb3802789ea655bda76512662ef16fd.jpg,FAMILY_SAFE,normal,nsfw,0.9998522996902466,0.00014772574650123715
|
| 369 |
+
542,420c8652-ed4fa0d4320a9474fcdbf9f260d5ccd9.jpg,420c8652-ed4fa0d4320a9474fcdbf9f260d5ccd9.jpg,SUGGESTIVE,normal,nsfw,0.9996261596679688,0.000373855815269053
|
| 370 |
+
543,f12d507b-ed6ad32bca5a4012c154cea7d74675c1.jpg,f12d507b-ed6ad32bca5a4012c154cea7d74675c1.jpg,SUGGESTIVE,normal,nsfw,0.9991185069084167,0.0008814343600533903
|
| 371 |
+
544,ea78c268-ed59c63ff419564a0091bf4dba0db57b.jpg,ea78c268-ed59c63ff419564a0091bf4dba0db57b.jpg,SUGGESTIVE,normal,nsfw,0.9945167899131775,0.005483196582645178
|
| 372 |
+
545,8bc1df46-ed684d1f722a3e6fd6644a086a941908.jpg,8bc1df46-ed684d1f722a3e6fd6644a086a941908.jpg,SUGGESTIVE,normal,nsfw,0.999273955821991,0.0007260265410877764
|
| 373 |
+
546,6ac74b20-ed0dd06c432216aa905a2732eb14d356.jpg,6ac74b20-ed0dd06c432216aa905a2732eb14d356.jpg,FAMILY_SAFE,normal,nsfw,0.9998636245727539,0.00013629836030304432
|
| 374 |
+
547,f88fee24-ed21cb4f07ee87064a3203c18fd4cce1.jpg,f88fee24-ed21cb4f07ee87064a3203c18fd4cce1.jpg,UNCERTAIN,normal,nsfw,0.9998766183853149,0.0001233148213941604
|
| 375 |
+
548,2f604374-ed22e47a89b289fcddbd58d84fe4af7a.jpg,2f604374-ed22e47a89b289fcddbd58d84fe4af7a.jpg,FAMILY_SAFE,normal,nsfw,0.999733030796051,0.0002670004905667156
|
| 376 |
+
549,3afea32d-ece69a65ed45a3edf1fc00efbbfaedb7.jpg,3afea32d-ece69a65ed45a3edf1fc00efbbfaedb7.jpg,FAMILY_SAFE,normal,nsfw,0.9996899366378784,0.00031009389203973114
|
| 377 |
+
550,e4e420e1-ece99c6f98d2a711d94c11bb54cce29f.jpg,e4e420e1-ece99c6f98d2a711d94c11bb54cce29f.jpg,SUGGESTIVE,normal,nsfw,0.9987702965736389,0.0012296558124944568
|
| 378 |
+
551,c356522a-ed0ab3e1587ed20eeace37e94f8d54ba.jpg,c356522a-ed0ab3e1587ed20eeace37e94f8d54ba.jpg,FAMILY_SAFE,normal,nsfw,0.9998643398284912,0.00013560325896833092
|
| 379 |
+
552,a9f4ce1f-ed0b80d5b8a1a6cd023555b1695c5037.jpg,a9f4ce1f-ed0b80d5b8a1a6cd023555b1695c5037.jpg,FAMILY_SAFE,normal,nsfw,0.9998100399971008,0.00018995435675606132
|
| 380 |
+
553,5822bed3-ed0c697143d8cfcf7772d205537c1a53.jpg,5822bed3-ed0c697143d8cfcf7772d205537c1a53.jpg,FAMILY_SAFE,normal,nsfw,0.9998100399971008,0.000189999642316252
|
| 381 |
+
554,8d880f44-ed01e05d1b0f341627595626f0d1fc19.jpg,8d880f44-ed01e05d1b0f341627595626f0d1fc19.jpg,UNCERTAIN,normal,nsfw,0.9995793700218201,0.000420599477365613
|
| 382 |
+
555,d513daab-ed0590024f5fe63e2dca696949cd4a3b.jpg,d513daab-ed0590024f5fe63e2dca696949cd4a3b.jpg,UNCERTAIN,normal,nsfw,0.9990025162696838,0.0009974924614652991
|
| 383 |
+
556,c80032d6-ecd074a8a73aafc255fb87c50ab46d32.jpg,c80032d6-ecd074a8a73aafc255fb87c50ab46d32.jpg,SUGGESTIVE,normal,nsfw,0.9997041821479797,0.0002957940741907805
|
| 384 |
+
557,5cb76bcd-ecd461884c7d815ca300840ac7dff722.jpg,5cb76bcd-ecd461884c7d815ca300840ac7dff722.jpg,SUGGESTIVE,normal,nsfw,0.9976071119308472,0.0023929032031446695
|
| 385 |
+
558,475e3763-ecab477c7f479d98386c20ed15ddc8ed.jpg,475e3763-ecab477c7f479d98386c20ed15ddc8ed.jpg,SUGGESTIVE,normal,nsfw,0.9997259974479675,0.00027403709827922285
|
| 386 |
+
559,38faa256-ecb96a10b5007cac877671cd626e11bc.jpg,38faa256-ecb96a10b5007cac877671cd626e11bc.jpg,SUGGESTIVE,normal,nsfw,0.9998334646224976,0.00016654586943332106
|
| 387 |
+
560,0a0d8662-ecb215bf839692ed00a48cf006405234.jpg,0a0d8662-ecb215bf839692ed00a48cf006405234.jpg,FAMILY_SAFE,normal,nsfw,0.9994189739227295,0.000581087835598737
|
| 388 |
+
561,fe38b006-ec912c8d68846d3d4cae46a6dc2e2e67.jpg,fe38b006-ec912c8d68846d3d4cae46a6dc2e2e67.jpg,SUGGESTIVE,normal,nsfw,0.9995977282524109,0.0004022495122626424
|
| 389 |
+
562,61198ea6-eca396464fb1343904128cac952dccba.jpg,61198ea6-eca396464fb1343904128cac952dccba.jpg,SUGGESTIVE,normal,nsfw,0.9922537207603455,0.007746343035250902
|
| 390 |
+
563,f42a237d-ec8ba9e30ab570db99c521c4d75e877a.jpg,f42a237d-ec8ba9e30ab570db99c521c4d75e877a.jpg,SUGGESTIVE,normal,nsfw,0.9998227953910828,0.00017721373296808451
|
| 391 |
+
564,9ea2a68b-ec75da7bce977ab4b2d77224ad0ed08d.jpg,9ea2a68b-ec75da7bce977ab4b2d77224ad0ed08d.jpg,FAMILY_SAFE,normal,nsfw,0.9998867511749268,0.0001131855824496597
|
| 392 |
+
565,b19e9aff-ec7752c4445664d6a594779d0cba33a6.jpg,b19e9aff-ec7752c4445664d6a594779d0cba33a6.jpg,SUGGESTIVE,normal,nsfw,0.9447913765907288,0.05520857498049736
|
| 393 |
+
566,cb8a1b42-ec4ed6c5f59cd751b1d4a8cbd5ef9730.jpg,cb8a1b42-ec4ed6c5f59cd751b1d4a8cbd5ef9730.jpg,FAMILY_SAFE,normal,nsfw,0.9988370537757874,0.0011629430809989572
|
| 394 |
+
567,11f16074-ec4f3a4fceac2b83221995baa3ce6138.jpg,11f16074-ec4f3a4fceac2b83221995baa3ce6138.jpg,SUGGESTIVE,normal,nsfw,0.9902916550636292,0.00970835704356432
|
| 395 |
+
568,cf990f78-ec4898ce293c0fce9e3df490ef83741d.jpg,cf990f78-ec4898ce293c0fce9e3df490ef83741d.jpg,FAMILY_SAFE,normal,nsfw,0.9609015583992004,0.03909844160079956
|
| 396 |
+
569,958ec76b-ec5156a1d4dad967c4ed14a44fc9c10f.jpg,958ec76b-ec5156a1d4dad967c4ed14a44fc9c10f.jpg,FAMILY_SAFE,normal,nsfw,0.9998987913131714,0.00010114439646713436
|
| 397 |
+
570,b1c40d0c-ec5965d57ca71e648adc70401156b743.jpg,b1c40d0c-ec5965d57ca71e648adc70401156b743.jpg,FAMILY_SAFE,normal,nsfw,0.9998644590377808,0.0001355704152956605
|
| 398 |
+
571,5c8c7c7e-ec3c4b7b7261c385c7792663a153b2dc.jpg,5c8c7c7e-ec3c4b7b7261c385c7792663a153b2dc.jpg,SUGGESTIVE,normal,nsfw,0.998941957950592,0.001058094552718103
|
| 399 |
+
572,c8925d60-ec2488d58f5c6f80593119f44bdb6f36.jpg,c8925d60-ec2488d58f5c6f80593119f44bdb6f36.jpg,SUGGESTIVE,normal,nsfw,0.999871015548706,0.0001289922365685925
|
| 400 |
+
573,783f692a-ec3873aa10b64f2c5c0ae4044d8dd916.jpg,783f692a-ec3873aa10b64f2c5c0ae4044d8dd916.jpg,SUGGESTIVE,normal,nsfw,0.9997977614402771,0.0002022040425799787
|
| 401 |
+
574,c59d6aef-ec366037d7416be3f574f23f7e0fb3ef.jpg,c59d6aef-ec366037d7416be3f574f23f7e0fb3ef.jpg,SUGGESTIVE,normal,nsfw,0.9989868998527527,0.0010131052695214748
|
| 402 |
+
575,ba90116c-ebfda352bd5113859294aff74239faed.jpg,ba90116c-ebfda352bd5113859294aff74239faed.jpg,UNCERTAIN,normal,nsfw,0.9998039603233337,0.0001960248191608116
|
| 403 |
+
576,74013397-ebfe9c315f7eba7ee13ffecfbe52cab8.jpg,74013397-ebfe9c315f7eba7ee13ffecfbe52cab8.jpg,FAMILY_SAFE,normal,nsfw,0.9998219609260559,0.0001780944294296205
|
| 404 |
+
577,2827b91c-ec1a1c97dab7c740188280a871b78251.jpg,2827b91c-ec1a1c97dab7c740188280a871b78251.jpg,SUGGESTIVE,normal,nsfw,0.9150409698486328,0.0849590003490448
|
| 405 |
+
578,07efebe4-ebd3a3a173aa3985f69c95a9bbeec91a.jpg,07efebe4-ebd3a3a173aa3985f69c95a9bbeec91a.jpg,SUGGESTIVE,normal,nsfw,0.9980854988098145,0.001914576510898769
|
| 406 |
+
579,34018f60-ebe7ee3f3605c66f1be4eb323e3ae05f.jpg,34018f60-ebe7ee3f3605c66f1be4eb323e3ae05f.jpg,SUGGESTIVE,normal,nsfw,0.9970672726631165,0.0029327378142625093
|
| 407 |
+
580,a2dd1244-ebe59192b6950204b3fee2c0edf9242d.jpg,a2dd1244-ebe59192b6950204b3fee2c0edf9242d.jpg,SUGGESTIVE,normal,nsfw,0.9972516894340515,0.0027482740115374327
|
| 408 |
+
581,670193c9-ebef8223abe988c0821aefae3c6e6e98.jpg,670193c9-ebef8223abe988c0821aefae3c6e6e98.jpg,UNCERTAIN,normal,nsfw,0.9964235424995422,0.0035764260683208704
|
| 409 |
+
582,c91cb641-ebf05bafa1371d6feb6aa81ea7cbbf7a.jpg,c91cb641-ebf05bafa1371d6feb6aa81ea7cbbf7a.jpg,SUGGESTIVE,normal,nsfw,0.9996639490127563,0.00033601850736886263
|
| 410 |
+
583,e91af0b1-ebf0503fe32e2e3a76346007e4aaf886.jpg,e91af0b1-ebf0503fe32e2e3a76346007e4aaf886.jpg,SUGGESTIVE,normal,nsfw,0.9997934699058533,0.00020658686116803437
|
| 411 |
+
584,5fddd072-ebb2b0dd48dc25f919f57ff2a2e7312a.jpg,5fddd072-ebb2b0dd48dc25f919f57ff2a2e7312a.jpg,FAMILY_SAFE,normal,nsfw,0.9993059635162354,0.0006939795566722751
|
| 412 |
+
585,26c7e03e-ebcf6c5f871a5dc3e6e9f035bf8fba78.jpg,26c7e03e-ebcf6c5f871a5dc3e6e9f035bf8fba78.jpg,UNCERTAIN,normal,nsfw,0.9995720982551575,0.00042792936437763274
|
| 413 |
+
586,19060fc3-ebd170644a805b3966416bc6f2d40528.jpg,19060fc3-ebd170644a805b3966416bc6f2d40528.jpg,SUGGESTIVE,normal,nsfw,0.9988935589790344,0.001106423675082624
|
| 414 |
+
587,6a2a26d9-eb8a6ed9fea3fd6949774e598fed9d20.jpg,6a2a26d9-eb8a6ed9fea3fd6949774e598fed9d20.jpg,SUGGESTIVE,normal,nsfw,0.9997058510780334,0.00029406617977656424
|
| 415 |
+
588,61cf0086-eb8d76f9ea022d2b18f119288e0fb083.jpg,61cf0086-eb8d76f9ea022d2b18f119288e0fb083.jpg,SUGGESTIVE,normal,nsfw,0.9820926189422607,0.0179073978215456
|
| 416 |
+
589,71c87364-eb9f10122a8e23579c8d1a2cdc0e8db4.jpg,71c87364-eb9f10122a8e23579c8d1a2cdc0e8db4.jpg,SUGGESTIVE,normal,nsfw,0.9997401833534241,0.0002597524144221097
|
| 417 |
+
590,9eebe5b1-eb905d1b7fc7b0eac9adea12bee291bc.jpg,9eebe5b1-eb905d1b7fc7b0eac9adea12bee291bc.jpg,SUGGESTIVE,normal,nsfw,0.9997889399528503,0.00021104497136548162
|
| 418 |
+
591,b7ac5915-eb915f5d723fe6d575e7471e8130924d.jpg,b7ac5915-eb915f5d723fe6d575e7471e8130924d.jpg,SUGGESTIVE,normal,nsfw,0.9809674620628357,0.01903250254690647
|
| 419 |
+
592,700eea71-eb7967ec45df17fadffae1e9b84a1c03.jpg,700eea71-eb7967ec45df17fadffae1e9b84a1c03.jpg,FAMILY_SAFE,normal,nsfw,0.9987695813179016,0.0012304328847676516
|
| 420 |
+
593,dd925e69-eba026d7ab6dcbf77c05e9e1fce9f98b.jpg,dd925e69-eba026d7ab6dcbf77c05e9e1fce9f98b.jpg,SUGGESTIVE,normal,nsfw,0.999840497970581,0.000159459697897546
|
| 421 |
+
594,01dc90a4-eba313f10bf5953b52dc8145a668f4b1.jpg,01dc90a4-eba313f10bf5953b52dc8145a668f4b1.jpg,FAMILY_SAFE,normal,nsfw,0.9991907477378845,0.0008092051721177995
|
| 422 |
+
595,49462a8c-eb3e848d5f3969eb49f10ef14db11593.jpg,49462a8c-eb3e848d5f3969eb49f10ef14db11593.jpg,FAMILY_SAFE,nsfw,normal,0.9381260871887207,0.06187397241592407
|
| 423 |
+
596,84cabf94-eb46a86b864004fb56c426f3e6859869.jpg,84cabf94-eb46a86b864004fb56c426f3e6859869.jpg,UNCERTAIN,normal,nsfw,0.9998399019241333,0.00016006341320462525
|
| 424 |
+
597,8d99d164-eb630bc86c8b347b6e4f3f947ef03b45.jpg,8d99d164-eb630bc86c8b347b6e4f3f947ef03b45.jpg,SUGGESTIVE,normal,nsfw,0.9990540146827698,0.000945966923609376
|
| 425 |
+
598,a5dc7a8b-eb0b4aec28838b01b635ae2d906319fd.jpg,a5dc7a8b-eb0b4aec28838b01b635ae2d906319fd.jpg,FAMILY_SAFE,normal,nsfw,0.998967170715332,0.0010328685166314244
|
| 426 |
+
599,c998ec26-eb0fd6ae406bcbf648f37716832167b7.jpg,c998ec26-eb0fd6ae406bcbf648f37716832167b7.jpg,SUGGESTIVE,normal,nsfw,0.9967557787895203,0.003244214691221714
|
| 427 |
+
600,9a363203-eb1efa483d18843e2d34330b324e49e7.jpg,9a363203-eb1efa483d18843e2d34330b324e49e7.jpg,UNCERTAIN,normal,nsfw,0.997420072555542,0.0025799863506108522
|
| 428 |
+
601,80174771-eb2bbc40d914d047f6a15d0d1db4af9b.jpg,80174771-eb2bbc40d914d047f6a15d0d1db4af9b.jpg,SUGGESTIVE,normal,nsfw,0.9987003803253174,0.001299550523981452
|
| 429 |
+
602,da470e08-eb214a887113aeae8902116d5ebcb84a.jpg,da470e08-eb214a887113aeae8902116d5ebcb84a.jpg,SUGGESTIVE,normal,nsfw,0.9995766282081604,0.00042332481825724244
|
| 430 |
+
603,c1369917-eb396372a0cbb497fcb259ecf9859fab.jpg,c1369917-eb396372a0cbb497fcb259ecf9859fab.jpg,UNCERTAIN,normal,nsfw,0.9998708963394165,0.00012909609358757734
|
| 431 |
+
604,eaf48512-eae00de851425f14cf837f6238fb3111.jpg,eaf48512-eae00de851425f14cf837f6238fb3111.jpg,SUGGESTIVE,normal,nsfw,0.9997245669364929,0.00027536548441275954
|
| 432 |
+
605,3ae42af7-ea9478ccf8264c91cf5485c93fecba1b.jpg,3ae42af7-ea9478ccf8264c91cf5485c93fecba1b.jpg,SUGGESTIVE,normal,nsfw,0.6062589287757874,0.39374110102653503
|
| 433 |
+
606,990348b4-ea889002933fd0689c1bd805505d00ca.jpg,990348b4-ea889002933fd0689c1bd805505d00ca.jpg,FAMILY_SAFE,normal,nsfw,0.9997212290763855,0.00027869868790730834
|
| 434 |
+
607,77e2c941-eaa26e78346e1d92ee8b34a80aff9826.jpg,77e2c941-eaa26e78346e1d92ee8b34a80aff9826.jpg,SUGGESTIVE,normal,nsfw,0.9970595240592957,0.0029404882807284594
|
| 435 |
+
608,775910aa-eaac5564f212f117e0ea7174b0876484.jpg,775910aa-eaac5564f212f117e0ea7174b0876484.jpg,SUGGESTIVE,normal,nsfw,0.9997846484184265,0.00021536748681683093
|
| 436 |
+
609,b8405e3c-eac0ebc831eeb117fb36c86452b6c5f5.jpg,b8405e3c-eac0ebc831eeb117fb36c86452b6c5f5.jpg,SUGGESTIVE,normal,nsfw,0.9998538494110107,0.00014617794658988714
|
| 437 |
+
610,1e5eb554-ea5d2de8ab1fd0ec4b61ed153805d638.jpg,1e5eb554-ea5d2de8ab1fd0ec4b61ed153805d638.jpg,SUGGESTIVE,normal,nsfw,0.9994828701019287,0.0005170419462956488
|
| 438 |
+
611,ee2ed958-ea6df97b08a8c96a9587abe7764f9cc3.jpg,ee2ed958-ea6df97b08a8c96a9587abe7764f9cc3.jpg,SUGGESTIVE,normal,nsfw,0.9993582367897034,0.000641746271867305
|
| 439 |
+
612,27bffd86-ea6fffbf1d3afbbbeea92a3c1c6deffd.jpg,27bffd86-ea6fffbf1d3afbbbeea92a3c1c6deffd.jpg,SUGGESTIVE,normal,nsfw,0.9930070638656616,0.006992902606725693
|
| 440 |
+
613,bc246849-ea71edf190810bac9c56483239eae59a.jpg,bc246849-ea71edf190810bac9c56483239eae59a.jpg,SUGGESTIVE,normal,nsfw,0.9998544454574585,0.00014554927474819124
|
| 441 |
+
614,39c155ed-ea4b1f27828cbd87b0f95f1f36cd7a54.jpg,39c155ed-ea4b1f27828cbd87b0f95f1f36cd7a54.jpg,UNCERTAIN,normal,nsfw,0.999687910079956,0.0003121345944236964
|
| 442 |
+
615,2b92f3dc-ea5380a591b6e34d1382a67221b558aa.jpg,2b92f3dc-ea5380a591b6e34d1382a67221b558aa.jpg,UNCERTAIN,normal,nsfw,0.9995667338371277,0.000433213310316205
|
| 443 |
+
616,03579438-ea1f42c6e20979a40230b242e5d6bbee.jpg,03579438-ea1f42c6e20979a40230b242e5d6bbee.jpg,UNCERTAIN,normal,nsfw,0.9997838139533997,0.0002162015880458057
|
| 444 |
+
617,e5da72ea-ea20b59163f3b360f62d68e4f132393b.jpg,e5da72ea-ea20b59163f3b360f62d68e4f132393b.jpg,SUGGESTIVE,normal,nsfw,0.9900760054588318,0.009924004785716534
|
| 445 |
+
618,7fce3819-ea37c94a8cb1c50c4084d4c9cc9bd177.jpg,7fce3819-ea37c94a8cb1c50c4084d4c9cc9bd177.jpg,UNCERTAIN,normal,nsfw,0.9997311234474182,0.00026884375256486237
|
| 446 |
+
619,0b24edd3-e9d77067389acfaa2897de087ec279a1.jpg,0b24edd3-e9d77067389acfaa2897de087ec279a1.jpg,UNCERTAIN,normal,nsfw,0.9998729228973389,0.0001270701759494841
|
| 447 |
+
620,b61339af-e9e395951ba5901de8ba2b15899689ee.jpg,b61339af-e9e395951ba5901de8ba2b15899689ee.jpg,UNCERTAIN,normal,nsfw,0.9998766183853149,0.00012331387551967055
|
| 448 |
+
621,bb7c935c-e9eefa0852edb5311b63d6fbf85a9815.jpg,bb7c935c-e9eefa0852edb5311b63d6fbf85a9815.jpg,SUGGESTIVE,normal,nsfw,0.9995937943458557,0.00040626354166306555
|
| 449 |
+
622,3bcb2655-e9f9cb6790fcb4c6960e5b834abfe72c.jpg,3bcb2655-e9f9cb6790fcb4c6960e5b834abfe72c.jpg,SUGGESTIVE,normal,nsfw,0.7081856727600098,0.29181429743766785
|
| 450 |
+
623,630fff65-e9f0689b5df3c0bbb17ec7a670ebacb8.jpg,630fff65-e9f0689b5df3c0bbb17ec7a670ebacb8.jpg,SUGGESTIVE,normal,nsfw,0.998375415802002,0.0016246135346591473
|
| 451 |
+
624,3c9f8955-e9b23e6e929900bbbbb29be5affa0ae5.jpg,3c9f8955-e9b23e6e929900bbbbb29be5affa0ae5.jpg,SUGGESTIVE,normal,nsfw,0.9996837377548218,0.00031631262390874326
|
| 452 |
+
625,e2b2a6ac-e9a15368497b12a5f502151ce2babdd1.jpg,e2b2a6ac-e9a15368497b12a5f502151ce2babdd1.jpg,UNCERTAIN,normal,nsfw,0.999388575553894,0.0006114268326200545
|
| 453 |
+
626,28c4871f-e9ab035913a3f11963041ef9b89caa2e.jpg,28c4871f-e9ab035913a3f11963041ef9b89caa2e.jpg,SUGGESTIVE,nsfw,normal,0.5549147725105286,0.4450852572917938
|
| 454 |
+
627,e41d2daa-e96c2e00fce0f439d17ad2731eb76f06.jpg,e41d2daa-e96c2e00fce0f439d17ad2731eb76f06.jpg,SUGGESTIVE,nsfw,normal,0.7233740091323853,0.27662596106529236
|
| 455 |
+
628,31a90818-e983a4f33a2035ff412231c35d7fcfa5.jpg,31a90818-e983a4f33a2035ff412231c35d7fcfa5.jpg,FAMILY_SAFE,normal,nsfw,0.9996706247329712,0.0003293689514975995
|
| 456 |
+
629,4da9491c-e95cf7d4d15184aeb5847e9e6a51e9d0.jpg,4da9491c-e95cf7d4d15184aeb5847e9e6a51e9d0.jpg,FAMILY_SAFE,normal,nsfw,0.9993706345558167,0.0006293475744314492
|
data/labels.csv
ADDED
|
@@ -0,0 +1,456 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
choice,image
|
| 2 |
+
UNCERTAIN,/data/imgs/0f7d40c8-ffd86ff5fbd82d0e6eb176cbc0b83634.jpg
|
| 3 |
+
FAMILY_SAFE,/data/imgs/abe701ef-fff11e31ec0146bd469e5e3afa14a37a.jpg
|
| 4 |
+
UNCERTAIN,/data/imgs/f3f6d9e7-ff8ba374753afc33d6efcddfa8190820.jpg
|
| 5 |
+
UNCERTAIN,/data/imgs/2a71e0e5-ff8f980e673cd0ca47acd5e46a60860e.jpg
|
| 6 |
+
UNCERTAIN,/data/imgs/883fb0f5-ff89d127a396bc4e269161fcb0debafc.jpg
|
| 7 |
+
FAMILY_SAFE,/data/imgs/2af0302e-ff943feb34677ab7380b172f5a879061.jpg
|
| 8 |
+
SUGGESTIVE,/data/imgs/00b62e8d-ff8923c82c694582614e3c6426f27d50.jpg
|
| 9 |
+
UNCERTAIN,/data/imgs/bc29dd51-ffa3ea1e617fc51d9f897c3651d8c58c.jpg
|
| 10 |
+
FAMILY_SAFE,/data/imgs/7efcc1a9-ffb14bc253b175a8064d17ffe2c7249b.jpg
|
| 11 |
+
UNCERTAIN,/data/imgs/1ade517e-ff5c303cb978725b41ecdc33f99a9811.jpg
|
| 12 |
+
FAMILY_SAFE,/data/imgs/e90235cf-ff4ee441959276cee003489e10030787.jpg
|
| 13 |
+
SUGGESTIVE,/data/imgs/cb00e4b8-ff57d7cdec78610cfc32857254662054.jpg
|
| 14 |
+
SUGGESTIVE,/data/imgs/d140fb6b-ff42165c1c025a99db8fd3fbf47b9e8d.jpg
|
| 15 |
+
SUGGESTIVE,/data/imgs/a1cd3b22-ff0dbc383dfd54bed44ec0583cbba777.jpg
|
| 16 |
+
SUGGESTIVE,/data/imgs/ed323d8b-ff3cae8c55408c7ed67ef1daf9751319.jpg
|
| 17 |
+
UNCERTAIN,/data/imgs/c8ec92d5-fee9ea29f695f6f590dbaf3ecc99351b.jpg
|
| 18 |
+
SUGGESTIVE,/data/imgs/f2c80c32-ff0a5673ea6b3139e5440728d7be66b4.jpg
|
| 19 |
+
SUGGESTIVE,/data/imgs/e9b17aee-ff007a23e0caf370e590d636413628fb.jpg
|
| 20 |
+
SUGGESTIVE,/data/imgs/c53b2fea-feb2e70ea41a86df9c9984df1aff49d1.jpg
|
| 21 |
+
UNCERTAIN,/data/imgs/1540c751-feb3ae09e5e5e2d27b1c6b0d75e66c73.jpg
|
| 22 |
+
UNCERTAIN,/data/imgs/18eb5521-febafb43e0a8a5a62bd64d0e1e2c51bb.jpg
|
| 23 |
+
FAMILY_SAFE,/data/imgs/09c99130-fec2e3149882333a9a5a381f562f9536.jpg
|
| 24 |
+
SUGGESTIVE,/data/imgs/6d3cfee1-fec30d1ce7fd3c5f8056da81cc0f56cd.jpg
|
| 25 |
+
UNCERTAIN,/data/imgs/02e91ed5-fecaf071c6d469a5e9db4516cf04c34f.jpg
|
| 26 |
+
UNCERTAIN,/data/imgs/6084597d-fed1a27739f7fc733adfe4843185b995.jpg
|
| 27 |
+
FAMILY_SAFE,/data/imgs/18699932-fe8d4f54e561bf7a76f70e6b28299d59.jpg
|
| 28 |
+
FAMILY_SAFE,/data/imgs/759b4eb3-fe4ec0e6a0803e088352ad9cba4e969a.jpg
|
| 29 |
+
UNCERTAIN,/data/imgs/fd0a4064-fe4f57b1dc8f46cbd79d69ad05652ac8.jpg
|
| 30 |
+
SUGGESTIVE,/data/imgs/722170f8-fe61bb1e7709ddb889307cd6d644bbb9.jpg
|
| 31 |
+
UNCERTAIN,/data/imgs/597903c6-fe446bc03fc71ccd0559f01bebbd073d.jpg
|
| 32 |
+
UNCERTAIN,/data/imgs/ded203db-fe11b6d8acc63b2819390a12a32bbd30.jpg
|
| 33 |
+
FAMILY_SAFE,/data/imgs/72e813f5-fde81d8132b2c70f39798f11186997bd.jpg
|
| 34 |
+
FAMILY_SAFE,/data/imgs/6474cda9-fde879b3ab6d5f8fb99aacad817dc18f.jpg
|
| 35 |
+
FAMILY_SAFE,/data/imgs/9d734426-fdfc5d73210e52e70f9c1b337c7a7423.jpg
|
| 36 |
+
UNCERTAIN,/data/imgs/940a8d2a-fe06e1df8abfcc599b4edf3ceb84b767.jpg
|
| 37 |
+
FAMILY_SAFE,/data/imgs/6cf544b3-fdcc56c858be84644a24f71ca1ecf009.jpg
|
| 38 |
+
FAMILY_SAFE,/data/imgs/c90492e9-fdce40a990a776a3ef934aa8eacfa0da.jpg
|
| 39 |
+
FAMILY_SAFE,/data/imgs/d5d56f5c-fdd0daec3624d1d7acf8048484a7efe2.jpg
|
| 40 |
+
UNCERTAIN,/data/imgs/1b6ade1e-fdbea88aeaa93ac7dbcb38d07b917e7d.jpg
|
| 41 |
+
UNCERTAIN,/data/imgs/e7c85aca-fdc00eac708506181cc0b3018d217b97.jpg
|
| 42 |
+
SUGGESTIVE,/data/imgs/6519a095-fd8eea5a65e5ef6cec86fe214c5a3cd3.jpg
|
| 43 |
+
FAMILY_SAFE,/data/imgs/bdce6a65-fd918dbde3d770d03716835677e7b611.jpg
|
| 44 |
+
SUGGESTIVE,/data/imgs/8ed58548-fd9371dd911d3a2099a6a652db4248b4.jpg
|
| 45 |
+
SUGGESTIVE,/data/imgs/72f07c2b-fd94006f594a7575961947fcca9faa08.jpg
|
| 46 |
+
FAMILY_SAFE,/data/imgs/9eb0117b-fd7f50b9d57c9384041914d1b4cdd77c.jpg
|
| 47 |
+
FAMILY_SAFE,/data/imgs/e243712d-fd71a7a81dea0c9fc195cf6d6f32b0a9.jpg
|
| 48 |
+
FAMILY_SAFE,/data/imgs/3198b794-fd826bc213d0273afbb83b3c4aec1adc.jpg
|
| 49 |
+
FAMILY_SAFE,/data/imgs/75ee25dc-fd71396788725bb988c9cd3689fcde68.jpg
|
| 50 |
+
UNCERTAIN,/data/imgs/3dade0ea-fd3e2ce0703f9c027862f5a79c788b56.jpg
|
| 51 |
+
FAMILY_SAFE,/data/imgs/13a4e537-fd4bbf6927a13c5289dfa509b7a4078b.jpg
|
| 52 |
+
SUGGESTIVE,/data/imgs/afddcafe-fd4da06b37fbae5380cf0d7fa0678103.jpg
|
| 53 |
+
FAMILY_SAFE,/data/imgs/84acb822-fd4eb64e7f0ca587d908435fb95b2909.jpg
|
| 54 |
+
FAMILY_SAFE,/data/imgs/022b4f3e-fd39709199d9f45147c183dee3c5d697.jpg
|
| 55 |
+
SUGGESTIVE,/data/imgs/d4ccee96-fd24b551b4531ae14433a7950eaa85b3.jpg
|
| 56 |
+
FAMILY_SAFE,/data/imgs/3a78a22b-fd38a720ae06640dd25aaf9c11dd9672.jpg
|
| 57 |
+
UNCERTAIN,/data/imgs/6d307a2e-fd2268af5eafa750a7e5a3a521ff7fdd.jpg
|
| 58 |
+
SUGGESTIVE,/data/imgs/b224fc67-fd150330c8a62cd9ab45e51f4de6969f.jpg
|
| 59 |
+
UNCERTAIN,/data/imgs/6da2441b-fcf901727f0b68c35c55f5734189c1f0.jpg
|
| 60 |
+
SUGGESTIVE,/data/imgs/ef1cbf46-fd08dc2a899b79496087b34b88b82f2d.jpg
|
| 61 |
+
SUGGESTIVE,/data/imgs/d1a55b96-fca9c570e98556bb8c40835c55cba67d.jpg
|
| 62 |
+
SUGGESTIVE,/data/imgs/fc1397fa-fcbbcf0191ab925aa67604ff0c7f141e.jpg
|
| 63 |
+
SUGGESTIVE,/data/imgs/74454c95-fcbf1a2490d9531efc33322b2702912f.jpg
|
| 64 |
+
FAMILY_SAFE,/data/imgs/b7206afa-fcc50f8b1362042b4acad74a4b4ae4ed.jpg
|
| 65 |
+
SUGGESTIVE,/data/imgs/64be13ce-fc813fdb8cb41651b9b4d5141fcd386a.jpg
|
| 66 |
+
SUGGESTIVE,/data/imgs/d5c64c7c-fca4fe8aa6a350ab9680692ebbe1e13c.jpg
|
| 67 |
+
SUGGESTIVE,/data/imgs/8af150d5-fca025dcf76a43feae0bf2e8e9a6c1e2.jpg
|
| 68 |
+
SUGGESTIVE,/data/imgs/0df4b27b-fc6fefe3f417fdbfd91da8cffe59f7db.jpg
|
| 69 |
+
SUGGESTIVE,/data/imgs/a90c3b4e-fc39f11aab8aae4bb03057701a7b8312.jpg
|
| 70 |
+
FAMILY_SAFE,/data/imgs/3c42d798-fc74b1fc4095a324b1f1ca1ac322278d.jpg
|
| 71 |
+
FAMILY_SAFE,/data/imgs/0bfb63b2-fc644a2683a976d8391e70f88408468b.jpg
|
| 72 |
+
FAMILY_SAFE,/data/imgs/b0091e81-fbf4b07fffa61fa2650649ec19debf39.jpg
|
| 73 |
+
SUGGESTIVE,/data/imgs/6faa5147-fbf13c899fbdd8e750dc46cc284249c5.jpg
|
| 74 |
+
FAMILY_SAFE,/data/imgs/bcfeea6a-fc1baf625d3e36ca4c5a29521f72525e.jpg
|
| 75 |
+
FAMILY_SAFE,/data/imgs/0d5b1538-fc21d81fb821d214b4f4f1d7f553475d.jpg
|
| 76 |
+
UNCERTAIN,/data/imgs/cfb6f5d7-fc07723d545d098aafab4aeb7d2e65a3.jpg
|
| 77 |
+
SUGGESTIVE,/data/imgs/43a803bd-fbcddca8eb614e2e2076c1128d30fa58.jpg
|
| 78 |
+
FAMILY_SAFE,/data/imgs/930fa681-fbd64159d7d027262f736408659d40cb.jpg
|
| 79 |
+
SUGGESTIVE,/data/imgs/c884f2e6-fbb763c6f6f858fdfc270f3f3bda1eac.jpg
|
| 80 |
+
FAMILY_SAFE,/data/imgs/b3f73152-fbc604a00ac5d9d6a73cec8789a75d0c.jpg
|
| 81 |
+
SUGGESTIVE,/data/imgs/f3e719e9-fbc9929373c24b1afd9523aa5253a594.jpg
|
| 82 |
+
SUGGESTIVE,/data/imgs/ac2b938f-fbca15037c332d6e9e658e2129217794.jpg
|
| 83 |
+
SUGGESTIVE,/data/imgs/e0092f87-fb6ad7084b95e0bb2eb9575082907662.jpg
|
| 84 |
+
SUGGESTIVE,/data/imgs/efd3b12b-fb7ba81d49347796a797d1322a64cb71.jpg
|
| 85 |
+
FAMILY_SAFE,/data/imgs/74426174-fb701d0e6a714179959ac8e1e4e2cb88.jpg
|
| 86 |
+
SUGGESTIVE,/data/imgs/68adaf6f-fb61755f0c2afaafdd9aa36f7632cbe5.jpg
|
| 87 |
+
FAMILY_SAFE,/data/imgs/c61c6042-fb607386dd384e6b0d53ef878bbffc55.jpg
|
| 88 |
+
FAMILY_SAFE,/data/imgs/7ec3bcbe-fb2e1bdb34ace56b99befc2547a8b83d.jpg
|
| 89 |
+
FAMILY_SAFE,/data/imgs/bec475e6-fb3c593276f0f040a7450ca213d97882.jpg
|
| 90 |
+
FAMILY_SAFE,/data/imgs/966460f7-fb50d0f85eb7e491722e734b961926f0.jpg
|
| 91 |
+
FAMILY_SAFE,/data/imgs/243861f5-fb468ddeda48f68ec3539bebe07b92b4.jpg
|
| 92 |
+
SUGGESTIVE,/data/imgs/54045990-fb1c02d4c50a59be3fe3cb249de403e0.jpg
|
| 93 |
+
UNCERTAIN,/data/imgs/7439530f-faf1f5d9d6e51a84ce632df317dd5c5c.jpg
|
| 94 |
+
UNCERTAIN,/data/imgs/e0eec550-faf27f9511974b5ef529ba718677c5f4.jpg
|
| 95 |
+
FAMILY_SAFE,/data/imgs/1101ce4b-fab7821aae25aff865b20b0d33d86900.jpg
|
| 96 |
+
FAMILY_SAFE,/data/imgs/26464718-fac69b44cccb94236c9f905bed46158f.jpg
|
| 97 |
+
FAMILY_SAFE,/data/imgs/d588345d-fad53b443bc3e52bada85783afdac562.jpg
|
| 98 |
+
UNCERTAIN,/data/imgs/7f1fa2e7-fad69c88bcef4434a55b3bf3854b3e56.jpg
|
| 99 |
+
FAMILY_SAFE,/data/imgs/717afd8f-fa6ef41aabda28f51249407ce46a827e.jpg
|
| 100 |
+
UNCERTAIN,/data/imgs/191a25a2-fa7b42eb84363adcd60082a3a7f02f84.jpg
|
| 101 |
+
FAMILY_SAFE,/data/imgs/41febcdf-fa9e77f0788145d7ac42edcffb6e9dee.jpg
|
| 102 |
+
UNCERTAIN,/data/imgs/4bb4ff8b-fa9f2688e1b4e92538569ecb9efecf2e.jpg
|
| 103 |
+
UNCERTAIN,/data/imgs/12aefe0a-fa87c0f54b8cb07a14fc311c369e9a4c.jpg
|
| 104 |
+
SUGGESTIVE,/data/imgs/0f927896-fa94a466d4178dcd4c762f7567c11147.jpg
|
| 105 |
+
FAMILY_SAFE,/data/imgs/3b82e875-faa13416b0d8d2adc2b6815dd1e6c82d.jpg
|
| 106 |
+
SUGGESTIVE,/data/imgs/7a5551c7-fa5b56c4e382fd4dca384daf1768acb4.jpg
|
| 107 |
+
FAMILY_SAFE,/data/imgs/abf1e90d-fa5c6d304163052761d4453c693c202d.jpg
|
| 108 |
+
UNCERTAIN,/data/imgs/150e925a-fa6a15e903e7949093f4ec11fcffdb01.jpg
|
| 109 |
+
SUGGESTIVE,/data/imgs/76aa5a7e-fa41e4a96249c0b8ed90389733c081d8.jpg
|
| 110 |
+
SUGGESTIVE,/data/imgs/891276e7-fa63fcd0e11eb612b2c8f1ade43de7c8.jpg
|
| 111 |
+
FAMILY_SAFE,/data/imgs/0fea6f76-fa412fb78ec94ab051ac0880e255a897.jpg
|
| 112 |
+
UNCERTAIN,/data/imgs/7cb410fd-fa1a50f4102b66555a1a05afa9ddbf3c.jpg
|
| 113 |
+
UNCERTAIN,/data/imgs/907cb3ad-fa1dab55d34f1c7140ea41a1b3ab5eae.jpg
|
| 114 |
+
FAMILY_SAFE,/data/imgs/bf824357-fa2c514037f31c0ab98d66373d371e3a.jpg
|
| 115 |
+
FAMILY_SAFE,/data/imgs/f953d2e3-f9f74d590b0f4d8da8ba20a07bc2a596.jpg
|
| 116 |
+
FAMILY_SAFE,/data/imgs/db2c891b-f9fc35243c2c7592c2d5858be342a34d.jpg
|
| 117 |
+
UNCERTAIN,/data/imgs/53bd404d-fa068c5e8fe813fbb1d90b5a0744e172.jpg
|
| 118 |
+
SUGGESTIVE,/data/imgs/a23fc1cb-fa075d603e631d04c9871dbb00ed0a14.jpg
|
| 119 |
+
SUGGESTIVE,/data/imgs/ee0e3f1d-fa1607fba97dd47d889e0c8eb0a82624.jpg
|
| 120 |
+
SUGGESTIVE,/data/imgs/3aef96bb-f9d6c4a53c12013b5bbb6e830275486e.jpg
|
| 121 |
+
SUGGESTIVE,/data/imgs/9f665793-f9ea859c158d6cece283b619afdf2f49.jpg
|
| 122 |
+
UNCERTAIN,/data/imgs/db0aaa30-f9a1f16e76e3adad3ce2ed9fe0c7a03f.jpg
|
| 123 |
+
UNCERTAIN,/data/imgs/03abd3cc-f9aaa2af6fea2261610e48ed5e11ede4.jpg
|
| 124 |
+
SUGGESTIVE,/data/imgs/d741a3e7-f9b3403712c87698322446ef48a0027c.jpg
|
| 125 |
+
SUGGESTIVE,/data/imgs/b502117c-f9bd44609a914f7aabd3a901d457b1e7.jpg
|
| 126 |
+
SUGGESTIVE,/data/imgs/96ba7ff4-f984b6e28aa8e0e13f71bd41a8c65194.jpg
|
| 127 |
+
FAMILY_SAFE,/data/imgs/85f90f88-f96b6fc62dadba4eb00b5cfaa1168b87.jpg
|
| 128 |
+
SUGGESTIVE,/data/imgs/32e49293-f96bffb22c42bd3beb968d5ff5583c6b.jpg
|
| 129 |
+
FAMILY_SAFE,/data/imgs/263d89d9-f96c4c07dcded0f0fd1aa150a693a181.jpg
|
| 130 |
+
SUGGESTIVE,/data/imgs/78e8d1c7-f96c7473c85142a222056be7c7759184.jpg
|
| 131 |
+
FAMILY_SAFE,/data/imgs/0fc4362d-f9610ac04fe21d9bd96689b8c6ae1669.jpg
|
| 132 |
+
UNCERTAIN,/data/imgs/24f3bf36-f9633749641995381ff42d72352bafe2.jpg
|
| 133 |
+
UNCERTAIN,/data/imgs/3216e20d-f93c3f8af10c70801ce921842c77afc4.jpg
|
| 134 |
+
SUGGESTIVE,/data/imgs/93bfe360-f95143e4ae1515b8bf5c2d813aa36bbc.jpg
|
| 135 |
+
FAMILY_SAFE,/data/imgs/0a08bf3b-f954833a10de7c149ac73c5b4af4c189.jpg
|
| 136 |
+
SUGGESTIVE,/data/imgs/a54eda5e-f8fdf05663173fa7dc689333e3f21f23.jpg
|
| 137 |
+
FAMILY_SAFE,/data/imgs/29f522c1-f91a65be37a0e49d78ac4f6bc0cfcb61.jpg
|
| 138 |
+
SUGGESTIVE,/data/imgs/43ccd6b7-f8b2c595800cb08b05b4f2503fdbbced.jpg
|
| 139 |
+
UNCERTAIN,/data/imgs/c7f29f62-f8b38d085dc15913e26ed1580d0cb644.jpg
|
| 140 |
+
UNCERTAIN,/data/imgs/ca35d72e-f8c8ee06b8b818d1f0f5229014ee8760.jpg
|
| 141 |
+
SUGGESTIVE,/data/imgs/65120b69-f8ee23b284b41157bb5b9eb488cf5828.jpg
|
| 142 |
+
SUGGESTIVE,/data/imgs/4abc60a4-f8a72d3f92f7e3793a093556c5b6b446.jpg
|
| 143 |
+
SUGGESTIVE,/data/imgs/ee55d94c-f8a860d078da463b28618029d547eca0.jpg
|
| 144 |
+
SUGGESTIVE,/data/imgs/42ea7be6-f8a950c61b1b181a99bb6837f76ddcf5.jpg
|
| 145 |
+
FAMILY_SAFE,/data/imgs/2b96cec7-f87b6da37656aef1c82f6841cdfd216a.jpg
|
| 146 |
+
SUGGESTIVE,/data/imgs/a4651f0f-f8714d6a5bafd4d86377bf04957f37e5.jpg
|
| 147 |
+
FAMILY_SAFE,/data/imgs/fee5f161-f8856cf1b3bd39861cb9f95337cd0992.jpg
|
| 148 |
+
FAMILY_SAFE,/data/imgs/26999a9e-f8869ae287068ce36b4b05663da6713a.jpg
|
| 149 |
+
UNCERTAIN,/data/imgs/2d689dc9-f852dde27ecdc40533bb40683087f7e1.jpg
|
| 150 |
+
SUGGESTIVE,/data/imgs/207cc31f-f86351d67e2629dc35f1e524915fcd11.jpg
|
| 151 |
+
UNCERTAIN,/data/imgs/f3898f2e-f8447631bc00c8f2467b1a20ee6bfa78.jpg
|
| 152 |
+
UNCERTAIN,/data/imgs/8cb018af-f8542037683b99dbc67c7f7d6c5a46b3.jpg
|
| 153 |
+
FAMILY_SAFE,/data/imgs/5d6063fc-f822f1d61d47f66997ce6f86c974a4a4.jpg
|
| 154 |
+
SUGGESTIVE,/data/imgs/57bec3b8-f8222b4da2ca05b7b639120cac5f92f2.jpg
|
| 155 |
+
UNCERTAIN,/data/imgs/918752f9-f7e4163d39bf966f1d403bfcf469cc5f.jpg
|
| 156 |
+
SUGGESTIVE,/data/imgs/bdce8a23-f7f267f10da481cbc97981f022b36a07.jpg
|
| 157 |
+
SUGGESTIVE,/data/imgs/d9e26b6c-f7de775f4820d021c70c42e8785c047b.jpg
|
| 158 |
+
UNCERTAIN,/data/imgs/654d822f-f7e1c87ca29b75a4e59263db1e0f59a1.jpg
|
| 159 |
+
FAMILY_SAFE,/data/imgs/13f55350-f7c55782f457e6c3c4a17c4f4254a946.jpg
|
| 160 |
+
UNCERTAIN,/data/imgs/bf4fd201-f7aa8582cc615c5efc747a723ed54f9e.jpg
|
| 161 |
+
UNCERTAIN,/data/imgs/6520255c-f79bc54aa05611d22b65098a11e71a34.jpg
|
| 162 |
+
UNCERTAIN,/data/imgs/e7695c72-f7761769f7463d55a2df9300c743a324.jpg
|
| 163 |
+
UNCERTAIN,/data/imgs/681dcc99-f77695115dd9a221c2239aece214b49e.jpg
|
| 164 |
+
SUGGESTIVE,/data/imgs/bc15263c-f745fcf48c946c9d4393fd48f4cffc0e.jpg
|
| 165 |
+
UNCERTAIN,/data/imgs/88c7b383-f7303e5b824a66239e6afcd87a8ef62f.jpg
|
| 166 |
+
SUGGESTIVE,/data/imgs/9342d436-f73693da56901519a595fead5f85d069.jpg
|
| 167 |
+
SUGGESTIVE,/data/imgs/1bfa81bf-f71e69c1823525251dc2201172364595.jpg
|
| 168 |
+
FAMILY_SAFE,/data/imgs/37fbd106-f72a254e0142a25852937f68f91eeff0.jpg
|
| 169 |
+
UNCERTAIN,/data/imgs/75ec4326-f6f57e02e3025fda7e6587ada129b5da.jpg
|
| 170 |
+
UNCERTAIN,/data/imgs/112d370c-f6e10f65554a282ad88561eb6606b673.jpg
|
| 171 |
+
FAMILY_SAFE,/data/imgs/258f99f7-f6cc5af7cdd7d677b39960916ddce332.jpg
|
| 172 |
+
SUGGESTIVE,/data/imgs/e654ed6f-f6a9eed8dbdaaebe8483cb023b1cc155.jpg
|
| 173 |
+
SUGGESTIVE,/data/imgs/32c60d49-f6afce2e8ed7f791361d5f859faf6f93.jpg
|
| 174 |
+
FAMILY_SAFE,/data/imgs/8e037415-f6b1bdcd5cc1123f61514494633c0261.jpg
|
| 175 |
+
SUGGESTIVE,/data/imgs/1a95de13-f6a20f3450549f295c9d440e3b50fe4b.jpg
|
| 176 |
+
SUGGESTIVE,/data/imgs/d8e036ec-f69ba433d87943ba7fe96bdee75c0633.jpg
|
| 177 |
+
FAMILY_SAFE,/data/imgs/150cadee-f6913caa3c66a906611cd76004dc0e89.jpg
|
| 178 |
+
SUGGESTIVE,/data/imgs/d45cdae6-f69459f653bf0a475f7003c64ad87484.jpg
|
| 179 |
+
UNCERTAIN,/data/imgs/3ba7cebd-f67d4c2318dfb10031f4d3a40e767467.jpg
|
| 180 |
+
SUGGESTIVE,/data/imgs/b947afc5-f68da9a3284e87b939e43ed78c2ba697.jpg
|
| 181 |
+
SUGGESTIVE,/data/imgs/548c342e-f6555d7bd2ce56360984e39d06eb6d3e.jpg
|
| 182 |
+
SUGGESTIVE,/data/imgs/2d8b3b40-f6502184b0f514712ec44e93e4cf38ed.jpg
|
| 183 |
+
SUGGESTIVE,/data/imgs/8d9e6ed8-f60a078c2adb5e2ed7984643b1a3d6ad.jpg
|
| 184 |
+
UNCERTAIN,/data/imgs/915ec646-f60d0a9ef35ff32f41167f002f604218.jpg
|
| 185 |
+
SUGGESTIVE,/data/imgs/ac9956e6-f61b32b46a5df8b7604a567f4101de1a.jpg
|
| 186 |
+
UNCERTAIN,/data/imgs/38e3e29f-f6096fb5a8815393de8d3ce6046dcfa0.jpg
|
| 187 |
+
SUGGESTIVE,/data/imgs/4cd02552-f627490d7770e822b0646ecc26314049.jpg
|
| 188 |
+
FAMILY_SAFE,/data/imgs/96423c5a-f5d25e48cb07c00f6b4749341afd4fe9.jpg
|
| 189 |
+
UNCERTAIN,/data/imgs/b2bdb576-f5f0b5059aa1f31f18454612c7b44cb4.jpg
|
| 190 |
+
FAMILY_SAFE,/data/imgs/d9b4f6e3-f5f15fde94650b49c19b1108e7baacaa.jpg
|
| 191 |
+
SUGGESTIVE,/data/imgs/78e1ef6c-f5f68931f14533c57ecfef9acb38dc7d.jpg
|
| 192 |
+
SUGGESTIVE,/data/imgs/95214b1d-f5fbc4a6c74108a929561383bb572cd4.jpg
|
| 193 |
+
FAMILY_SAFE,/data/imgs/52f9323f-f5a0911271d9a6ed11455f9f6ff7eb66.jpg
|
| 194 |
+
FAMILY_SAFE,/data/imgs/437ce914-f5c13ab4ed01cc7efd808da48b8a5457.jpg
|
| 195 |
+
UNCERTAIN,/data/imgs/3472223a-f5996eb32ca496db64f8988cee9a8878.jpg
|
| 196 |
+
SUGGESTIVE,/data/imgs/79fb6415-f57b16711597d1da4c6c22c57af8a35a.jpg
|
| 197 |
+
SUGGESTIVE,/data/imgs/8b7383e6-f57fb11b1c8484d4642295155ba8db7b.jpg
|
| 198 |
+
SUGGESTIVE,/data/imgs/ae1beb31-f58d8b3fa1b33fbccd8c8d71e0fe1a2c.jpg
|
| 199 |
+
FAMILY_SAFE,/data/imgs/6be40274-f55c44bbbe7e56c04a616cd84479e46f.jpg
|
| 200 |
+
SUGGESTIVE,/data/imgs/79a2f826-f55deb0d18263824d1cef3e9ab9f1785.jpg
|
| 201 |
+
FAMILY_SAFE,/data/imgs/eb3f6ce4-f572b605f472227d2aa10d6905b535e3.jpg
|
| 202 |
+
SUGGESTIVE,/data/imgs/86690dd2-f573acc9c7d68bfa33ffaf904bdcbee1.jpg
|
| 203 |
+
FAMILY_SAFE,/data/imgs/cb81d853-f5641be3510ca443208381edefb8dab9.jpg
|
| 204 |
+
UNCERTAIN,/data/imgs/f3e026cb-f55636ad8ac978de1925576a495326e8.jpg
|
| 205 |
+
FAMILY_SAFE,/data/imgs/dd964efd-f543f9d63f3caf812049461fe8e82f66.jpg
|
| 206 |
+
SUGGESTIVE,/data/imgs/cddc368c-f555bcb967a62b3420b1563eabf14e03.jpg
|
| 207 |
+
FAMILY_SAFE,/data/imgs/8a1bce2e-f531a8694f3e826cc46790d3d2d210f3.jpg
|
| 208 |
+
FAMILY_SAFE,/data/imgs/4580faae-f532a291cff7ba273fcfbd81e466147a.jpg
|
| 209 |
+
SUGGESTIVE,/data/imgs/cd5e94e9-f4eed19eaa6f1a5b7f3bf3fdab620193.jpg
|
| 210 |
+
SUGGESTIVE,/data/imgs/e0abb514-f4f6cec6badab17d10b40557e6e9ceae.jpg
|
| 211 |
+
SUGGESTIVE,/data/imgs/3265ae1c-f4f91efff09fee24636b9b50d58fcf25.jpg
|
| 212 |
+
SUGGESTIVE,/data/imgs/e2e7bbee-f4f964fc3d06d2990c04caa8fc0e5295.jpg
|
| 213 |
+
SUGGESTIVE,/data/imgs/8f9b1b13-f4fe1ba40065807edb72c03485dff3d2.jpg
|
| 214 |
+
SUGGESTIVE,/data/imgs/9ee74b02-f50238c6721caa983df9656eef22236b.jpg
|
| 215 |
+
SUGGESTIVE,/data/imgs/97429c97-f50926a996167d5a55ea0e3260627572.jpg
|
| 216 |
+
SUGGESTIVE,/data/imgs/6775a784-f5072276faee8d0385236b2937d48a33.jpg
|
| 217 |
+
FAMILY_SAFE,/data/imgs/735adacd-f4d811181ca6367340272ea2817eebb6.jpg
|
| 218 |
+
SUGGESTIVE,/data/imgs/f2450298-f4e7b715922c1d07a2f7501b722bb12e.jpg
|
| 219 |
+
SUGGESTIVE,/data/imgs/a04ba9a7-f4aee07e50f09863edf149352e42f73e.jpg
|
| 220 |
+
SUGGESTIVE,/data/imgs/cdff04e2-f4c226e68f48b630dfd5b8f032c281f3.jpg
|
| 221 |
+
UNCERTAIN,/data/imgs/1c2faeb4-f4c868518f6194c3d708d889b79c4357.jpg
|
| 222 |
+
UNCERTAIN,/data/imgs/da36d596-f48abfffe24a134a2605d63c095d5601.jpg
|
| 223 |
+
SUGGESTIVE,/data/imgs/9e7afccb-f49cbda7d6c418aa68c47ac16678be9d.jpg
|
| 224 |
+
FAMILY_SAFE,/data/imgs/62a97430-f49d857cb54b7ad2a3a8bcd6c85a76d2.jpg
|
| 225 |
+
FAMILY_SAFE,/data/imgs/f79720c4-f49f729c28e9aafef241b3e5d1365ebb.jpg
|
| 226 |
+
SUGGESTIVE,/data/imgs/1fa27620-f46fcea94e5309ef137996d590f947a8.jpg
|
| 227 |
+
FAMILY_SAFE,/data/imgs/a8f6045f-f44bd04a46d585f08df78d744a9920e0.jpg
|
| 228 |
+
SUGGESTIVE,/data/imgs/9d5f7026-f442e9b50f65ce8e992c2d6d99045422.jpg
|
| 229 |
+
FAMILY_SAFE,/data/imgs/d87227e3-f4591e17584e87f5ae145946468488a1.jpg
|
| 230 |
+
UNCERTAIN,/data/imgs/5c828279-f45776fd9cff138a422bc299fda11907.jpg
|
| 231 |
+
SUGGESTIVE,/data/imgs/5c339677-f450689a8cf22e1c4471ef894ea28a81.jpg
|
| 232 |
+
SUGGESTIVE,/data/imgs/b47e520f-f453124a40f3bdbbe0c9dfe4996b6844.jpg
|
| 233 |
+
SUGGESTIVE,/data/imgs/3a55ff4b-f40d7fc2218b3f42761e7abe785c7785.jpg
|
| 234 |
+
UNCERTAIN,/data/imgs/ab4e8b9b-f433c523573d6c17da4f5f3da31fec75.jpg
|
| 235 |
+
FAMILY_SAFE,/data/imgs/c5a2e52f-f412680ce7ff76d5c276884092c008f3.jpg
|
| 236 |
+
FAMILY_SAFE,/data/imgs/2707ecab-f432252b9d85a485c9e4b3097633f71e.jpg
|
| 237 |
+
SUGGESTIVE,/data/imgs/79a56ecc-f3e1b0aced852718d2b2cc7208728b62.jpg
|
| 238 |
+
FAMILY_SAFE,/data/imgs/84efc00c-f3ebae6cdb55ebee567dc5937d26f433.jpg
|
| 239 |
+
SUGGESTIVE,/data/imgs/916b7794-f3f76e5bd2aae5290c40831d2dba06fb.jpg
|
| 240 |
+
SUGGESTIVE,/data/imgs/0c0ff4f4-f3b7d61057e3aabc5c1f2fa2e1d91f80.jpg
|
| 241 |
+
FAMILY_SAFE,/data/imgs/de3532f8-f3c6565d9b0b5b4a9ea5791663a1cb98.jpg
|
| 242 |
+
FAMILY_SAFE,/data/imgs/53a286c2-f3a74abc0a833c5b5b69b06d3530b13c.jpg
|
| 243 |
+
SUGGESTIVE,/data/imgs/b80429f0-f3a782299db638313bc78a42fe799566.jpg
|
| 244 |
+
SUGGESTIVE,/data/imgs/c5926927-f392b17c19a743f54238920721a05483.jpg
|
| 245 |
+
SUGGESTIVE,/data/imgs/aaba3830-f392495a6934f1189fab05eeb50e6fd9.jpg
|
| 246 |
+
SUGGESTIVE,/data/imgs/52172c96-f379ca12e1aa320afc400fb76fb2c470.jpg
|
| 247 |
+
SUGGESTIVE,/data/imgs/6e49273c-f36c6d209021488c8bf51e89c19f58fb.jpg
|
| 248 |
+
UNCERTAIN,/data/imgs/920afa72-f3537cd026f876e2535d657df257076c.jpg
|
| 249 |
+
UNCERTAIN,/data/imgs/7e9fe457-f366645e8bc5d7b1122603ec99290bc2.jpg
|
| 250 |
+
SUGGESTIVE,/data/imgs/10f36423-f30e3a374309519194229b8153c51588.jpg
|
| 251 |
+
FAMILY_SAFE,/data/imgs/cd3dd942-f32a3c9a3b2b2f5fa7be6f8c73ae293b.jpg
|
| 252 |
+
UNCERTAIN,/data/imgs/aac071e6-f32bb35b2b035066b5f7d88a1a27c0d7.jpg
|
| 253 |
+
FAMILY_SAFE,/data/imgs/678d2056-f33cf9e01fb72fc6dce190f37c65c2dd.jpg
|
| 254 |
+
FAMILY_SAFE,/data/imgs/965c31ef-f2f78f897ad0a224175515bbde549e2e.jpg
|
| 255 |
+
UNCERTAIN,/data/imgs/579612c2-f2fa9ecf3da8d00302338efa4f87123c.jpg
|
| 256 |
+
SUGGESTIVE,/data/imgs/9f66f820-f2fae6e2500b65f269b5e6de80996f17.jpg
|
| 257 |
+
SUGGESTIVE,/data/imgs/75006524-f30c43c00748e7912ce105d616264ca8.jpg
|
| 258 |
+
FAMILY_SAFE,/data/imgs/7c688d00-f3066b02932fbc939c22e9c3bb8e942a.jpg
|
| 259 |
+
SUGGESTIVE,/data/imgs/3174b410-f2f05fc8d36aa9b2d14d9a0eed30416a.jpg
|
| 260 |
+
UNCERTAIN,/data/imgs/c43cb7fb-f2f33b9d050b1eec02c29464f036d292.jpg
|
| 261 |
+
SUGGESTIVE,/data/imgs/55e1d1ac-f2b9d5dc127dddd36b113f2719d89a97.jpg
|
| 262 |
+
FAMILY_SAFE,/data/imgs/26f72a43-f2b9d6126ecc23b075d1c1acc8fe340d.jpg
|
| 263 |
+
FAMILY_SAFE,/data/imgs/a6eee7e4-f2d5d25ff62ef48331c529bf26e170d4.jpg
|
| 264 |
+
SUGGESTIVE,/data/imgs/6583b10b-f2aae7afc3a013755b2365cb2942dc64.jpg
|
| 265 |
+
SUGGESTIVE,/data/imgs/3dc4ad74-f27b0f685d9b622d7ff36bdd97f72831.jpg
|
| 266 |
+
UNCERTAIN,/data/imgs/6a8274e7-f2801326462d460409fa733227426003.jpg
|
| 267 |
+
SUGGESTIVE,/data/imgs/7e1849f3-f26a9865a58639d9b17de158040c8d99.jpg
|
| 268 |
+
SUGGESTIVE,/data/imgs/e4ae160c-f26b087c218148a8ca3f2e96e12d7a1b.jpg
|
| 269 |
+
SUGGESTIVE,/data/imgs/4f4b4d5f-f26d88ffcd70edc8984c024f2de1ca39.jpg
|
| 270 |
+
SUGGESTIVE,/data/imgs/55668d0d-f2691c288c683bcf94651a0bbffe21ad.jpg
|
| 271 |
+
FAMILY_SAFE,/data/imgs/302fc960-f24d9b56d05bdf13a83cfabd87f8e5af.jpg
|
| 272 |
+
SUGGESTIVE,/data/imgs/da992908-f24efb4f9760b0e7fbb3fcf77dba0891.jpg
|
| 273 |
+
SUGGESTIVE,/data/imgs/09535428-f244b1f6799b0610306318fa09e744c4.jpg
|
| 274 |
+
FAMILY_SAFE,/data/imgs/6b3255e8-f20ecb2425f29d21d4047bec13a2babb.jpg
|
| 275 |
+
SUGGESTIVE,/data/imgs/3d3f89e4-f20eef0275884df087aefc827000488a.jpg
|
| 276 |
+
FAMILY_SAFE,/data/imgs/476d2b62-f21375899b6c734ba68a8f2a74990efb.jpg
|
| 277 |
+
FAMILY_SAFE,/data/imgs/2821adf9-f20de5b6356da5f1e38626064c8ac85e.jpg
|
| 278 |
+
SUGGESTIVE,/data/imgs/78dd5846-f1b48acd52be4f8693ed99170c2a044c.jpg
|
| 279 |
+
SUGGESTIVE,/data/imgs/7d5de576-f1c966431895a337d35d9ec3a7470b17.jpg
|
| 280 |
+
SUGGESTIVE,/data/imgs/8cf1683d-f1d11292af5391d00957494b8b58f315.jpg
|
| 281 |
+
SUGGESTIVE,/data/imgs/59b576bf-f1a168d27daac1da3571fcbcce7c1ebd.jpg
|
| 282 |
+
UNCERTAIN,/data/imgs/8f0ff5de-f18c7dac0d1162379e292b0e4b9e22ce.jpg
|
| 283 |
+
SUGGESTIVE,/data/imgs/3d83aaea-f186d77202e18462443a8c7ffc449919.jpg
|
| 284 |
+
SUGGESTIVE,/data/imgs/d4d29b7b-f162dbe9bf0b44a6f2ddb910d725d56b.jpg
|
| 285 |
+
SUGGESTIVE,/data/imgs/c6f24a4d-f1646b36bb33f474b8f66c112bf97cc3.jpg
|
| 286 |
+
FAMILY_SAFE,/data/imgs/9d710615-f1712c2ed94b10ffedda4e1ea6e56fa9.jpg
|
| 287 |
+
SUGGESTIVE,/data/imgs/c325de0e-f16866c512ca721aa3ba3b2129e4b66f.jpg
|
| 288 |
+
SUGGESTIVE,/data/imgs/c9983270-f1643668073aa69e7f2b505d1b237098.jpg
|
| 289 |
+
SUGGESTIVE,/data/imgs/ff926dbf-f12e5c2510e88db3c8fdf32aa7968f9d.jpg
|
| 290 |
+
SUGGESTIVE,/data/imgs/edbf7bc4-f13bac93da13444f529aa1c821731161.jpg
|
| 291 |
+
SUGGESTIVE,/data/imgs/d3721c85-f126f5fa7fd6939084fa439a5c194f18.jpg
|
| 292 |
+
SUGGESTIVE,/data/imgs/b5e5e620-f126f93e4853f89a6e25b661040dc314.jpg
|
| 293 |
+
SUGGESTIVE,/data/imgs/10135976-f1243b33b2f6d754c9bc9da9e8de97e4.jpg
|
| 294 |
+
SUGGESTIVE,/data/imgs/b81fe122-f1404d9866f6128bd44a1eaee0a39cf7.jpg
|
| 295 |
+
SUGGESTIVE,/data/imgs/f3d934fc-f14861197568fd42d5a3a8f39a8970b9.jpg
|
| 296 |
+
SUGGESTIVE,/data/imgs/34496229-f104ed4e8f3c30e2fa8ddfbd3332b413.jpg
|
| 297 |
+
SUGGESTIVE,/data/imgs/849c7056-f0b773be242aee171c66e49b6c3dfb63.jpg
|
| 298 |
+
SUGGESTIVE,/data/imgs/c6d20edb-f0c80a1febd6aeb4ed6ccaf3fd82760a.jpg
|
| 299 |
+
FAMILY_SAFE,/data/imgs/906d1fce-f0ca8c9fdee2f995b567b0626cdadcac.jpg
|
| 300 |
+
SUGGESTIVE,/data/imgs/f638acd0-f0d3205ee8ebe32b2d53f1ad223e9818.jpg
|
| 301 |
+
SUGGESTIVE,/data/imgs/da3f5f03-f0dd8d4ac7e466a7a233905f8db38a1c.jpg
|
| 302 |
+
SUGGESTIVE,/data/imgs/c2917e19-f06b1f090a5e2f8b788720ce4489183a.jpg
|
| 303 |
+
FAMILY_SAFE,/data/imgs/698e9ebb-f06d35d37cacac0d69db96016e0c182f.jpg
|
| 304 |
+
SUGGESTIVE,/data/imgs/4696edaa-f06eb7893da319aec3f0de768a1a845d.jpg
|
| 305 |
+
UNCERTAIN,/data/imgs/ad86327f-f08abc73a82adca2bbb2304c62991458.jpg
|
| 306 |
+
SUGGESTIVE,/data/imgs/7713ccd7-f08c1d5efaa9ae3e99274ef65dbc7cc4.jpg
|
| 307 |
+
SUGGESTIVE,/data/imgs/88e6096c-f0809c968c34e21b25ef28da489b68fd.jpg
|
| 308 |
+
FAMILY_SAFE,/data/imgs/524bc0ae-f06772600ff35982e30ec813edb89dc2.jpg
|
| 309 |
+
FAMILY_SAFE,/data/imgs/3d31944e-f049c93ef72e3bd5edbf919222d2d1ae.jpg
|
| 310 |
+
SUGGESTIVE,/data/imgs/47efba26-f0445c4671cbf87f6be472f5102475c2.jpg
|
| 311 |
+
SUGGESTIVE,/data/imgs/fa8fe379-f0357ced6ed7226ecfd6bc274c3e8a5b.jpg
|
| 312 |
+
SUGGESTIVE,/data/imgs/475a96b3-eff990daac3ddb54436bad2cc950abb3.jpg
|
| 313 |
+
SUGGESTIVE,/data/imgs/fa249f4f-efb7440d597d698c5442b03cc11096ab.jpg
|
| 314 |
+
SUGGESTIVE,/data/imgs/b10f30c8-efc08bbcc30ce2804f50c73ff07cffec.jpg
|
| 315 |
+
SUGGESTIVE,/data/imgs/faba1751-efc073e437c18987a2f1476da3de0b3a.jpg
|
| 316 |
+
SUGGESTIVE,/data/imgs/0098546d-efd85646ed2bdbc974b9c3c579691730.jpg
|
| 317 |
+
SUGGESTIVE,/data/imgs/b4635fff-efef5f2439ee81918faf609d5a0aa163.jpg
|
| 318 |
+
SUGGESTIVE,/data/imgs/4c7faf4b-efef22ec0ad48c3b2f51c82dcb9565e6.jpg
|
| 319 |
+
SUGGESTIVE,/data/imgs/e9be5783-efa81f12be12471dd91827cfb74404a9.jpg
|
| 320 |
+
SUGGESTIVE,/data/imgs/0df8255e-efaa8dd97b36b54c67356ca6c1500791.jpg
|
| 321 |
+
SUGGESTIVE,/data/imgs/e96341ac-ef6a78b93788b6cab069d01b92516ec6.jpg
|
| 322 |
+
SUGGESTIVE,/data/imgs/2a7d0d01-ef6b436f284fd4c6a95adef2c0dc0555.jpg
|
| 323 |
+
SUGGESTIVE,/data/imgs/e764a81b-ef7d423ff22abad26fcdc945e31dca5b.jpg
|
| 324 |
+
SUGGESTIVE,/data/imgs/6ffc5735-ef70be698e9f8dbd29dacb15ac4d0ec9.jpg
|
| 325 |
+
SUGGESTIVE,/data/imgs/98ce088a-ef76eea72ea523ba10369ff89f844b8d.jpg
|
| 326 |
+
SUGGESTIVE,/data/imgs/772bc39c-ef4a21bca7ceab6a75e2a5fd738408d9.jpg
|
| 327 |
+
SUGGESTIVE,/data/imgs/7207626d-ef378dd1f4004be18abc11bef3c80de4.jpg
|
| 328 |
+
SUGGESTIVE,/data/imgs/281a7d11-ef4790408c0eb4ad41d481796a8d76fd.jpg
|
| 329 |
+
FAMILY_SAFE,/data/imgs/15072791-ef0a3b5c272d10607604167b4bc37034.jpg
|
| 330 |
+
UNCERTAIN,/data/imgs/6dc70b1e-ef1026a33c894d18a1a1f32922017fbf.jpg
|
| 331 |
+
SUGGESTIVE,/data/imgs/c8740c8b-eedc4a75b4521825dd368a81324741e4.jpg
|
| 332 |
+
UNCERTAIN,/data/imgs/dcfb8a01-eebd67e28f811ad93ce45d7a22c9a280.jpg
|
| 333 |
+
SUGGESTIVE,/data/imgs/9283a4a4-eed2a73a4dc7506b1ce5042c0d86a41f.jpg
|
| 334 |
+
SUGGESTIVE,/data/imgs/d9b69ac8-eed7b464c9a9d59069f62bd631953120.jpg
|
| 335 |
+
UNCERTAIN,/data/imgs/81f42f14-ee9ba96fe055cbfa17dbe24799365177.jpg
|
| 336 |
+
SUGGESTIVE,/data/imgs/5878b83e-ee9dc9d669cf306bf6bf04dfaf3b1c9d.jpg
|
| 337 |
+
SUGGESTIVE,/data/imgs/e31a796f-eea76211c790d725a7dd027a99213afb.jpg
|
| 338 |
+
SUGGESTIVE,/data/imgs/a4c89124-eeaa866b8633bedc8034bce163670339.jpg
|
| 339 |
+
SUGGESTIVE,/data/imgs/35909ea6-eeab35797f69d18b0187e08c5549efb6.jpg
|
| 340 |
+
SUGGESTIVE,/data/imgs/da887e4a-eeb5d0dbe82e36107e2af75b20ab17c7.jpg
|
| 341 |
+
SUGGESTIVE,/data/imgs/75ab9401-eebbd19e449133670a58baff0fa109ec.jpg
|
| 342 |
+
SUGGESTIVE,/data/imgs/e75f4995-eebcec31909a43812f2334fb37807008.jpg
|
| 343 |
+
SUGGESTIVE,/data/imgs/de0c936f-ee8a39d9411e2cd46e726afe1c5a4895.jpg
|
| 344 |
+
FAMILY_SAFE,/data/imgs/e2e721c6-ee8c7ace06eac5eecd8b709b93976d0b.jpg
|
| 345 |
+
SUGGESTIVE,/data/imgs/6828a485-ee90a0e72628f9dc27de80e5ce701bc2.jpg
|
| 346 |
+
FAMILY_SAFE,/data/imgs/ef0ac7d6-ee890fafca12595501b30093d54320af.jpg
|
| 347 |
+
UNCERTAIN,/data/imgs/eb7e0cef-ee93704434f4aa96859be27f8b04f4ca.jpg
|
| 348 |
+
FAMILY_SAFE,/data/imgs/6127f82d-ee4fad4fd52e6f1dc5121d1965a31e61.jpg
|
| 349 |
+
FAMILY_SAFE,/data/imgs/cc55d5b2-ee745023dec8ba83a3b401aaa5a34f2d.jpg
|
| 350 |
+
SUGGESTIVE,/data/imgs/ae6d504b-ee44eff2d80d58e6f2c6122fcc468c63.jpg
|
| 351 |
+
UNCERTAIN,/data/imgs/5fee8ad9-ee435d2ab53c469e63808c8d60c6351e.jpg
|
| 352 |
+
SUGGESTIVE,/data/imgs/a0a2d935-ee166c5de961d809600d8a47a8284e7e.jpg
|
| 353 |
+
FAMILY_SAFE,/data/imgs/8a5bf427-ee3086dce1a61b091b09bb8bf460d671.jpg
|
| 354 |
+
FAMILY_SAFE,/data/imgs/305abb91-ede68be22f91fbddc1f4e072b05c0ae5.jpg
|
| 355 |
+
SUGGESTIVE,/data/imgs/429234c0-edf1ded0501e179112b516a99a58f6b3.jpg
|
| 356 |
+
FAMILY_SAFE,/data/imgs/90e7a11a-edf5de76bd4db7ec201caf452ffd1519.jpg
|
| 357 |
+
SUGGESTIVE,/data/imgs/357576cd-edbca137d1801a86d305e4ad3f3a6305.jpg
|
| 358 |
+
SUGGESTIVE,/data/imgs/274e3d8d-edcdf84578e3103a185073e581089641.jpg
|
| 359 |
+
SUGGESTIVE,/data/imgs/09696d76-edd88c179c4b8d37223a74e58757921b.jpg
|
| 360 |
+
SUGGESTIVE,/data/imgs/2befe926-eddca7fbfe13ebce00a268c70550b580.jpg
|
| 361 |
+
UNCERTAIN,/data/imgs/dd0a59aa-edddf271573716e8e4e571451c634b85.jpg
|
| 362 |
+
FAMILY_SAFE,/data/imgs/52784190-ed8db5c9ad94f3f769b504dba5d12f3c.jpg
|
| 363 |
+
UNCERTAIN,/data/imgs/7c8e5c47-ed9f73ea5150c7871fa9ab71e2808929.jpg
|
| 364 |
+
SUGGESTIVE,/data/imgs/23660c64-ed78b3d3e8cf8fa817e55818ef219f2f.jpg
|
| 365 |
+
SUGGESTIVE,/data/imgs/36ccdc32-ed9326789faddcf165c85c0c46e61892.jpg
|
| 366 |
+
SUGGESTIVE,/data/imgs/eae0b0ad-eda271d3e424bcbddf17ba2795ca31ab.jpg
|
| 367 |
+
FAMILY_SAFE,/data/imgs/7817ce56-edb7db1fcb69296415e2f32cd5cac1ba.jpg
|
| 368 |
+
FAMILY_SAFE,/data/imgs/7151cdf8-edb3802789ea655bda76512662ef16fd.jpg
|
| 369 |
+
SUGGESTIVE,/data/imgs/420c8652-ed4fa0d4320a9474fcdbf9f260d5ccd9.jpg
|
| 370 |
+
SUGGESTIVE,/data/imgs/f12d507b-ed6ad32bca5a4012c154cea7d74675c1.jpg
|
| 371 |
+
SUGGESTIVE,/data/imgs/ea78c268-ed59c63ff419564a0091bf4dba0db57b.jpg
|
| 372 |
+
SUGGESTIVE,/data/imgs/8bc1df46-ed684d1f722a3e6fd6644a086a941908.jpg
|
| 373 |
+
FAMILY_SAFE,/data/imgs/6ac74b20-ed0dd06c432216aa905a2732eb14d356.jpg
|
| 374 |
+
UNCERTAIN,/data/imgs/f88fee24-ed21cb4f07ee87064a3203c18fd4cce1.jpg
|
| 375 |
+
FAMILY_SAFE,/data/imgs/2f604374-ed22e47a89b289fcddbd58d84fe4af7a.jpg
|
| 376 |
+
FAMILY_SAFE,/data/imgs/3afea32d-ece69a65ed45a3edf1fc00efbbfaedb7.jpg
|
| 377 |
+
SUGGESTIVE,/data/imgs/e4e420e1-ece99c6f98d2a711d94c11bb54cce29f.jpg
|
| 378 |
+
FAMILY_SAFE,/data/imgs/c356522a-ed0ab3e1587ed20eeace37e94f8d54ba.jpg
|
| 379 |
+
FAMILY_SAFE,/data/imgs/a9f4ce1f-ed0b80d5b8a1a6cd023555b1695c5037.jpg
|
| 380 |
+
FAMILY_SAFE,/data/imgs/5822bed3-ed0c697143d8cfcf7772d205537c1a53.jpg
|
| 381 |
+
UNCERTAIN,/data/imgs/8d880f44-ed01e05d1b0f341627595626f0d1fc19.jpg
|
| 382 |
+
UNCERTAIN,/data/imgs/d513daab-ed0590024f5fe63e2dca696949cd4a3b.jpg
|
| 383 |
+
SUGGESTIVE,/data/imgs/c80032d6-ecd074a8a73aafc255fb87c50ab46d32.jpg
|
| 384 |
+
SUGGESTIVE,/data/imgs/5cb76bcd-ecd461884c7d815ca300840ac7dff722.jpg
|
| 385 |
+
SUGGESTIVE,/data/imgs/475e3763-ecab477c7f479d98386c20ed15ddc8ed.jpg
|
| 386 |
+
SUGGESTIVE,/data/imgs/38faa256-ecb96a10b5007cac877671cd626e11bc.jpg
|
| 387 |
+
FAMILY_SAFE,/data/imgs/0a0d8662-ecb215bf839692ed00a48cf006405234.jpg
|
| 388 |
+
SUGGESTIVE,/data/imgs/fe38b006-ec912c8d68846d3d4cae46a6dc2e2e67.jpg
|
| 389 |
+
SUGGESTIVE,/data/imgs/61198ea6-eca396464fb1343904128cac952dccba.jpg
|
| 390 |
+
SUGGESTIVE,/data/imgs/f42a237d-ec8ba9e30ab570db99c521c4d75e877a.jpg
|
| 391 |
+
FAMILY_SAFE,/data/imgs/9ea2a68b-ec75da7bce977ab4b2d77224ad0ed08d.jpg
|
| 392 |
+
SUGGESTIVE,/data/imgs/b19e9aff-ec7752c4445664d6a594779d0cba33a6.jpg
|
| 393 |
+
FAMILY_SAFE,/data/imgs/cb8a1b42-ec4ed6c5f59cd751b1d4a8cbd5ef9730.jpg
|
| 394 |
+
SUGGESTIVE,/data/imgs/11f16074-ec4f3a4fceac2b83221995baa3ce6138.jpg
|
| 395 |
+
FAMILY_SAFE,/data/imgs/cf990f78-ec4898ce293c0fce9e3df490ef83741d.jpg
|
| 396 |
+
FAMILY_SAFE,/data/imgs/958ec76b-ec5156a1d4dad967c4ed14a44fc9c10f.jpg
|
| 397 |
+
FAMILY_SAFE,/data/imgs/b1c40d0c-ec5965d57ca71e648adc70401156b743.jpg
|
| 398 |
+
SUGGESTIVE,/data/imgs/5c8c7c7e-ec3c4b7b7261c385c7792663a153b2dc.jpg
|
| 399 |
+
SUGGESTIVE,/data/imgs/c8925d60-ec2488d58f5c6f80593119f44bdb6f36.jpg
|
| 400 |
+
SUGGESTIVE,/data/imgs/783f692a-ec3873aa10b64f2c5c0ae4044d8dd916.jpg
|
| 401 |
+
SUGGESTIVE,/data/imgs/c59d6aef-ec366037d7416be3f574f23f7e0fb3ef.jpg
|
| 402 |
+
UNCERTAIN,/data/imgs/ba90116c-ebfda352bd5113859294aff74239faed.jpg
|
| 403 |
+
FAMILY_SAFE,/data/imgs/74013397-ebfe9c315f7eba7ee13ffecfbe52cab8.jpg
|
| 404 |
+
SUGGESTIVE,/data/imgs/2827b91c-ec1a1c97dab7c740188280a871b78251.jpg
|
| 405 |
+
SUGGESTIVE,/data/imgs/07efebe4-ebd3a3a173aa3985f69c95a9bbeec91a.jpg
|
| 406 |
+
SUGGESTIVE,/data/imgs/34018f60-ebe7ee3f3605c66f1be4eb323e3ae05f.jpg
|
| 407 |
+
SUGGESTIVE,/data/imgs/a2dd1244-ebe59192b6950204b3fee2c0edf9242d.jpg
|
| 408 |
+
UNCERTAIN,/data/imgs/670193c9-ebef8223abe988c0821aefae3c6e6e98.jpg
|
| 409 |
+
SUGGESTIVE,/data/imgs/c91cb641-ebf05bafa1371d6feb6aa81ea7cbbf7a.jpg
|
| 410 |
+
SUGGESTIVE,/data/imgs/e91af0b1-ebf0503fe32e2e3a76346007e4aaf886.jpg
|
| 411 |
+
FAMILY_SAFE,/data/imgs/5fddd072-ebb2b0dd48dc25f919f57ff2a2e7312a.jpg
|
| 412 |
+
UNCERTAIN,/data/imgs/26c7e03e-ebcf6c5f871a5dc3e6e9f035bf8fba78.jpg
|
| 413 |
+
SUGGESTIVE,/data/imgs/19060fc3-ebd170644a805b3966416bc6f2d40528.jpg
|
| 414 |
+
SUGGESTIVE,/data/imgs/6a2a26d9-eb8a6ed9fea3fd6949774e598fed9d20.jpg
|
| 415 |
+
SUGGESTIVE,/data/imgs/61cf0086-eb8d76f9ea022d2b18f119288e0fb083.jpg
|
| 416 |
+
SUGGESTIVE,/data/imgs/71c87364-eb9f10122a8e23579c8d1a2cdc0e8db4.jpg
|
| 417 |
+
SUGGESTIVE,/data/imgs/9eebe5b1-eb905d1b7fc7b0eac9adea12bee291bc.jpg
|
| 418 |
+
SUGGESTIVE,/data/imgs/b7ac5915-eb915f5d723fe6d575e7471e8130924d.jpg
|
| 419 |
+
FAMILY_SAFE,/data/imgs/700eea71-eb7967ec45df17fadffae1e9b84a1c03.jpg
|
| 420 |
+
SUGGESTIVE,/data/imgs/dd925e69-eba026d7ab6dcbf77c05e9e1fce9f98b.jpg
|
| 421 |
+
FAMILY_SAFE,/data/imgs/01dc90a4-eba313f10bf5953b52dc8145a668f4b1.jpg
|
| 422 |
+
FAMILY_SAFE,/data/imgs/49462a8c-eb3e848d5f3969eb49f10ef14db11593.jpg
|
| 423 |
+
UNCERTAIN,/data/imgs/84cabf94-eb46a86b864004fb56c426f3e6859869.jpg
|
| 424 |
+
SUGGESTIVE,/data/imgs/8d99d164-eb630bc86c8b347b6e4f3f947ef03b45.jpg
|
| 425 |
+
FAMILY_SAFE,/data/imgs/a5dc7a8b-eb0b4aec28838b01b635ae2d906319fd.jpg
|
| 426 |
+
SUGGESTIVE,/data/imgs/c998ec26-eb0fd6ae406bcbf648f37716832167b7.jpg
|
| 427 |
+
UNCERTAIN,/data/imgs/9a363203-eb1efa483d18843e2d34330b324e49e7.jpg
|
| 428 |
+
SUGGESTIVE,/data/imgs/80174771-eb2bbc40d914d047f6a15d0d1db4af9b.jpg
|
| 429 |
+
SUGGESTIVE,/data/imgs/da470e08-eb214a887113aeae8902116d5ebcb84a.jpg
|
| 430 |
+
UNCERTAIN,/data/imgs/c1369917-eb396372a0cbb497fcb259ecf9859fab.jpg
|
| 431 |
+
SUGGESTIVE,/data/imgs/eaf48512-eae00de851425f14cf837f6238fb3111.jpg
|
| 432 |
+
SUGGESTIVE,/data/imgs/3ae42af7-ea9478ccf8264c91cf5485c93fecba1b.jpg
|
| 433 |
+
FAMILY_SAFE,/data/imgs/990348b4-ea889002933fd0689c1bd805505d00ca.jpg
|
| 434 |
+
SUGGESTIVE,/data/imgs/77e2c941-eaa26e78346e1d92ee8b34a80aff9826.jpg
|
| 435 |
+
SUGGESTIVE,/data/imgs/775910aa-eaac5564f212f117e0ea7174b0876484.jpg
|
| 436 |
+
SUGGESTIVE,/data/imgs/b8405e3c-eac0ebc831eeb117fb36c86452b6c5f5.jpg
|
| 437 |
+
SUGGESTIVE,/data/imgs/1e5eb554-ea5d2de8ab1fd0ec4b61ed153805d638.jpg
|
| 438 |
+
SUGGESTIVE,/data/imgs/ee2ed958-ea6df97b08a8c96a9587abe7764f9cc3.jpg
|
| 439 |
+
SUGGESTIVE,/data/imgs/27bffd86-ea6fffbf1d3afbbbeea92a3c1c6deffd.jpg
|
| 440 |
+
SUGGESTIVE,/data/imgs/bc246849-ea71edf190810bac9c56483239eae59a.jpg
|
| 441 |
+
UNCERTAIN,/data/imgs/39c155ed-ea4b1f27828cbd87b0f95f1f36cd7a54.jpg
|
| 442 |
+
UNCERTAIN,/data/imgs/2b92f3dc-ea5380a591b6e34d1382a67221b558aa.jpg
|
| 443 |
+
UNCERTAIN,/data/imgs/03579438-ea1f42c6e20979a40230b242e5d6bbee.jpg
|
| 444 |
+
SUGGESTIVE,/data/imgs/e5da72ea-ea20b59163f3b360f62d68e4f132393b.jpg
|
| 445 |
+
UNCERTAIN,/data/imgs/7fce3819-ea37c94a8cb1c50c4084d4c9cc9bd177.jpg
|
| 446 |
+
UNCERTAIN,/data/imgs/0b24edd3-e9d77067389acfaa2897de087ec279a1.jpg
|
| 447 |
+
UNCERTAIN,/data/imgs/b61339af-e9e395951ba5901de8ba2b15899689ee.jpg
|
| 448 |
+
SUGGESTIVE,/data/imgs/bb7c935c-e9eefa0852edb5311b63d6fbf85a9815.jpg
|
| 449 |
+
SUGGESTIVE,/data/imgs/3bcb2655-e9f9cb6790fcb4c6960e5b834abfe72c.jpg
|
| 450 |
+
SUGGESTIVE,/data/imgs/630fff65-e9f0689b5df3c0bbb17ec7a670ebacb8.jpg
|
| 451 |
+
SUGGESTIVE,/data/imgs/3c9f8955-e9b23e6e929900bbbbb29be5affa0ae5.jpg
|
| 452 |
+
UNCERTAIN,/data/imgs/e2b2a6ac-e9a15368497b12a5f502151ce2babdd1.jpg
|
| 453 |
+
SUGGESTIVE,/data/imgs/28c4871f-e9ab035913a3f11963041ef9b89caa2e.jpg
|
| 454 |
+
SUGGESTIVE,/data/imgs/e41d2daa-e96c2e00fce0f439d17ad2731eb76f06.jpg
|
| 455 |
+
FAMILY_SAFE,/data/imgs/31a90818-e983a4f33a2035ff412231c35d7fcfa5.jpg
|
| 456 |
+
FAMILY_SAFE,/data/imgs/4da9491c-e95cf7d4d15184aeb5847e9e6a51e9d0.jpg
|
data/sexualised_fashion.csv
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:580215185586911f5ea382a9fdcd97cd45f5a52c1fa7407c24450c8581f019b1
|
| 3 |
+
size 50318850
|
data/test/Screenshot 2025-12-21 at 14.46.33.png
ADDED
|
Git LFS Details
|
data/test/Screenshot 2025-12-21 at 15.06.41.png
ADDED
|
Git LFS Details
|
notebooks/eda.ipynb
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
notebooks/nswf_test.ipynb
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"cells": [
|
| 3 |
+
{
|
| 4 |
+
"cell_type": "code",
|
| 5 |
+
"execution_count": 1,
|
| 6 |
+
"id": "f52f34d0",
|
| 7 |
+
"metadata": {},
|
| 8 |
+
"outputs": [
|
| 9 |
+
{
|
| 10 |
+
"name": "stderr",
|
| 11 |
+
"output_type": "stream",
|
| 12 |
+
"text": [
|
| 13 |
+
"/Users/youniss/Documents/GitHub/haram-police/.venv/lib/python3.13/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n",
|
| 14 |
+
" from .autonotebook import tqdm as notebook_tqdm\n",
|
| 15 |
+
"Using a slow image processor as `use_fast` is unset and a slow processor was saved with this model. `use_fast=True` will be the default behavior in v4.52, even if the model was saved with a slow processor. This will result in minor differences in outputs. You'll still be able to use a slow processor with `use_fast=False`.\n",
|
| 16 |
+
"Device set to use mps:0\n"
|
| 17 |
+
]
|
| 18 |
+
}
|
| 19 |
+
],
|
| 20 |
+
"source": [
|
| 21 |
+
"from transformers import pipeline\n",
|
| 22 |
+
"\n",
|
| 23 |
+
"pipe = pipeline(\"image-classification\", model=\"Falconsai/nsfw_image_detection\")"
|
| 24 |
+
]
|
| 25 |
+
},
|
| 26 |
+
{
|
| 27 |
+
"cell_type": "code",
|
| 28 |
+
"execution_count": 2,
|
| 29 |
+
"id": "cb8aac6f",
|
| 30 |
+
"metadata": {},
|
| 31 |
+
"outputs": [
|
| 32 |
+
{
|
| 33 |
+
"data": {
|
| 34 |
+
"text/plain": [
|
| 35 |
+
"[{'label': 'normal', 'score': 0.9997637867927551},\n",
|
| 36 |
+
" {'label': 'nsfw', 'score': 0.00023620268621016294}]"
|
| 37 |
+
]
|
| 38 |
+
},
|
| 39 |
+
"execution_count": 2,
|
| 40 |
+
"metadata": {},
|
| 41 |
+
"output_type": "execute_result"
|
| 42 |
+
}
|
| 43 |
+
],
|
| 44 |
+
"source": [
|
| 45 |
+
"pipe(\"https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/hub/parrots.png\")\n"
|
| 46 |
+
]
|
| 47 |
+
},
|
| 48 |
+
{
|
| 49 |
+
"cell_type": "code",
|
| 50 |
+
"execution_count": null,
|
| 51 |
+
"id": "9d21f66c",
|
| 52 |
+
"metadata": {},
|
| 53 |
+
"outputs": [],
|
| 54 |
+
"source": []
|
| 55 |
+
}
|
| 56 |
+
],
|
| 57 |
+
"metadata": {
|
| 58 |
+
"kernelspec": {
|
| 59 |
+
"display_name": ".venv",
|
| 60 |
+
"language": "python",
|
| 61 |
+
"name": "python3"
|
| 62 |
+
},
|
| 63 |
+
"language_info": {
|
| 64 |
+
"codemirror_mode": {
|
| 65 |
+
"name": "ipython",
|
| 66 |
+
"version": 3
|
| 67 |
+
},
|
| 68 |
+
"file_extension": ".py",
|
| 69 |
+
"mimetype": "text/x-python",
|
| 70 |
+
"name": "python",
|
| 71 |
+
"nbconvert_exporter": "python",
|
| 72 |
+
"pygments_lexer": "ipython3",
|
| 73 |
+
"version": "3.13.5"
|
| 74 |
+
}
|
| 75 |
+
},
|
| 76 |
+
"nbformat": 4,
|
| 77 |
+
"nbformat_minor": 5
|
| 78 |
+
}
|
notebooks/processing.ipynb
ADDED
|
@@ -0,0 +1,1691 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"cells": [
|
| 3 |
+
{
|
| 4 |
+
"cell_type": "code",
|
| 5 |
+
"execution_count": 53,
|
| 6 |
+
"id": "d3a1f52b",
|
| 7 |
+
"metadata": {},
|
| 8 |
+
"outputs": [
|
| 9 |
+
{
|
| 10 |
+
"data": {
|
| 11 |
+
"text/plain": [
|
| 12 |
+
"True"
|
| 13 |
+
]
|
| 14 |
+
},
|
| 15 |
+
"execution_count": 53,
|
| 16 |
+
"metadata": {},
|
| 17 |
+
"output_type": "execute_result"
|
| 18 |
+
}
|
| 19 |
+
],
|
| 20 |
+
"source": [
|
| 21 |
+
"import pandas as pd\n",
|
| 22 |
+
"from dotenv import load_dotenv\n",
|
| 23 |
+
"from pathlib import Path\n",
|
| 24 |
+
"import json\n",
|
| 25 |
+
"\n",
|
| 26 |
+
"load_dotenv()"
|
| 27 |
+
]
|
| 28 |
+
},
|
| 29 |
+
{
|
| 30 |
+
"cell_type": "code",
|
| 31 |
+
"execution_count": 54,
|
| 32 |
+
"id": "bca20bcc",
|
| 33 |
+
"metadata": {},
|
| 34 |
+
"outputs": [
|
| 35 |
+
{
|
| 36 |
+
"data": {
|
| 37 |
+
"text/html": [
|
| 38 |
+
"<div>\n",
|
| 39 |
+
"<style scoped>\n",
|
| 40 |
+
" .dataframe tbody tr th:only-of-type {\n",
|
| 41 |
+
" vertical-align: middle;\n",
|
| 42 |
+
" }\n",
|
| 43 |
+
"\n",
|
| 44 |
+
" .dataframe tbody tr th {\n",
|
| 45 |
+
" vertical-align: top;\n",
|
| 46 |
+
" }\n",
|
| 47 |
+
"\n",
|
| 48 |
+
" .dataframe thead th {\n",
|
| 49 |
+
" text-align: right;\n",
|
| 50 |
+
" }\n",
|
| 51 |
+
"</style>\n",
|
| 52 |
+
"<table border=\"1\" class=\"dataframe\">\n",
|
| 53 |
+
" <thead>\n",
|
| 54 |
+
" <tr style=\"text-align: right;\">\n",
|
| 55 |
+
" <th></th>\n",
|
| 56 |
+
" <th>ImageId</th>\n",
|
| 57 |
+
" <th>EncodedPixels</th>\n",
|
| 58 |
+
" <th>Height</th>\n",
|
| 59 |
+
" <th>Width</th>\n",
|
| 60 |
+
" <th>ClassId</th>\n",
|
| 61 |
+
" <th>AttributesIds</th>\n",
|
| 62 |
+
" </tr>\n",
|
| 63 |
+
" </thead>\n",
|
| 64 |
+
" <tbody>\n",
|
| 65 |
+
" <tr>\n",
|
| 66 |
+
" <th>0</th>\n",
|
| 67 |
+
" <td>00000663ed1ff0c4e0132b9b9ac53f6e</td>\n",
|
| 68 |
+
" <td>6068157 7 6073371 20 6078584 34 6083797 48 608...</td>\n",
|
| 69 |
+
" <td>5214</td>\n",
|
| 70 |
+
" <td>3676</td>\n",
|
| 71 |
+
" <td>6</td>\n",
|
| 72 |
+
" <td>115,136,143,154,230,295,316,317</td>\n",
|
| 73 |
+
" </tr>\n",
|
| 74 |
+
" <tr>\n",
|
| 75 |
+
" <th>1</th>\n",
|
| 76 |
+
" <td>00000663ed1ff0c4e0132b9b9ac53f6e</td>\n",
|
| 77 |
+
" <td>6323163 11 6328356 32 6333549 53 6338742 75 63...</td>\n",
|
| 78 |
+
" <td>5214</td>\n",
|
| 79 |
+
" <td>3676</td>\n",
|
| 80 |
+
" <td>0</td>\n",
|
| 81 |
+
" <td>115,136,142,146,225,295,316,317</td>\n",
|
| 82 |
+
" </tr>\n",
|
| 83 |
+
" <tr>\n",
|
| 84 |
+
" <th>2</th>\n",
|
| 85 |
+
" <td>00000663ed1ff0c4e0132b9b9ac53f6e</td>\n",
|
| 86 |
+
" <td>8521389 10 8526585 30 8531789 42 8537002 46 85...</td>\n",
|
| 87 |
+
" <td>5214</td>\n",
|
| 88 |
+
" <td>3676</td>\n",
|
| 89 |
+
" <td>28</td>\n",
|
| 90 |
+
" <td>163</td>\n",
|
| 91 |
+
" </tr>\n",
|
| 92 |
+
" <tr>\n",
|
| 93 |
+
" <th>3</th>\n",
|
| 94 |
+
" <td>00000663ed1ff0c4e0132b9b9ac53f6e</td>\n",
|
| 95 |
+
" <td>12903854 2 12909064 7 12914275 10 12919485 15 ...</td>\n",
|
| 96 |
+
" <td>5214</td>\n",
|
| 97 |
+
" <td>3676</td>\n",
|
| 98 |
+
" <td>31</td>\n",
|
| 99 |
+
" <td>160,204</td>\n",
|
| 100 |
+
" </tr>\n",
|
| 101 |
+
" <tr>\n",
|
| 102 |
+
" <th>4</th>\n",
|
| 103 |
+
" <td>00000663ed1ff0c4e0132b9b9ac53f6e</td>\n",
|
| 104 |
+
" <td>10837337 5 10842542 14 10847746 24 10852951 33...</td>\n",
|
| 105 |
+
" <td>5214</td>\n",
|
| 106 |
+
" <td>3676</td>\n",
|
| 107 |
+
" <td>32</td>\n",
|
| 108 |
+
" <td>219</td>\n",
|
| 109 |
+
" </tr>\n",
|
| 110 |
+
" </tbody>\n",
|
| 111 |
+
"</table>\n",
|
| 112 |
+
"</div>"
|
| 113 |
+
],
|
| 114 |
+
"text/plain": [
|
| 115 |
+
" ImageId \\\n",
|
| 116 |
+
"0 00000663ed1ff0c4e0132b9b9ac53f6e \n",
|
| 117 |
+
"1 00000663ed1ff0c4e0132b9b9ac53f6e \n",
|
| 118 |
+
"2 00000663ed1ff0c4e0132b9b9ac53f6e \n",
|
| 119 |
+
"3 00000663ed1ff0c4e0132b9b9ac53f6e \n",
|
| 120 |
+
"4 00000663ed1ff0c4e0132b9b9ac53f6e \n",
|
| 121 |
+
"\n",
|
| 122 |
+
" EncodedPixels Height Width ClassId \\\n",
|
| 123 |
+
"0 6068157 7 6073371 20 6078584 34 6083797 48 608... 5214 3676 6 \n",
|
| 124 |
+
"1 6323163 11 6328356 32 6333549 53 6338742 75 63... 5214 3676 0 \n",
|
| 125 |
+
"2 8521389 10 8526585 30 8531789 42 8537002 46 85... 5214 3676 28 \n",
|
| 126 |
+
"3 12903854 2 12909064 7 12914275 10 12919485 15 ... 5214 3676 31 \n",
|
| 127 |
+
"4 10837337 5 10842542 14 10847746 24 10852951 33... 5214 3676 32 \n",
|
| 128 |
+
"\n",
|
| 129 |
+
" AttributesIds \n",
|
| 130 |
+
"0 115,136,143,154,230,295,316,317 \n",
|
| 131 |
+
"1 115,136,142,146,225,295,316,317 \n",
|
| 132 |
+
"2 163 \n",
|
| 133 |
+
"3 160,204 \n",
|
| 134 |
+
"4 219 "
|
| 135 |
+
]
|
| 136 |
+
},
|
| 137 |
+
"execution_count": 54,
|
| 138 |
+
"metadata": {},
|
| 139 |
+
"output_type": "execute_result"
|
| 140 |
+
}
|
| 141 |
+
],
|
| 142 |
+
"source": [
|
| 143 |
+
"# Get project root (one level up from notebooks/ if running from notebooks directory)\n",
|
| 144 |
+
"current_dir = Path.cwd()\n",
|
| 145 |
+
"PROJECT_ROOT = current_dir.parent if current_dir.name == \"notebooks\" else current_dir\n",
|
| 146 |
+
"DATA_PATH = PROJECT_ROOT / \"data\"\n",
|
| 147 |
+
"\n",
|
| 148 |
+
"fashion_df = pd.read_csv(DATA_PATH / \"train.csv\")\n",
|
| 149 |
+
"fashion_df.head()\n"
|
| 150 |
+
]
|
| 151 |
+
},
|
| 152 |
+
{
|
| 153 |
+
"cell_type": "code",
|
| 154 |
+
"execution_count": 55,
|
| 155 |
+
"id": "58f4f7b4",
|
| 156 |
+
"metadata": {},
|
| 157 |
+
"outputs": [
|
| 158 |
+
{
|
| 159 |
+
"data": {
|
| 160 |
+
"text/html": [
|
| 161 |
+
"<div>\n",
|
| 162 |
+
"<style scoped>\n",
|
| 163 |
+
" .dataframe tbody tr th:only-of-type {\n",
|
| 164 |
+
" vertical-align: middle;\n",
|
| 165 |
+
" }\n",
|
| 166 |
+
"\n",
|
| 167 |
+
" .dataframe tbody tr th {\n",
|
| 168 |
+
" vertical-align: top;\n",
|
| 169 |
+
" }\n",
|
| 170 |
+
"\n",
|
| 171 |
+
" .dataframe thead th {\n",
|
| 172 |
+
" text-align: right;\n",
|
| 173 |
+
" }\n",
|
| 174 |
+
"</style>\n",
|
| 175 |
+
"<table border=\"1\" class=\"dataframe\">\n",
|
| 176 |
+
" <thead>\n",
|
| 177 |
+
" <tr style=\"text-align: right;\">\n",
|
| 178 |
+
" <th></th>\n",
|
| 179 |
+
" <th>id</th>\n",
|
| 180 |
+
" <th>name</th>\n",
|
| 181 |
+
" <th>supercategory</th>\n",
|
| 182 |
+
" <th>level</th>\n",
|
| 183 |
+
" </tr>\n",
|
| 184 |
+
" </thead>\n",
|
| 185 |
+
" <tbody>\n",
|
| 186 |
+
" <tr>\n",
|
| 187 |
+
" <th>0</th>\n",
|
| 188 |
+
" <td>0</td>\n",
|
| 189 |
+
" <td>shirt, blouse</td>\n",
|
| 190 |
+
" <td>upperbody</td>\n",
|
| 191 |
+
" <td>2</td>\n",
|
| 192 |
+
" </tr>\n",
|
| 193 |
+
" <tr>\n",
|
| 194 |
+
" <th>1</th>\n",
|
| 195 |
+
" <td>1</td>\n",
|
| 196 |
+
" <td>top, t-shirt, sweatshirt</td>\n",
|
| 197 |
+
" <td>upperbody</td>\n",
|
| 198 |
+
" <td>2</td>\n",
|
| 199 |
+
" </tr>\n",
|
| 200 |
+
" <tr>\n",
|
| 201 |
+
" <th>2</th>\n",
|
| 202 |
+
" <td>2</td>\n",
|
| 203 |
+
" <td>sweater</td>\n",
|
| 204 |
+
" <td>upperbody</td>\n",
|
| 205 |
+
" <td>2</td>\n",
|
| 206 |
+
" </tr>\n",
|
| 207 |
+
" <tr>\n",
|
| 208 |
+
" <th>3</th>\n",
|
| 209 |
+
" <td>3</td>\n",
|
| 210 |
+
" <td>cardigan</td>\n",
|
| 211 |
+
" <td>upperbody</td>\n",
|
| 212 |
+
" <td>2</td>\n",
|
| 213 |
+
" </tr>\n",
|
| 214 |
+
" <tr>\n",
|
| 215 |
+
" <th>4</th>\n",
|
| 216 |
+
" <td>4</td>\n",
|
| 217 |
+
" <td>jacket</td>\n",
|
| 218 |
+
" <td>upperbody</td>\n",
|
| 219 |
+
" <td>2</td>\n",
|
| 220 |
+
" </tr>\n",
|
| 221 |
+
" <tr>\n",
|
| 222 |
+
" <th>5</th>\n",
|
| 223 |
+
" <td>5</td>\n",
|
| 224 |
+
" <td>vest</td>\n",
|
| 225 |
+
" <td>upperbody</td>\n",
|
| 226 |
+
" <td>2</td>\n",
|
| 227 |
+
" </tr>\n",
|
| 228 |
+
" <tr>\n",
|
| 229 |
+
" <th>6</th>\n",
|
| 230 |
+
" <td>6</td>\n",
|
| 231 |
+
" <td>pants</td>\n",
|
| 232 |
+
" <td>lowerbody</td>\n",
|
| 233 |
+
" <td>2</td>\n",
|
| 234 |
+
" </tr>\n",
|
| 235 |
+
" <tr>\n",
|
| 236 |
+
" <th>7</th>\n",
|
| 237 |
+
" <td>7</td>\n",
|
| 238 |
+
" <td>shorts</td>\n",
|
| 239 |
+
" <td>lowerbody</td>\n",
|
| 240 |
+
" <td>2</td>\n",
|
| 241 |
+
" </tr>\n",
|
| 242 |
+
" <tr>\n",
|
| 243 |
+
" <th>8</th>\n",
|
| 244 |
+
" <td>8</td>\n",
|
| 245 |
+
" <td>skirt</td>\n",
|
| 246 |
+
" <td>lowerbody</td>\n",
|
| 247 |
+
" <td>2</td>\n",
|
| 248 |
+
" </tr>\n",
|
| 249 |
+
" <tr>\n",
|
| 250 |
+
" <th>9</th>\n",
|
| 251 |
+
" <td>9</td>\n",
|
| 252 |
+
" <td>coat</td>\n",
|
| 253 |
+
" <td>wholebody</td>\n",
|
| 254 |
+
" <td>2</td>\n",
|
| 255 |
+
" </tr>\n",
|
| 256 |
+
" <tr>\n",
|
| 257 |
+
" <th>10</th>\n",
|
| 258 |
+
" <td>10</td>\n",
|
| 259 |
+
" <td>dress</td>\n",
|
| 260 |
+
" <td>wholebody</td>\n",
|
| 261 |
+
" <td>2</td>\n",
|
| 262 |
+
" </tr>\n",
|
| 263 |
+
" <tr>\n",
|
| 264 |
+
" <th>11</th>\n",
|
| 265 |
+
" <td>11</td>\n",
|
| 266 |
+
" <td>jumpsuit</td>\n",
|
| 267 |
+
" <td>wholebody</td>\n",
|
| 268 |
+
" <td>2</td>\n",
|
| 269 |
+
" </tr>\n",
|
| 270 |
+
" <tr>\n",
|
| 271 |
+
" <th>12</th>\n",
|
| 272 |
+
" <td>12</td>\n",
|
| 273 |
+
" <td>cape</td>\n",
|
| 274 |
+
" <td>wholebody</td>\n",
|
| 275 |
+
" <td>2</td>\n",
|
| 276 |
+
" </tr>\n",
|
| 277 |
+
" <tr>\n",
|
| 278 |
+
" <th>13</th>\n",
|
| 279 |
+
" <td>13</td>\n",
|
| 280 |
+
" <td>glasses</td>\n",
|
| 281 |
+
" <td>head</td>\n",
|
| 282 |
+
" <td>2</td>\n",
|
| 283 |
+
" </tr>\n",
|
| 284 |
+
" <tr>\n",
|
| 285 |
+
" <th>14</th>\n",
|
| 286 |
+
" <td>14</td>\n",
|
| 287 |
+
" <td>hat</td>\n",
|
| 288 |
+
" <td>head</td>\n",
|
| 289 |
+
" <td>2</td>\n",
|
| 290 |
+
" </tr>\n",
|
| 291 |
+
" <tr>\n",
|
| 292 |
+
" <th>15</th>\n",
|
| 293 |
+
" <td>15</td>\n",
|
| 294 |
+
" <td>headband, head covering, hair accessory</td>\n",
|
| 295 |
+
" <td>head</td>\n",
|
| 296 |
+
" <td>2</td>\n",
|
| 297 |
+
" </tr>\n",
|
| 298 |
+
" <tr>\n",
|
| 299 |
+
" <th>16</th>\n",
|
| 300 |
+
" <td>16</td>\n",
|
| 301 |
+
" <td>tie</td>\n",
|
| 302 |
+
" <td>neck</td>\n",
|
| 303 |
+
" <td>2</td>\n",
|
| 304 |
+
" </tr>\n",
|
| 305 |
+
" <tr>\n",
|
| 306 |
+
" <th>17</th>\n",
|
| 307 |
+
" <td>17</td>\n",
|
| 308 |
+
" <td>glove</td>\n",
|
| 309 |
+
" <td>arms and hands</td>\n",
|
| 310 |
+
" <td>2</td>\n",
|
| 311 |
+
" </tr>\n",
|
| 312 |
+
" <tr>\n",
|
| 313 |
+
" <th>18</th>\n",
|
| 314 |
+
" <td>18</td>\n",
|
| 315 |
+
" <td>watch</td>\n",
|
| 316 |
+
" <td>arms and hands</td>\n",
|
| 317 |
+
" <td>2</td>\n",
|
| 318 |
+
" </tr>\n",
|
| 319 |
+
" <tr>\n",
|
| 320 |
+
" <th>19</th>\n",
|
| 321 |
+
" <td>19</td>\n",
|
| 322 |
+
" <td>belt</td>\n",
|
| 323 |
+
" <td>waist</td>\n",
|
| 324 |
+
" <td>2</td>\n",
|
| 325 |
+
" </tr>\n",
|
| 326 |
+
" <tr>\n",
|
| 327 |
+
" <th>20</th>\n",
|
| 328 |
+
" <td>20</td>\n",
|
| 329 |
+
" <td>leg warmer</td>\n",
|
| 330 |
+
" <td>legs and feet</td>\n",
|
| 331 |
+
" <td>2</td>\n",
|
| 332 |
+
" </tr>\n",
|
| 333 |
+
" <tr>\n",
|
| 334 |
+
" <th>21</th>\n",
|
| 335 |
+
" <td>21</td>\n",
|
| 336 |
+
" <td>tights, stockings</td>\n",
|
| 337 |
+
" <td>legs and feet</td>\n",
|
| 338 |
+
" <td>2</td>\n",
|
| 339 |
+
" </tr>\n",
|
| 340 |
+
" <tr>\n",
|
| 341 |
+
" <th>22</th>\n",
|
| 342 |
+
" <td>22</td>\n",
|
| 343 |
+
" <td>sock</td>\n",
|
| 344 |
+
" <td>legs and feet</td>\n",
|
| 345 |
+
" <td>2</td>\n",
|
| 346 |
+
" </tr>\n",
|
| 347 |
+
" <tr>\n",
|
| 348 |
+
" <th>23</th>\n",
|
| 349 |
+
" <td>23</td>\n",
|
| 350 |
+
" <td>shoe</td>\n",
|
| 351 |
+
" <td>legs and feet</td>\n",
|
| 352 |
+
" <td>2</td>\n",
|
| 353 |
+
" </tr>\n",
|
| 354 |
+
" <tr>\n",
|
| 355 |
+
" <th>24</th>\n",
|
| 356 |
+
" <td>24</td>\n",
|
| 357 |
+
" <td>bag, wallet</td>\n",
|
| 358 |
+
" <td>others</td>\n",
|
| 359 |
+
" <td>2</td>\n",
|
| 360 |
+
" </tr>\n",
|
| 361 |
+
" <tr>\n",
|
| 362 |
+
" <th>25</th>\n",
|
| 363 |
+
" <td>25</td>\n",
|
| 364 |
+
" <td>scarf</td>\n",
|
| 365 |
+
" <td>others</td>\n",
|
| 366 |
+
" <td>2</td>\n",
|
| 367 |
+
" </tr>\n",
|
| 368 |
+
" <tr>\n",
|
| 369 |
+
" <th>26</th>\n",
|
| 370 |
+
" <td>26</td>\n",
|
| 371 |
+
" <td>umbrella</td>\n",
|
| 372 |
+
" <td>others</td>\n",
|
| 373 |
+
" <td>2</td>\n",
|
| 374 |
+
" </tr>\n",
|
| 375 |
+
" <tr>\n",
|
| 376 |
+
" <th>27</th>\n",
|
| 377 |
+
" <td>27</td>\n",
|
| 378 |
+
" <td>hood</td>\n",
|
| 379 |
+
" <td>garment parts</td>\n",
|
| 380 |
+
" <td>2</td>\n",
|
| 381 |
+
" </tr>\n",
|
| 382 |
+
" <tr>\n",
|
| 383 |
+
" <th>28</th>\n",
|
| 384 |
+
" <td>28</td>\n",
|
| 385 |
+
" <td>collar</td>\n",
|
| 386 |
+
" <td>garment parts</td>\n",
|
| 387 |
+
" <td>2</td>\n",
|
| 388 |
+
" </tr>\n",
|
| 389 |
+
" <tr>\n",
|
| 390 |
+
" <th>29</th>\n",
|
| 391 |
+
" <td>29</td>\n",
|
| 392 |
+
" <td>lapel</td>\n",
|
| 393 |
+
" <td>garment parts</td>\n",
|
| 394 |
+
" <td>2</td>\n",
|
| 395 |
+
" </tr>\n",
|
| 396 |
+
" <tr>\n",
|
| 397 |
+
" <th>30</th>\n",
|
| 398 |
+
" <td>30</td>\n",
|
| 399 |
+
" <td>epaulette</td>\n",
|
| 400 |
+
" <td>garment parts</td>\n",
|
| 401 |
+
" <td>2</td>\n",
|
| 402 |
+
" </tr>\n",
|
| 403 |
+
" <tr>\n",
|
| 404 |
+
" <th>31</th>\n",
|
| 405 |
+
" <td>31</td>\n",
|
| 406 |
+
" <td>sleeve</td>\n",
|
| 407 |
+
" <td>garment parts</td>\n",
|
| 408 |
+
" <td>2</td>\n",
|
| 409 |
+
" </tr>\n",
|
| 410 |
+
" <tr>\n",
|
| 411 |
+
" <th>32</th>\n",
|
| 412 |
+
" <td>32</td>\n",
|
| 413 |
+
" <td>pocket</td>\n",
|
| 414 |
+
" <td>garment parts</td>\n",
|
| 415 |
+
" <td>2</td>\n",
|
| 416 |
+
" </tr>\n",
|
| 417 |
+
" <tr>\n",
|
| 418 |
+
" <th>33</th>\n",
|
| 419 |
+
" <td>33</td>\n",
|
| 420 |
+
" <td>neckline</td>\n",
|
| 421 |
+
" <td>garment parts</td>\n",
|
| 422 |
+
" <td>2</td>\n",
|
| 423 |
+
" </tr>\n",
|
| 424 |
+
" <tr>\n",
|
| 425 |
+
" <th>34</th>\n",
|
| 426 |
+
" <td>34</td>\n",
|
| 427 |
+
" <td>buckle</td>\n",
|
| 428 |
+
" <td>closures</td>\n",
|
| 429 |
+
" <td>2</td>\n",
|
| 430 |
+
" </tr>\n",
|
| 431 |
+
" <tr>\n",
|
| 432 |
+
" <th>35</th>\n",
|
| 433 |
+
" <td>35</td>\n",
|
| 434 |
+
" <td>zipper</td>\n",
|
| 435 |
+
" <td>closures</td>\n",
|
| 436 |
+
" <td>2</td>\n",
|
| 437 |
+
" </tr>\n",
|
| 438 |
+
" <tr>\n",
|
| 439 |
+
" <th>36</th>\n",
|
| 440 |
+
" <td>36</td>\n",
|
| 441 |
+
" <td>applique</td>\n",
|
| 442 |
+
" <td>decorations</td>\n",
|
| 443 |
+
" <td>2</td>\n",
|
| 444 |
+
" </tr>\n",
|
| 445 |
+
" <tr>\n",
|
| 446 |
+
" <th>37</th>\n",
|
| 447 |
+
" <td>37</td>\n",
|
| 448 |
+
" <td>bead</td>\n",
|
| 449 |
+
" <td>decorations</td>\n",
|
| 450 |
+
" <td>2</td>\n",
|
| 451 |
+
" </tr>\n",
|
| 452 |
+
" <tr>\n",
|
| 453 |
+
" <th>38</th>\n",
|
| 454 |
+
" <td>38</td>\n",
|
| 455 |
+
" <td>bow</td>\n",
|
| 456 |
+
" <td>decorations</td>\n",
|
| 457 |
+
" <td>2</td>\n",
|
| 458 |
+
" </tr>\n",
|
| 459 |
+
" <tr>\n",
|
| 460 |
+
" <th>39</th>\n",
|
| 461 |
+
" <td>39</td>\n",
|
| 462 |
+
" <td>flower</td>\n",
|
| 463 |
+
" <td>decorations</td>\n",
|
| 464 |
+
" <td>2</td>\n",
|
| 465 |
+
" </tr>\n",
|
| 466 |
+
" <tr>\n",
|
| 467 |
+
" <th>40</th>\n",
|
| 468 |
+
" <td>40</td>\n",
|
| 469 |
+
" <td>fringe</td>\n",
|
| 470 |
+
" <td>decorations</td>\n",
|
| 471 |
+
" <td>2</td>\n",
|
| 472 |
+
" </tr>\n",
|
| 473 |
+
" <tr>\n",
|
| 474 |
+
" <th>41</th>\n",
|
| 475 |
+
" <td>41</td>\n",
|
| 476 |
+
" <td>ribbon</td>\n",
|
| 477 |
+
" <td>decorations</td>\n",
|
| 478 |
+
" <td>2</td>\n",
|
| 479 |
+
" </tr>\n",
|
| 480 |
+
" <tr>\n",
|
| 481 |
+
" <th>42</th>\n",
|
| 482 |
+
" <td>42</td>\n",
|
| 483 |
+
" <td>rivet</td>\n",
|
| 484 |
+
" <td>decorations</td>\n",
|
| 485 |
+
" <td>2</td>\n",
|
| 486 |
+
" </tr>\n",
|
| 487 |
+
" <tr>\n",
|
| 488 |
+
" <th>43</th>\n",
|
| 489 |
+
" <td>43</td>\n",
|
| 490 |
+
" <td>ruffle</td>\n",
|
| 491 |
+
" <td>decorations</td>\n",
|
| 492 |
+
" <td>2</td>\n",
|
| 493 |
+
" </tr>\n",
|
| 494 |
+
" <tr>\n",
|
| 495 |
+
" <th>44</th>\n",
|
| 496 |
+
" <td>44</td>\n",
|
| 497 |
+
" <td>sequin</td>\n",
|
| 498 |
+
" <td>decorations</td>\n",
|
| 499 |
+
" <td>2</td>\n",
|
| 500 |
+
" </tr>\n",
|
| 501 |
+
" <tr>\n",
|
| 502 |
+
" <th>45</th>\n",
|
| 503 |
+
" <td>45</td>\n",
|
| 504 |
+
" <td>tassel</td>\n",
|
| 505 |
+
" <td>decorations</td>\n",
|
| 506 |
+
" <td>2</td>\n",
|
| 507 |
+
" </tr>\n",
|
| 508 |
+
" </tbody>\n",
|
| 509 |
+
"</table>\n",
|
| 510 |
+
"</div>"
|
| 511 |
+
],
|
| 512 |
+
"text/plain": [
|
| 513 |
+
" id name supercategory level\n",
|
| 514 |
+
"0 0 shirt, blouse upperbody 2\n",
|
| 515 |
+
"1 1 top, t-shirt, sweatshirt upperbody 2\n",
|
| 516 |
+
"2 2 sweater upperbody 2\n",
|
| 517 |
+
"3 3 cardigan upperbody 2\n",
|
| 518 |
+
"4 4 jacket upperbody 2\n",
|
| 519 |
+
"5 5 vest upperbody 2\n",
|
| 520 |
+
"6 6 pants lowerbody 2\n",
|
| 521 |
+
"7 7 shorts lowerbody 2\n",
|
| 522 |
+
"8 8 skirt lowerbody 2\n",
|
| 523 |
+
"9 9 coat wholebody 2\n",
|
| 524 |
+
"10 10 dress wholebody 2\n",
|
| 525 |
+
"11 11 jumpsuit wholebody 2\n",
|
| 526 |
+
"12 12 cape wholebody 2\n",
|
| 527 |
+
"13 13 glasses head 2\n",
|
| 528 |
+
"14 14 hat head 2\n",
|
| 529 |
+
"15 15 headband, head covering, hair accessory head 2\n",
|
| 530 |
+
"16 16 tie neck 2\n",
|
| 531 |
+
"17 17 glove arms and hands 2\n",
|
| 532 |
+
"18 18 watch arms and hands 2\n",
|
| 533 |
+
"19 19 belt waist 2\n",
|
| 534 |
+
"20 20 leg warmer legs and feet 2\n",
|
| 535 |
+
"21 21 tights, stockings legs and feet 2\n",
|
| 536 |
+
"22 22 sock legs and feet 2\n",
|
| 537 |
+
"23 23 shoe legs and feet 2\n",
|
| 538 |
+
"24 24 bag, wallet others 2\n",
|
| 539 |
+
"25 25 scarf others 2\n",
|
| 540 |
+
"26 26 umbrella others 2\n",
|
| 541 |
+
"27 27 hood garment parts 2\n",
|
| 542 |
+
"28 28 collar garment parts 2\n",
|
| 543 |
+
"29 29 lapel garment parts 2\n",
|
| 544 |
+
"30 30 epaulette garment parts 2\n",
|
| 545 |
+
"31 31 sleeve garment parts 2\n",
|
| 546 |
+
"32 32 pocket garment parts 2\n",
|
| 547 |
+
"33 33 neckline garment parts 2\n",
|
| 548 |
+
"34 34 buckle closures 2\n",
|
| 549 |
+
"35 35 zipper closures 2\n",
|
| 550 |
+
"36 36 applique decorations 2\n",
|
| 551 |
+
"37 37 bead decorations 2\n",
|
| 552 |
+
"38 38 bow decorations 2\n",
|
| 553 |
+
"39 39 flower decorations 2\n",
|
| 554 |
+
"40 40 fringe decorations 2\n",
|
| 555 |
+
"41 41 ribbon decorations 2\n",
|
| 556 |
+
"42 42 rivet decorations 2\n",
|
| 557 |
+
"43 43 ruffle decorations 2\n",
|
| 558 |
+
"44 44 sequin decorations 2\n",
|
| 559 |
+
"45 45 tassel decorations 2"
|
| 560 |
+
]
|
| 561 |
+
},
|
| 562 |
+
"execution_count": 55,
|
| 563 |
+
"metadata": {},
|
| 564 |
+
"output_type": "execute_result"
|
| 565 |
+
}
|
| 566 |
+
],
|
| 567 |
+
"source": [
|
| 568 |
+
"label_descriptions = json.load(open(DATA_PATH / \"label_descriptions.json\"))\n",
|
| 569 |
+
"\n",
|
| 570 |
+
"categories_df = pd.DataFrame(label_descriptions[\"categories\"])\n",
|
| 571 |
+
"categories_df"
|
| 572 |
+
]
|
| 573 |
+
},
|
| 574 |
+
{
|
| 575 |
+
"cell_type": "code",
|
| 576 |
+
"execution_count": 56,
|
| 577 |
+
"id": "48d7ab2b",
|
| 578 |
+
"metadata": {},
|
| 579 |
+
"outputs": [
|
| 580 |
+
{
|
| 581 |
+
"data": {
|
| 582 |
+
"text/html": [
|
| 583 |
+
"<div>\n",
|
| 584 |
+
"<style scoped>\n",
|
| 585 |
+
" .dataframe tbody tr th:only-of-type {\n",
|
| 586 |
+
" vertical-align: middle;\n",
|
| 587 |
+
" }\n",
|
| 588 |
+
"\n",
|
| 589 |
+
" .dataframe tbody tr th {\n",
|
| 590 |
+
" vertical-align: top;\n",
|
| 591 |
+
" }\n",
|
| 592 |
+
"\n",
|
| 593 |
+
" .dataframe thead th {\n",
|
| 594 |
+
" text-align: right;\n",
|
| 595 |
+
" }\n",
|
| 596 |
+
"</style>\n",
|
| 597 |
+
"<table border=\"1\" class=\"dataframe\">\n",
|
| 598 |
+
" <thead>\n",
|
| 599 |
+
" <tr style=\"text-align: right;\">\n",
|
| 600 |
+
" <th></th>\n",
|
| 601 |
+
" <th>id</th>\n",
|
| 602 |
+
" <th>name</th>\n",
|
| 603 |
+
" <th>supercategory</th>\n",
|
| 604 |
+
" <th>level</th>\n",
|
| 605 |
+
" </tr>\n",
|
| 606 |
+
" </thead>\n",
|
| 607 |
+
" <tbody>\n",
|
| 608 |
+
" <tr>\n",
|
| 609 |
+
" <th>0</th>\n",
|
| 610 |
+
" <td>0</td>\n",
|
| 611 |
+
" <td>classic (t-shirt)</td>\n",
|
| 612 |
+
" <td>nickname</td>\n",
|
| 613 |
+
" <td>1</td>\n",
|
| 614 |
+
" </tr>\n",
|
| 615 |
+
" <tr>\n",
|
| 616 |
+
" <th>1</th>\n",
|
| 617 |
+
" <td>1</td>\n",
|
| 618 |
+
" <td>polo (shirt)</td>\n",
|
| 619 |
+
" <td>nickname</td>\n",
|
| 620 |
+
" <td>1</td>\n",
|
| 621 |
+
" </tr>\n",
|
| 622 |
+
" <tr>\n",
|
| 623 |
+
" <th>2</th>\n",
|
| 624 |
+
" <td>2</td>\n",
|
| 625 |
+
" <td>undershirt</td>\n",
|
| 626 |
+
" <td>nickname</td>\n",
|
| 627 |
+
" <td>1</td>\n",
|
| 628 |
+
" </tr>\n",
|
| 629 |
+
" <tr>\n",
|
| 630 |
+
" <th>3</th>\n",
|
| 631 |
+
" <td>3</td>\n",
|
| 632 |
+
" <td>henley (shirt)</td>\n",
|
| 633 |
+
" <td>nickname</td>\n",
|
| 634 |
+
" <td>1</td>\n",
|
| 635 |
+
" </tr>\n",
|
| 636 |
+
" <tr>\n",
|
| 637 |
+
" <th>4</th>\n",
|
| 638 |
+
" <td>4</td>\n",
|
| 639 |
+
" <td>ringer (t-shirt)</td>\n",
|
| 640 |
+
" <td>nickname</td>\n",
|
| 641 |
+
" <td>1</td>\n",
|
| 642 |
+
" </tr>\n",
|
| 643 |
+
" <tr>\n",
|
| 644 |
+
" <th>...</th>\n",
|
| 645 |
+
" <td>...</td>\n",
|
| 646 |
+
" <td>...</td>\n",
|
| 647 |
+
" <td>...</td>\n",
|
| 648 |
+
" <td>...</td>\n",
|
| 649 |
+
" </tr>\n",
|
| 650 |
+
" <tr>\n",
|
| 651 |
+
" <th>289</th>\n",
|
| 652 |
+
" <td>336</td>\n",
|
| 653 |
+
" <td>peacock</td>\n",
|
| 654 |
+
" <td>animal</td>\n",
|
| 655 |
+
" <td>2</td>\n",
|
| 656 |
+
" </tr>\n",
|
| 657 |
+
" <tr>\n",
|
| 658 |
+
" <th>290</th>\n",
|
| 659 |
+
" <td>337</td>\n",
|
| 660 |
+
" <td>zebra</td>\n",
|
| 661 |
+
" <td>animal</td>\n",
|
| 662 |
+
" <td>2</td>\n",
|
| 663 |
+
" </tr>\n",
|
| 664 |
+
" <tr>\n",
|
| 665 |
+
" <th>291</th>\n",
|
| 666 |
+
" <td>338</td>\n",
|
| 667 |
+
" <td>giraffe</td>\n",
|
| 668 |
+
" <td>animal</td>\n",
|
| 669 |
+
" <td>2</td>\n",
|
| 670 |
+
" </tr>\n",
|
| 671 |
+
" <tr>\n",
|
| 672 |
+
" <th>292</th>\n",
|
| 673 |
+
" <td>339</td>\n",
|
| 674 |
+
" <td>toile de jouy</td>\n",
|
| 675 |
+
" <td>textile pattern</td>\n",
|
| 676 |
+
" <td>1</td>\n",
|
| 677 |
+
" </tr>\n",
|
| 678 |
+
" <tr>\n",
|
| 679 |
+
" <th>293</th>\n",
|
| 680 |
+
" <td>340</td>\n",
|
| 681 |
+
" <td>plant</td>\n",
|
| 682 |
+
" <td>textile pattern</td>\n",
|
| 683 |
+
" <td>1</td>\n",
|
| 684 |
+
" </tr>\n",
|
| 685 |
+
" </tbody>\n",
|
| 686 |
+
"</table>\n",
|
| 687 |
+
"<p>294 rows × 4 columns</p>\n",
|
| 688 |
+
"</div>"
|
| 689 |
+
],
|
| 690 |
+
"text/plain": [
|
| 691 |
+
" id name supercategory level\n",
|
| 692 |
+
"0 0 classic (t-shirt) nickname 1\n",
|
| 693 |
+
"1 1 polo (shirt) nickname 1\n",
|
| 694 |
+
"2 2 undershirt nickname 1\n",
|
| 695 |
+
"3 3 henley (shirt) nickname 1\n",
|
| 696 |
+
"4 4 ringer (t-shirt) nickname 1\n",
|
| 697 |
+
".. ... ... ... ...\n",
|
| 698 |
+
"289 336 peacock animal 2\n",
|
| 699 |
+
"290 337 zebra animal 2\n",
|
| 700 |
+
"291 338 giraffe animal 2\n",
|
| 701 |
+
"292 339 toile de jouy textile pattern 1\n",
|
| 702 |
+
"293 340 plant textile pattern 1\n",
|
| 703 |
+
"\n",
|
| 704 |
+
"[294 rows x 4 columns]"
|
| 705 |
+
]
|
| 706 |
+
},
|
| 707 |
+
"execution_count": 56,
|
| 708 |
+
"metadata": {},
|
| 709 |
+
"output_type": "execute_result"
|
| 710 |
+
}
|
| 711 |
+
],
|
| 712 |
+
"source": [
|
| 713 |
+
"attributes_df = pd.DataFrame(label_descriptions[\"attributes\"])\n",
|
| 714 |
+
"attributes_df\n"
|
| 715 |
+
]
|
| 716 |
+
},
|
| 717 |
+
{
|
| 718 |
+
"cell_type": "code",
|
| 719 |
+
"execution_count": 57,
|
| 720 |
+
"id": "b178ce00",
|
| 721 |
+
"metadata": {},
|
| 722 |
+
"outputs": [
|
| 723 |
+
{
|
| 724 |
+
"name": "stdout",
|
| 725 |
+
"output_type": "stream",
|
| 726 |
+
"text": [
|
| 727 |
+
"Found 0 potentially SUGGESTIVE categories\n",
|
| 728 |
+
"Found 4 potentially SUGGESTIVE attributes\n",
|
| 729 |
+
"\n",
|
| 730 |
+
"============================================================\n",
|
| 731 |
+
"POTENTIALLY SUGGESTIVE CATEGORIES:\n",
|
| 732 |
+
"============================================================\n",
|
| 733 |
+
"Empty DataFrame\n",
|
| 734 |
+
"Columns: [id, name, supercategory]\n",
|
| 735 |
+
"Index: []\n",
|
| 736 |
+
"\n",
|
| 737 |
+
"============================================================\n",
|
| 738 |
+
"POTENTIALLY SUGGESTIVE ATTRIBUTES:\n",
|
| 739 |
+
"============================================================\n",
|
| 740 |
+
" id name supercategory\n",
|
| 741 |
+
" 51 booty (shorts) nickname\n",
|
| 742 |
+
"106 bodycon (dress) nickname\n",
|
| 743 |
+
"148 micro (length) length\n",
|
| 744 |
+
"192 plunging (neckline) neckline type\n"
|
| 745 |
+
]
|
| 746 |
+
}
|
| 747 |
+
],
|
| 748 |
+
"source": [
|
| 749 |
+
"# ULTRA-RESTRICTIVE criteria for UNCERTAIN SUGGESTIVE content\n",
|
| 750 |
+
"# Only items that are clearly and unambiguously SUGGESTIVE/revealing\n",
|
| 751 |
+
"# Removed: crop tops, halter tops, tube tops, mini length, tight fit, etc. - too many false positives\n",
|
| 752 |
+
"\n",
|
| 753 |
+
"# Only the most obviously SUGGESTIVE items\n",
|
| 754 |
+
"revealing_keywords = {\n",
|
| 755 |
+
" 'categories': [\n",
|
| 756 |
+
" # Only inherently revealing categories - removed most as they had false positives\n",
|
| 757 |
+
" # 'booty', # removed - checking attribute instead\n",
|
| 758 |
+
" # 'bodycon', # removed - checking attribute instead\n",
|
| 759 |
+
" ],\n",
|
| 760 |
+
" 'attributes': [\n",
|
| 761 |
+
" # ONLY the most clearly SUGGESTIVE items\n",
|
| 762 |
+
" 'booty (shorts)', # very specific and clearly SUGGESTIVE\n",
|
| 763 |
+
" 'bodycon (dress)', # form-fitting, often revealing\n",
|
| 764 |
+
" # Removed: crop (top), halter (top), tube (top), camisole, slip (dress) - too many false positives\n",
|
| 765 |
+
" ]\n",
|
| 766 |
+
"}\n",
|
| 767 |
+
"\n",
|
| 768 |
+
"# Only the most revealing patterns\n",
|
| 769 |
+
"revealing_patterns = {\n",
|
| 770 |
+
" 'length': [\n",
|
| 771 |
+
" # Removed: mini (length) - too broad, many modest mini skirts\n",
|
| 772 |
+
" 'micro (length)', # only very short - but still might have false positives\n",
|
| 773 |
+
" ],\n",
|
| 774 |
+
" 'neckline type': [\n",
|
| 775 |
+
" 'plunging (neckline)', # only the most revealing neckline\n",
|
| 776 |
+
" # Removed: off-the-shoulder, one shoulder - can be modest\n",
|
| 777 |
+
" ],\n",
|
| 778 |
+
" 'silhouette': [\n",
|
| 779 |
+
" # Removed: tight (fit) - way too broad, many normal clothes are tight\n",
|
| 780 |
+
" ],\n",
|
| 781 |
+
" 'nickname': [\n",
|
| 782 |
+
" # Only the most clearly SUGGESTIVE\n",
|
| 783 |
+
" 'booty (shorts)',\n",
|
| 784 |
+
" 'bodycon (dress)',\n",
|
| 785 |
+
" ]\n",
|
| 786 |
+
"}\n",
|
| 787 |
+
"\n",
|
| 788 |
+
"def is_potentially_SUGGESTIVE(name: str, supercategory: str = None) -> bool:\n",
|
| 789 |
+
" \"\"\"Check if a category or attribute name suggests potentially SUGGESTIVE content.\n",
|
| 790 |
+
" ULTRA-RESTRICTIVE: Only matches clearly SUGGESTIVE items to avoid false positives.\"\"\"\n",
|
| 791 |
+
" name_lower = name.lower()\n",
|
| 792 |
+
" \n",
|
| 793 |
+
" # Special case: check for \"booty\" in any context (shorts) - very specific\n",
|
| 794 |
+
" if 'booty' in name_lower:\n",
|
| 795 |
+
" return True\n",
|
| 796 |
+
" \n",
|
| 797 |
+
" # Check for revealing patterns by supercategory - very restrictive\n",
|
| 798 |
+
" if supercategory:\n",
|
| 799 |
+
" if supercategory == 'length':\n",
|
| 800 |
+
" # Only micro length (very short) - removed mini as too broad\n",
|
| 801 |
+
" if 'micro (length)' in name_lower:\n",
|
| 802 |
+
" return True\n",
|
| 803 |
+
" elif supercategory == 'neckline type':\n",
|
| 804 |
+
" # Only plunging neckline - most revealing\n",
|
| 805 |
+
" if 'plunging (neckline)' in name_lower:\n",
|
| 806 |
+
" return True\n",
|
| 807 |
+
" elif supercategory == 'nickname':\n",
|
| 808 |
+
" # Only the most clearly SUGGESTIVE styles\n",
|
| 809 |
+
" for pattern in revealing_patterns['nickname']:\n",
|
| 810 |
+
" if pattern.lower() in name_lower:\n",
|
| 811 |
+
" return True\n",
|
| 812 |
+
" \n",
|
| 813 |
+
" # Check categories for inherently revealing items\n",
|
| 814 |
+
" for keyword in revealing_keywords['categories']:\n",
|
| 815 |
+
" if keyword.lower() in name_lower:\n",
|
| 816 |
+
" return True\n",
|
| 817 |
+
" \n",
|
| 818 |
+
" # Check attributes for inherently revealing items\n",
|
| 819 |
+
" for keyword in revealing_keywords['attributes']:\n",
|
| 820 |
+
" if keyword.lower() in name_lower:\n",
|
| 821 |
+
" return True\n",
|
| 822 |
+
" \n",
|
| 823 |
+
" return False\n",
|
| 824 |
+
"\n",
|
| 825 |
+
"# Filter categories\n",
|
| 826 |
+
"SUGGESTIVE_categories = categories_df[\n",
|
| 827 |
+
" categories_df['name'].apply(lambda x: is_potentially_SUGGESTIVE(x))\n",
|
| 828 |
+
"].copy()\n",
|
| 829 |
+
"\n",
|
| 830 |
+
"# Filter attributes\n",
|
| 831 |
+
"SUGGESTIVE_attributes = attributes_df[\n",
|
| 832 |
+
" attributes_df.apply(lambda row: is_potentially_SUGGESTIVE(row['name'], row['supercategory']), axis=1)\n",
|
| 833 |
+
"].copy()\n",
|
| 834 |
+
"\n",
|
| 835 |
+
"print(f\"Found {len(SUGGESTIVE_categories)} potentially SUGGESTIVE categories\")\n",
|
| 836 |
+
"print(f\"Found {len(SUGGESTIVE_attributes)} potentially SUGGESTIVE attributes\")\n",
|
| 837 |
+
"print(\"\\n\" + \"=\"*60)\n",
|
| 838 |
+
"print(\"POTENTIALLY SUGGESTIVE CATEGORIES:\")\n",
|
| 839 |
+
"print(\"=\"*60)\n",
|
| 840 |
+
"print(SUGGESTIVE_categories[['id', 'name', 'supercategory']].to_string(index=False))\n",
|
| 841 |
+
"print(\"\\n\" + \"=\"*60)\n",
|
| 842 |
+
"print(\"POTENTIALLY SUGGESTIVE ATTRIBUTES:\")\n",
|
| 843 |
+
"print(\"=\"*60)\n",
|
| 844 |
+
"print(SUGGESTIVE_attributes[['id', 'name', 'supercategory']].to_string(index=False))\n"
|
| 845 |
+
]
|
| 846 |
+
},
|
| 847 |
+
{
|
| 848 |
+
"cell_type": "code",
|
| 849 |
+
"execution_count": 58,
|
| 850 |
+
"id": "7ff15a1c",
|
| 851 |
+
"metadata": {},
|
| 852 |
+
"outputs": [
|
| 853 |
+
{
|
| 854 |
+
"name": "stdout",
|
| 855 |
+
"output_type": "stream",
|
| 856 |
+
"text": [
|
| 857 |
+
"============================================================\n",
|
| 858 |
+
"BREAKDOWN BY SUPERCATEGORY:\n",
|
| 859 |
+
"============================================================\n",
|
| 860 |
+
"\n",
|
| 861 |
+
"Attributes by supercategory:\n",
|
| 862 |
+
"supercategory\n",
|
| 863 |
+
"nickname 2\n",
|
| 864 |
+
"length 1\n",
|
| 865 |
+
"neckline type 1\n",
|
| 866 |
+
"dtype: int64\n",
|
| 867 |
+
"\n",
|
| 868 |
+
"Detailed attribute breakdown:\n",
|
| 869 |
+
"\n",
|
| 870 |
+
"nickname:\n",
|
| 871 |
+
" - booty (shorts) (id: 51)\n",
|
| 872 |
+
" - bodycon (dress) (id: 106)\n",
|
| 873 |
+
"\n",
|
| 874 |
+
"length:\n",
|
| 875 |
+
" - micro (length) (id: 148)\n",
|
| 876 |
+
"\n",
|
| 877 |
+
"neckline type:\n",
|
| 878 |
+
" - plunging (neckline) (id: 192)\n",
|
| 879 |
+
"\n",
|
| 880 |
+
"============================================================\n",
|
| 881 |
+
"SUMMARY DATAFRAME (for export):\n",
|
| 882 |
+
"============================================================\n",
|
| 883 |
+
" type id name supercategory\n",
|
| 884 |
+
"0 attribute 51 booty (shorts) nickname\n",
|
| 885 |
+
"1 attribute 106 bodycon (dress) nickname\n",
|
| 886 |
+
"2 attribute 148 micro (length) length\n",
|
| 887 |
+
"3 attribute 192 plunging (neckline) neckline type\n"
|
| 888 |
+
]
|
| 889 |
+
}
|
| 890 |
+
],
|
| 891 |
+
"source": [
|
| 892 |
+
"# Create a detailed breakdown by supercategory\n",
|
| 893 |
+
"print(\"=\"*60)\n",
|
| 894 |
+
"print(\"BREAKDOWN BY SUPERCATEGORY:\")\n",
|
| 895 |
+
"print(\"=\"*60)\n",
|
| 896 |
+
"\n",
|
| 897 |
+
"if len(SUGGESTIVE_attributes) > 0:\n",
|
| 898 |
+
" print(\"\\nAttributes by supercategory:\")\n",
|
| 899 |
+
" print(SUGGESTIVE_attributes.groupby('supercategory').size().sort_values(ascending=False))\n",
|
| 900 |
+
" \n",
|
| 901 |
+
" print(\"\\nDetailed attribute breakdown:\")\n",
|
| 902 |
+
" for supercat in SUGGESTIVE_attributes['supercategory'].unique():\n",
|
| 903 |
+
" print(f\"\\n{supercat}:\")\n",
|
| 904 |
+
" subset = SUGGESTIVE_attributes[SUGGESTIVE_attributes['supercategory'] == supercat]\n",
|
| 905 |
+
" for _, row in subset.iterrows():\n",
|
| 906 |
+
" print(f\" - {row['name']} (id: {row['id']})\")\n",
|
| 907 |
+
"\n",
|
| 908 |
+
"# Create summary DataFrames for export\n",
|
| 909 |
+
"SUGGESTIVE_summary = {\n",
|
| 910 |
+
" 'type': ['category'] * len(SUGGESTIVE_categories) + ['attribute'] * len(SUGGESTIVE_attributes),\n",
|
| 911 |
+
" 'id': list(SUGGESTIVE_categories['id']) + list(SUGGESTIVE_attributes['id']),\n",
|
| 912 |
+
" 'name': list(SUGGESTIVE_categories['name']) + list(SUGGESTIVE_attributes['name']),\n",
|
| 913 |
+
" 'supercategory': list(SUGGESTIVE_categories['supercategory']) + list(SUGGESTIVE_attributes['supercategory'])\n",
|
| 914 |
+
"}\n",
|
| 915 |
+
"\n",
|
| 916 |
+
"SUGGESTIVE_summary_df = pd.DataFrame(SUGGESTIVE_summary)\n",
|
| 917 |
+
"print(\"\\n\" + \"=\"*60)\n",
|
| 918 |
+
"print(\"SUMMARY DATAFRAME (for export):\")\n",
|
| 919 |
+
"print(\"=\"*60)\n",
|
| 920 |
+
"print(SUGGESTIVE_summary_df)\n",
|
| 921 |
+
"\n",
|
| 922 |
+
"# Optionally save to CSV\n",
|
| 923 |
+
"# SUGGESTIVE_summary_df.to_csv(DATA_PATH / \"SUGGESTIVE_labels.csv\", index=False)\n"
|
| 924 |
+
]
|
| 925 |
+
},
|
| 926 |
+
{
|
| 927 |
+
"cell_type": "code",
|
| 928 |
+
"execution_count": 59,
|
| 929 |
+
"id": "a46d616c",
|
| 930 |
+
"metadata": {},
|
| 931 |
+
"outputs": [
|
| 932 |
+
{
|
| 933 |
+
"name": "stdout",
|
| 934 |
+
"output_type": "stream",
|
| 935 |
+
"text": [
|
| 936 |
+
"SUGGESTIVE category IDs: set()\n",
|
| 937 |
+
"SUGGESTIVE attribute IDs: {192, 106, 51, 148}\n",
|
| 938 |
+
"\n",
|
| 939 |
+
"Total unique SUGGESTIVE category IDs: 0\n",
|
| 940 |
+
"Total unique SUGGESTIVE attribute IDs: 4\n",
|
| 941 |
+
"\n",
|
| 942 |
+
"============================================================\n",
|
| 943 |
+
"FILTERING RESULTS:\n",
|
| 944 |
+
"============================================================\n",
|
| 945 |
+
"Total images in fashion_df: 333401\n",
|
| 946 |
+
"Images with SUGGESTIVE content: 5218\n",
|
| 947 |
+
"Percentage: 1.57%\n",
|
| 948 |
+
"\n",
|
| 949 |
+
"Breakdown:\n",
|
| 950 |
+
" - Matched by category only: 0\n",
|
| 951 |
+
" - Matched by attribute only: 5218\n",
|
| 952 |
+
" - Matched by both: 0\n",
|
| 953 |
+
"\n",
|
| 954 |
+
"============================================================\n",
|
| 955 |
+
"SAMPLE OF SUGGESTIVE IMAGES (first 10 rows):\n",
|
| 956 |
+
"============================================================\n",
|
| 957 |
+
" ImageId ClassId \\\n",
|
| 958 |
+
"49 000b3a87508b0fa185fbd53ecbe2e4c6 33 \n",
|
| 959 |
+
"147 001a66b16b12f12dc45e2bba40e04683 10 \n",
|
| 960 |
+
"180 00211c06b1fe730097dde122cd4d3f8c 7 \n",
|
| 961 |
+
"304 003ae3da258f7ba7267af5f159dd3502 10 \n",
|
| 962 |
+
"369 0048f6c47de85cc4dc263912bd0ff6f5 33 \n",
|
| 963 |
+
"372 0048f6c47de85cc4dc263912bd0ff6f5 7 \n",
|
| 964 |
+
"445 005380bd939eb68085af3f804d387824 10 \n",
|
| 965 |
+
"456 0054564ae183ad9a1b152eef0bc11e1d 10 \n",
|
| 966 |
+
"465 0055347a114b215f8f469fec9e38c272 10 \n",
|
| 967 |
+
"526 005e9b75edcee7d655c390ea5416641d 33 \n",
|
| 968 |
+
"\n",
|
| 969 |
+
" AttributesIds \n",
|
| 970 |
+
"49 192 \n",
|
| 971 |
+
"147 106,115,127,142,149,229,295,316 \n",
|
| 972 |
+
"180 50,115,136,142,148,230,295,300,317 \n",
|
| 973 |
+
"304 106,127,141,150,295,316,317 \n",
|
| 974 |
+
"369 192 \n",
|
| 975 |
+
"372 50,115,136,142,148,317 \n",
|
| 976 |
+
"445 106,114,127,142,150,229,295,311,317 \n",
|
| 977 |
+
"456 106,115,127,142,149,229,295,316,317 \n",
|
| 978 |
+
"465 106,115,127,142,149,229,295,316,317 \n",
|
| 979 |
+
"526 192 \n"
|
| 980 |
+
]
|
| 981 |
+
}
|
| 982 |
+
],
|
| 983 |
+
"source": [
|
| 984 |
+
"# Get IDs of SUGGESTIVE categories and attributes\n",
|
| 985 |
+
"SUGGESTIVE_category_ids = set(SUGGESTIVE_categories['id'].tolist())\n",
|
| 986 |
+
"SUGGESTIVE_attribute_ids = set(SUGGESTIVE_attributes['id'].tolist())\n",
|
| 987 |
+
"\n",
|
| 988 |
+
"print(f\"SUGGESTIVE category IDs: {SUGGESTIVE_category_ids}\")\n",
|
| 989 |
+
"print(f\"SUGGESTIVE attribute IDs: {SUGGESTIVE_attribute_ids}\")\n",
|
| 990 |
+
"print(f\"\\nTotal unique SUGGESTIVE category IDs: {len(SUGGESTIVE_category_ids)}\")\n",
|
| 991 |
+
"print(f\"Total unique SUGGESTIVE attribute IDs: {len(SUGGESTIVE_attribute_ids)}\")\n",
|
| 992 |
+
"\n",
|
| 993 |
+
"# Function to check if AttributesIds string contains any SUGGESTIVE attribute ID\n",
|
| 994 |
+
"def has_SUGGESTIVE_attribute(attributes_str: str) -> bool:\n",
|
| 995 |
+
" \"\"\"Check if the comma-separated attributes string contains any SUGGESTIVE attribute ID.\"\"\"\n",
|
| 996 |
+
" if pd.isna(attributes_str) or attributes_str == '':\n",
|
| 997 |
+
" return False\n",
|
| 998 |
+
" # Parse comma-separated string and convert to integers\n",
|
| 999 |
+
" try:\n",
|
| 1000 |
+
" attr_ids = [int(x.strip()) for x in str(attributes_str).split(',')]\n",
|
| 1001 |
+
" return bool(SUGGESTIVE_attribute_ids.intersection(set(attr_ids)))\n",
|
| 1002 |
+
" except (ValueError, AttributeError):\n",
|
| 1003 |
+
" return False\n",
|
| 1004 |
+
"\n",
|
| 1005 |
+
"# Filter fashion_df for SUGGESTIVE images\n",
|
| 1006 |
+
"# An image is SUGGESTIVE if:\n",
|
| 1007 |
+
"# 1. Its ClassId matches a SUGGESTIVE category, OR\n",
|
| 1008 |
+
"# 2. Its AttributesIds contains any SUGGESTIVE attribute ID\n",
|
| 1009 |
+
"\n",
|
| 1010 |
+
"SUGGESTIVE_mask = (\n",
|
| 1011 |
+
" fashion_df['ClassId'].isin(SUGGESTIVE_category_ids) |\n",
|
| 1012 |
+
" fashion_df['AttributesIds'].apply(has_SUGGESTIVE_attribute)\n",
|
| 1013 |
+
")\n",
|
| 1014 |
+
"\n",
|
| 1015 |
+
"SUGGESTIVE_fashion_df = fashion_df[SUGGESTIVE_mask].copy()\n",
|
| 1016 |
+
"\n",
|
| 1017 |
+
"print(\"\\n\" + \"=\"*60)\n",
|
| 1018 |
+
"print(\"FILTERING RESULTS:\")\n",
|
| 1019 |
+
"print(\"=\"*60)\n",
|
| 1020 |
+
"print(f\"Total images in fashion_df: {len(fashion_df)}\")\n",
|
| 1021 |
+
"print(f\"Images with SUGGESTIVE content: {len(SUGGESTIVE_fashion_df)}\")\n",
|
| 1022 |
+
"print(f\"Percentage: {len(SUGGESTIVE_fashion_df) / len(fashion_df) * 100:.2f}%\")\n",
|
| 1023 |
+
"\n",
|
| 1024 |
+
"# Show breakdown by type of match\n",
|
| 1025 |
+
"category_matches = fashion_df['ClassId'].isin(SUGGESTIVE_category_ids).sum()\n",
|
| 1026 |
+
"attribute_matches = fashion_df['AttributesIds'].apply(has_SUGGESTIVE_attribute).sum()\n",
|
| 1027 |
+
"both_matches = ((fashion_df['ClassId'].isin(SUGGESTIVE_category_ids)) & \n",
|
| 1028 |
+
" (fashion_df['AttributesIds'].apply(has_SUGGESTIVE_attribute))).sum()\n",
|
| 1029 |
+
"\n",
|
| 1030 |
+
"print(f\"\\nBreakdown:\")\n",
|
| 1031 |
+
"print(f\" - Matched by category only: {category_matches - both_matches}\")\n",
|
| 1032 |
+
"print(f\" - Matched by attribute only: {attribute_matches - both_matches}\")\n",
|
| 1033 |
+
"print(f\" - Matched by both: {both_matches}\")\n",
|
| 1034 |
+
"\n",
|
| 1035 |
+
"# Show sample of SUGGESTIVE images\n",
|
| 1036 |
+
"print(\"\\n\" + \"=\"*60)\n",
|
| 1037 |
+
"print(\"SAMPLE OF SUGGESTIVE IMAGES (first 10 rows):\")\n",
|
| 1038 |
+
"print(\"=\"*60)\n",
|
| 1039 |
+
"print(SUGGESTIVE_fashion_df[['ImageId', 'ClassId', 'AttributesIds']].head(10))\n"
|
| 1040 |
+
]
|
| 1041 |
+
},
|
| 1042 |
+
{
|
| 1043 |
+
"cell_type": "code",
|
| 1044 |
+
"execution_count": 60,
|
| 1045 |
+
"id": "0e1b67fa",
|
| 1046 |
+
"metadata": {},
|
| 1047 |
+
"outputs": [
|
| 1048 |
+
{
|
| 1049 |
+
"name": "stdout",
|
| 1050 |
+
"output_type": "stream",
|
| 1051 |
+
"text": [
|
| 1052 |
+
"============================================================\n",
|
| 1053 |
+
"DIAGNOSTIC: BREAKDOWN OF MATCHES\n",
|
| 1054 |
+
"============================================================\n",
|
| 1055 |
+
"\n",
|
| 1056 |
+
"1. Matches by Category (ClassId):\n",
|
| 1057 |
+
" No category matches\n",
|
| 1058 |
+
"\n",
|
| 1059 |
+
"2. Matches by Attribute (AttributesIds):\n",
|
| 1060 |
+
" - micro (length) (id: 148): 3190 matches\n",
|
| 1061 |
+
" - bodycon (dress) (id: 106): 1144 matches\n",
|
| 1062 |
+
" - plunging (neckline) (id: 192): 966 matches\n",
|
| 1063 |
+
" - booty (shorts) (id: 51): 20 matches\n",
|
| 1064 |
+
"\n",
|
| 1065 |
+
"3. Sample rows with their matched attributes/categories:\n",
|
| 1066 |
+
" (First 5 rows showing ImageId, ClassId, and matched attributes)\n",
|
| 1067 |
+
"\n",
|
| 1068 |
+
" ImageId: 000b3a87508b0fa185fbd53ecbe2e4c6\n",
|
| 1069 |
+
" ClassId: 33 -> neckline\n",
|
| 1070 |
+
" Matched Attributes: ['plunging (neckline)']\n",
|
| 1071 |
+
"\n",
|
| 1072 |
+
" ImageId: 001a66b16b12f12dc45e2bba40e04683\n",
|
| 1073 |
+
" ClassId: 10 -> dress\n",
|
| 1074 |
+
" Matched Attributes: ['bodycon (dress)']\n",
|
| 1075 |
+
"\n",
|
| 1076 |
+
" ImageId: 00211c06b1fe730097dde122cd4d3f8c\n",
|
| 1077 |
+
" ClassId: 7 -> shorts\n",
|
| 1078 |
+
" Matched Attributes: ['micro (length)']\n",
|
| 1079 |
+
"\n",
|
| 1080 |
+
" ImageId: 003ae3da258f7ba7267af5f159dd3502\n",
|
| 1081 |
+
" ClassId: 10 -> dress\n",
|
| 1082 |
+
" Matched Attributes: ['bodycon (dress)']\n",
|
| 1083 |
+
"\n",
|
| 1084 |
+
" ImageId: 0048f6c47de85cc4dc263912bd0ff6f5\n",
|
| 1085 |
+
" ClassId: 33 -> neckline\n",
|
| 1086 |
+
" Matched Attributes: ['plunging (neckline)']\n"
|
| 1087 |
+
]
|
| 1088 |
+
}
|
| 1089 |
+
],
|
| 1090 |
+
"source": [
|
| 1091 |
+
"# DIAGNOSTIC: Show what's actually being matched\n",
|
| 1092 |
+
"# This helps identify which attributes/categories are causing matches\n",
|
| 1093 |
+
"\n",
|
| 1094 |
+
"print(\"=\"*60)\n",
|
| 1095 |
+
"print(\"DIAGNOSTIC: BREAKDOWN OF MATCHES\")\n",
|
| 1096 |
+
"print(\"=\"*60)\n",
|
| 1097 |
+
"\n",
|
| 1098 |
+
"# Create a mapping of attribute IDs to names\n",
|
| 1099 |
+
"attr_id_to_name = dict(zip(attributes_df['id'], attributes_df['name']))\n",
|
| 1100 |
+
"cat_id_to_name = dict(zip(categories_df['id'], categories_df['name']))\n",
|
| 1101 |
+
"\n",
|
| 1102 |
+
"# Analyze what's matching in the SUGGESTIVE_fashion_df\n",
|
| 1103 |
+
"print(\"\\n1. Matches by Category (ClassId):\")\n",
|
| 1104 |
+
"category_matches = SUGGESTIVE_fashion_df[SUGGESTIVE_fashion_df['ClassId'].isin(SUGGESTIVE_category_ids)]\n",
|
| 1105 |
+
"if len(category_matches) > 0:\n",
|
| 1106 |
+
" cat_counts = category_matches['ClassId'].value_counts()\n",
|
| 1107 |
+
" for cat_id, count in cat_counts.items():\n",
|
| 1108 |
+
" cat_name = cat_id_to_name.get(cat_id, f\"Unknown (id: {cat_id})\")\n",
|
| 1109 |
+
" print(f\" - {cat_name} (id: {cat_id}): {count} matches\")\n",
|
| 1110 |
+
"else:\n",
|
| 1111 |
+
" print(\" No category matches\")\n",
|
| 1112 |
+
"\n",
|
| 1113 |
+
"print(\"\\n2. Matches by Attribute (AttributesIds):\")\n",
|
| 1114 |
+
"# Find which attributes are matching\n",
|
| 1115 |
+
"matching_attributes = {}\n",
|
| 1116 |
+
"for idx, row in SUGGESTIVE_fashion_df.iterrows():\n",
|
| 1117 |
+
" if pd.notna(row['AttributesIds']) and row['AttributesIds'] != '':\n",
|
| 1118 |
+
" try:\n",
|
| 1119 |
+
" attr_ids = [int(x.strip()) for x in str(row['AttributesIds']).split(',')]\n",
|
| 1120 |
+
" matching_attr_ids = SUGGESTIVE_attribute_ids.intersection(set(attr_ids))\n",
|
| 1121 |
+
" for attr_id in matching_attr_ids:\n",
|
| 1122 |
+
" matching_attributes[attr_id] = matching_attributes.get(attr_id, 0) + 1\n",
|
| 1123 |
+
" except:\n",
|
| 1124 |
+
" pass\n",
|
| 1125 |
+
"\n",
|
| 1126 |
+
"if matching_attributes:\n",
|
| 1127 |
+
" for attr_id, count in sorted(matching_attributes.items(), key=lambda x: x[1], reverse=True):\n",
|
| 1128 |
+
" attr_name = attr_id_to_name.get(attr_id, f\"Unknown (id: {attr_id})\")\n",
|
| 1129 |
+
" print(f\" - {attr_name} (id: {attr_id}): {count} matches\")\n",
|
| 1130 |
+
"else:\n",
|
| 1131 |
+
" print(\" No attribute matches\")\n",
|
| 1132 |
+
"\n",
|
| 1133 |
+
"print(\"\\n3. Sample rows with their matched attributes/categories:\")\n",
|
| 1134 |
+
"print(\" (First 5 rows showing ImageId, ClassId, and matched attributes)\")\n",
|
| 1135 |
+
"for idx, row in SUGGESTIVE_fashion_df.head(5).iterrows():\n",
|
| 1136 |
+
" print(f\"\\n ImageId: {row['ImageId']}\")\n",
|
| 1137 |
+
" print(f\" ClassId: {row['ClassId']} -> {cat_id_to_name.get(row['ClassId'], 'Unknown')}\")\n",
|
| 1138 |
+
" if pd.notna(row['AttributesIds']) and row['AttributesIds'] != '':\n",
|
| 1139 |
+
" try:\n",
|
| 1140 |
+
" attr_ids = [int(x.strip()) for x in str(row['AttributesIds']).split(',')]\n",
|
| 1141 |
+
" matching_attr_ids = SUGGESTIVE_attribute_ids.intersection(set(attr_ids))\n",
|
| 1142 |
+
" if matching_attr_ids:\n",
|
| 1143 |
+
" print(f\" Matched Attributes: {[attr_id_to_name.get(aid, f'id:{aid}') for aid in matching_attr_ids]}\")\n",
|
| 1144 |
+
" except:\n",
|
| 1145 |
+
" pass\n"
|
| 1146 |
+
]
|
| 1147 |
+
},
|
| 1148 |
+
{
|
| 1149 |
+
"cell_type": "code",
|
| 1150 |
+
"execution_count": 61,
|
| 1151 |
+
"id": "aaaf424a",
|
| 1152 |
+
"metadata": {},
|
| 1153 |
+
"outputs": [
|
| 1154 |
+
{
|
| 1155 |
+
"name": "stdout",
|
| 1156 |
+
"output_type": "stream",
|
| 1157 |
+
"text": [
|
| 1158 |
+
"============================================================\n",
|
| 1159 |
+
"UNIQUE IMAGE ANALYSIS:\n",
|
| 1160 |
+
"============================================================\n",
|
| 1161 |
+
"Total unique images in dataset: 45623\n",
|
| 1162 |
+
"Unique images with SUGGESTIVE content: 5079\n",
|
| 1163 |
+
"Percentage of unique images: 11.13%\n",
|
| 1164 |
+
"\n",
|
| 1165 |
+
"Average annotations per SUGGESTIVE image: 1.03\n",
|
| 1166 |
+
"Max annotations for a single image: 4\n",
|
| 1167 |
+
"Min annotations for a single image: 1\n",
|
| 1168 |
+
"\n",
|
| 1169 |
+
"============================================================\n",
|
| 1170 |
+
"DISTRIBUTION OF SUGGESTIVE CATEGORIES IN FILTERED DATA:\n",
|
| 1171 |
+
"============================================================\n",
|
| 1172 |
+
"ClassId\n",
|
| 1173 |
+
"10 1502\n",
|
| 1174 |
+
"33 965\n",
|
| 1175 |
+
"7 857\n",
|
| 1176 |
+
"4 684\n",
|
| 1177 |
+
"1 322\n",
|
| 1178 |
+
"0 317\n",
|
| 1179 |
+
"9 215\n",
|
| 1180 |
+
"8 123\n",
|
| 1181 |
+
"3 83\n",
|
| 1182 |
+
"2 79\n",
|
| 1183 |
+
"11 51\n",
|
| 1184 |
+
"5 11\n",
|
| 1185 |
+
"12 8\n",
|
| 1186 |
+
"37 1\n",
|
| 1187 |
+
"Name: count, dtype: int64\n",
|
| 1188 |
+
"\n",
|
| 1189 |
+
"Top SUGGESTIVE categories by count:\n",
|
| 1190 |
+
" - dress (id: 10): 1502 annotations\n",
|
| 1191 |
+
" - neckline (id: 33): 965 annotations\n",
|
| 1192 |
+
" - shorts (id: 7): 857 annotations\n",
|
| 1193 |
+
" - jacket (id: 4): 684 annotations\n",
|
| 1194 |
+
" - top, t-shirt, sweatshirt (id: 1): 322 annotations\n",
|
| 1195 |
+
" - shirt, blouse (id: 0): 317 annotations\n",
|
| 1196 |
+
" - coat (id: 9): 215 annotations\n",
|
| 1197 |
+
" - skirt (id: 8): 123 annotations\n",
|
| 1198 |
+
" - cardigan (id: 3): 83 annotations\n",
|
| 1199 |
+
" - sweater (id: 2): 79 annotations\n"
|
| 1200 |
+
]
|
| 1201 |
+
}
|
| 1202 |
+
],
|
| 1203 |
+
"source": [
|
| 1204 |
+
"# Get unique image IDs (since same image can have multiple annotations)\n",
|
| 1205 |
+
"unique_SUGGESTIVE_image_ids = SUGGESTIVE_fashion_df['ImageId'].unique()\n",
|
| 1206 |
+
"unique_total_image_ids = fashion_df['ImageId'].unique()\n",
|
| 1207 |
+
"\n",
|
| 1208 |
+
"print(\"=\"*60)\n",
|
| 1209 |
+
"print(\"UNIQUE IMAGE ANALYSIS:\")\n",
|
| 1210 |
+
"print(\"=\"*60)\n",
|
| 1211 |
+
"print(f\"Total unique images in dataset: {len(unique_total_image_ids)}\")\n",
|
| 1212 |
+
"print(f\"Unique images with SUGGESTIVE content: {len(unique_SUGGESTIVE_image_ids)}\")\n",
|
| 1213 |
+
"print(f\"Percentage of unique images: {len(unique_SUGGESTIVE_image_ids) / len(unique_total_image_ids) * 100:.2f}%\")\n",
|
| 1214 |
+
"\n",
|
| 1215 |
+
"# Count how many annotations per SUGGESTIVE image\n",
|
| 1216 |
+
"annotations_per_image = SUGGESTIVE_fashion_df.groupby('ImageId').size().sort_values(ascending=False)\n",
|
| 1217 |
+
"print(f\"\\nAverage annotations per SUGGESTIVE image: {annotations_per_image.mean():.2f}\")\n",
|
| 1218 |
+
"print(f\"Max annotations for a single image: {annotations_per_image.max()}\")\n",
|
| 1219 |
+
"print(f\"Min annotations for a single image: {annotations_per_image.min()}\")\n",
|
| 1220 |
+
"\n",
|
| 1221 |
+
"# Show distribution of SUGGESTIVE categories in the filtered data\n",
|
| 1222 |
+
"print(\"\\n\" + \"=\"*60)\n",
|
| 1223 |
+
"print(\"DISTRIBUTION OF SUGGESTIVE CATEGORIES IN FILTERED DATA:\")\n",
|
| 1224 |
+
"print(\"=\"*60)\n",
|
| 1225 |
+
"category_counts = SUGGESTIVE_fashion_df['ClassId'].value_counts()\n",
|
| 1226 |
+
"print(category_counts)\n",
|
| 1227 |
+
"\n",
|
| 1228 |
+
"# Map category IDs to names for better readability\n",
|
| 1229 |
+
"category_id_to_name = dict(zip(categories_df['id'], categories_df['name']))\n",
|
| 1230 |
+
"print(\"\\nTop SUGGESTIVE categories by count:\")\n",
|
| 1231 |
+
"for cat_id, count in category_counts.head(10).items():\n",
|
| 1232 |
+
" cat_name = category_id_to_name.get(cat_id, f\"Unknown (id: {cat_id})\")\n",
|
| 1233 |
+
" print(f\" - {cat_name} (id: {cat_id}): {count} annotations\")\n",
|
| 1234 |
+
"\n",
|
| 1235 |
+
"# Save the filtered DataFrame\n",
|
| 1236 |
+
"# SUGGESTIVE_fashion_df.to_csv(DATA_PATH / \"SUGGESTIVE_train.csv\", index=False)\n",
|
| 1237 |
+
"# pd.Series(unique_SUGGESTIVE_image_ids).to_csv(DATA_PATH / \"SUGGESTIVE_image_ids.csv\", index=False, header=['ImageId'])\n"
|
| 1238 |
+
]
|
| 1239 |
+
},
|
| 1240 |
+
{
|
| 1241 |
+
"cell_type": "code",
|
| 1242 |
+
"execution_count": 62,
|
| 1243 |
+
"id": "a4736cf0",
|
| 1244 |
+
"metadata": {},
|
| 1245 |
+
"outputs": [
|
| 1246 |
+
{
|
| 1247 |
+
"name": "stdout",
|
| 1248 |
+
"output_type": "stream",
|
| 1249 |
+
"text": [
|
| 1250 |
+
"============================================================\n",
|
| 1251 |
+
"CREATING NEW DATASET\n",
|
| 1252 |
+
"============================================================\n",
|
| 1253 |
+
"Total unique SUGGESTIVE image IDs: 5079\n",
|
| 1254 |
+
"\n",
|
| 1255 |
+
"Created folder: /Users/youniss/Documents/GitHub/haram-police/data/new_dataset\n",
|
| 1256 |
+
"\n",
|
| 1257 |
+
"Copying images from /Users/youniss/Documents/GitHub/haram-police/data/train and /Users/youniss/Documents/GitHub/haram-police/data/test...\n",
|
| 1258 |
+
"\n",
|
| 1259 |
+
"✓ Successfully copied: 5079 images\n",
|
| 1260 |
+
"\n",
|
| 1261 |
+
"✓ Saved DataFrame to: /Users/youniss/Documents/GitHub/haram-police/data/SUGGESTIVE_fashion.csv\n",
|
| 1262 |
+
" Total rows: 5218\n",
|
| 1263 |
+
"\n",
|
| 1264 |
+
"============================================================\n",
|
| 1265 |
+
"SUMMARY:\n",
|
| 1266 |
+
"============================================================\n",
|
| 1267 |
+
" - Images folder: /Users/youniss/Documents/GitHub/haram-police/data/new_dataset\n",
|
| 1268 |
+
" - Images copied: 5079\n",
|
| 1269 |
+
" - CSV file: /Users/youniss/Documents/GitHub/haram-police/data/SUGGESTIVE_fashion.csv\n",
|
| 1270 |
+
" - CSV rows: 5218\n",
|
| 1271 |
+
" - Unique images: 5079\n"
|
| 1272 |
+
]
|
| 1273 |
+
}
|
| 1274 |
+
],
|
| 1275 |
+
"source": [
|
| 1276 |
+
"# Create new_dataset folder and copy all SUGGESTIVE images from train and test\n",
|
| 1277 |
+
"import shutil\n",
|
| 1278 |
+
"\n",
|
| 1279 |
+
"# Get unique image IDs from SUGGESTIVE_fashion_df\n",
|
| 1280 |
+
"unique_SUGGESTIVE_image_ids = set(SUGGESTIVE_fashion_df['ImageId'].unique())\n",
|
| 1281 |
+
"\n",
|
| 1282 |
+
"print(\"=\"*60)\n",
|
| 1283 |
+
"print(\"CREATING NEW DATASET\")\n",
|
| 1284 |
+
"print(\"=\"*60)\n",
|
| 1285 |
+
"print(f\"Total unique SUGGESTIVE image IDs: {len(unique_SUGGESTIVE_image_ids)}\")\n",
|
| 1286 |
+
"\n",
|
| 1287 |
+
"# Create new_dataset folder\n",
|
| 1288 |
+
"NEW_DATASET_PATH = DATA_PATH / \"new_dataset\"\n",
|
| 1289 |
+
"NEW_DATASET_PATH.mkdir(exist_ok=True)\n",
|
| 1290 |
+
"print(f\"\\nCreated folder: {NEW_DATASET_PATH}\")\n",
|
| 1291 |
+
"\n",
|
| 1292 |
+
"# Paths to source folders\n",
|
| 1293 |
+
"TRAIN_IMAGE_PATH = DATA_PATH / \"train\"\n",
|
| 1294 |
+
"TEST_IMAGE_PATH = DATA_PATH / \"test\"\n",
|
| 1295 |
+
"\n",
|
| 1296 |
+
"# Copy images from train and test folders\n",
|
| 1297 |
+
"copied_count = 0\n",
|
| 1298 |
+
"not_found_count = 0\n",
|
| 1299 |
+
"not_found_ids = []\n",
|
| 1300 |
+
"\n",
|
| 1301 |
+
"print(f\"\\nCopying images from {TRAIN_IMAGE_PATH} and {TEST_IMAGE_PATH}...\")\n",
|
| 1302 |
+
"\n",
|
| 1303 |
+
"for image_id in unique_SUGGESTIVE_image_ids:\n",
|
| 1304 |
+
" image_filename = f\"{image_id}.jpg\"\n",
|
| 1305 |
+
" source_path = None\n",
|
| 1306 |
+
" \n",
|
| 1307 |
+
" # Try train folder first\n",
|
| 1308 |
+
" train_path = TRAIN_IMAGE_PATH / image_filename\n",
|
| 1309 |
+
" if train_path.exists():\n",
|
| 1310 |
+
" source_path = train_path\n",
|
| 1311 |
+
" else:\n",
|
| 1312 |
+
" # Try test folder\n",
|
| 1313 |
+
" test_path = TEST_IMAGE_PATH / image_filename\n",
|
| 1314 |
+
" if test_path.exists():\n",
|
| 1315 |
+
" source_path = test_path\n",
|
| 1316 |
+
" \n",
|
| 1317 |
+
" if source_path:\n",
|
| 1318 |
+
" dest_path = NEW_DATASET_PATH / image_filename\n",
|
| 1319 |
+
" shutil.copy2(source_path, dest_path)\n",
|
| 1320 |
+
" copied_count += 1\n",
|
| 1321 |
+
" else:\n",
|
| 1322 |
+
" not_found_count += 1\n",
|
| 1323 |
+
" not_found_ids.append(image_id)\n",
|
| 1324 |
+
"\n",
|
| 1325 |
+
"print(f\"\\n✓ Successfully copied: {copied_count} images\")\n",
|
| 1326 |
+
"if not_found_count > 0:\n",
|
| 1327 |
+
" print(f\"⚠ Not found: {not_found_count} images\")\n",
|
| 1328 |
+
" print(f\" First 10 missing IDs: {not_found_ids[:10]}\")\n",
|
| 1329 |
+
"\n",
|
| 1330 |
+
"# Save the SUGGESTIVE_fashion_df to CSV\n",
|
| 1331 |
+
"csv_path = DATA_PATH / \"SUGGESTIVE_fashion.csv\"\n",
|
| 1332 |
+
"SUGGESTIVE_fashion_df.to_csv(csv_path, index=False)\n",
|
| 1333 |
+
"print(f\"\\n✓ Saved DataFrame to: {csv_path}\")\n",
|
| 1334 |
+
"print(f\" Total rows: {len(SUGGESTIVE_fashion_df)}\")\n",
|
| 1335 |
+
"\n",
|
| 1336 |
+
"print(\"\\n\" + \"=\"*60)\n",
|
| 1337 |
+
"print(\"SUMMARY:\")\n",
|
| 1338 |
+
"print(\"=\"*60)\n",
|
| 1339 |
+
"print(f\" - Images folder: {NEW_DATASET_PATH}\")\n",
|
| 1340 |
+
"print(f\" - Images copied: {copied_count}\")\n",
|
| 1341 |
+
"print(f\" - CSV file: {csv_path}\")\n",
|
| 1342 |
+
"print(f\" - CSV rows: {len(SUGGESTIVE_fashion_df)}\")\n",
|
| 1343 |
+
"print(f\" - Unique images: {len(unique_SUGGESTIVE_image_ids)}\")\n"
|
| 1344 |
+
]
|
| 1345 |
+
},
|
| 1346 |
+
{
|
| 1347 |
+
"cell_type": "code",
|
| 1348 |
+
"execution_count": 63,
|
| 1349 |
+
"id": "a4bdc53c",
|
| 1350 |
+
"metadata": {},
|
| 1351 |
+
"outputs": [
|
| 1352 |
+
{
|
| 1353 |
+
"data": {
|
| 1354 |
+
"text/html": [
|
| 1355 |
+
"<div>\n",
|
| 1356 |
+
"<style scoped>\n",
|
| 1357 |
+
" .dataframe tbody tr th:only-of-type {\n",
|
| 1358 |
+
" vertical-align: middle;\n",
|
| 1359 |
+
" }\n",
|
| 1360 |
+
"\n",
|
| 1361 |
+
" .dataframe tbody tr th {\n",
|
| 1362 |
+
" vertical-align: top;\n",
|
| 1363 |
+
" }\n",
|
| 1364 |
+
"\n",
|
| 1365 |
+
" .dataframe thead th {\n",
|
| 1366 |
+
" text-align: right;\n",
|
| 1367 |
+
" }\n",
|
| 1368 |
+
"</style>\n",
|
| 1369 |
+
"<table border=\"1\" class=\"dataframe\">\n",
|
| 1370 |
+
" <thead>\n",
|
| 1371 |
+
" <tr style=\"text-align: right;\">\n",
|
| 1372 |
+
" <th></th>\n",
|
| 1373 |
+
" <th>ImageId</th>\n",
|
| 1374 |
+
" <th>EncodedPixels</th>\n",
|
| 1375 |
+
" <th>Height</th>\n",
|
| 1376 |
+
" <th>Width</th>\n",
|
| 1377 |
+
" <th>ClassId</th>\n",
|
| 1378 |
+
" <th>AttributesIds</th>\n",
|
| 1379 |
+
" </tr>\n",
|
| 1380 |
+
" </thead>\n",
|
| 1381 |
+
" <tbody>\n",
|
| 1382 |
+
" <tr>\n",
|
| 1383 |
+
" <th>49</th>\n",
|
| 1384 |
+
" <td>000b3a87508b0fa185fbd53ecbe2e4c6</td>\n",
|
| 1385 |
+
" <td>457283 2 458562 6 459841 9 461120 13 462400 15...</td>\n",
|
| 1386 |
+
" <td>1280</td>\n",
|
| 1387 |
+
" <td>852</td>\n",
|
| 1388 |
+
" <td>33</td>\n",
|
| 1389 |
+
" <td>192</td>\n",
|
| 1390 |
+
" </tr>\n",
|
| 1391 |
+
" <tr>\n",
|
| 1392 |
+
" <th>147</th>\n",
|
| 1393 |
+
" <td>001a66b16b12f12dc45e2bba40e04683</td>\n",
|
| 1394 |
+
" <td>64049 3 64548 10 65048 17 65548 23 65754 36 66...</td>\n",
|
| 1395 |
+
" <td>500</td>\n",
|
| 1396 |
+
" <td>375</td>\n",
|
| 1397 |
+
" <td>10</td>\n",
|
| 1398 |
+
" <td>106,115,127,142,149,229,295,316</td>\n",
|
| 1399 |
+
" </tr>\n",
|
| 1400 |
+
" <tr>\n",
|
| 1401 |
+
" <th>180</th>\n",
|
| 1402 |
+
" <td>00211c06b1fe730097dde122cd4d3f8c</td>\n",
|
| 1403 |
+
" <td>296470 1 297469 3 298468 5 299467 8 300466 10 ...</td>\n",
|
| 1404 |
+
" <td>1000</td>\n",
|
| 1405 |
+
" <td>665</td>\n",
|
| 1406 |
+
" <td>7</td>\n",
|
| 1407 |
+
" <td>50,115,136,142,148,230,295,300,317</td>\n",
|
| 1408 |
+
" </tr>\n",
|
| 1409 |
+
" <tr>\n",
|
| 1410 |
+
" <th>304</th>\n",
|
| 1411 |
+
" <td>003ae3da258f7ba7267af5f159dd3502</td>\n",
|
| 1412 |
+
" <td>129565 3 130583 9 131602 14 132621 19 133641 2...</td>\n",
|
| 1413 |
+
" <td>1024</td>\n",
|
| 1414 |
+
" <td>683</td>\n",
|
| 1415 |
+
" <td>10</td>\n",
|
| 1416 |
+
" <td>106,127,141,150,295,316,317</td>\n",
|
| 1417 |
+
" </tr>\n",
|
| 1418 |
+
" <tr>\n",
|
| 1419 |
+
" <th>369</th>\n",
|
| 1420 |
+
" <td>0048f6c47de85cc4dc263912bd0ff6f5</td>\n",
|
| 1421 |
+
" <td>4777361 1 4781320 3 4785279 5 4789239 7 479319...</td>\n",
|
| 1422 |
+
" <td>3960</td>\n",
|
| 1423 |
+
" <td>2640</td>\n",
|
| 1424 |
+
" <td>33</td>\n",
|
| 1425 |
+
" <td>192</td>\n",
|
| 1426 |
+
" </tr>\n",
|
| 1427 |
+
" <tr>\n",
|
| 1428 |
+
" <th>372</th>\n",
|
| 1429 |
+
" <td>0048f6c47de85cc4dc263912bd0ff6f5</td>\n",
|
| 1430 |
+
" <td>3982550 2 3986509 8 3990469 13 3994429 18 3998...</td>\n",
|
| 1431 |
+
" <td>3960</td>\n",
|
| 1432 |
+
" <td>2640</td>\n",
|
| 1433 |
+
" <td>7</td>\n",
|
| 1434 |
+
" <td>50,115,136,142,148,317</td>\n",
|
| 1435 |
+
" </tr>\n",
|
| 1436 |
+
" <tr>\n",
|
| 1437 |
+
" <th>445</th>\n",
|
| 1438 |
+
" <td>005380bd939eb68085af3f804d387824</td>\n",
|
| 1439 |
+
" <td>2317673 15 2320644 45 2323624 67 2326613 79 23...</td>\n",
|
| 1440 |
+
" <td>3000</td>\n",
|
| 1441 |
+
" <td>2001</td>\n",
|
| 1442 |
+
" <td>10</td>\n",
|
| 1443 |
+
" <td>106,114,127,142,150,229,295,311,317</td>\n",
|
| 1444 |
+
" </tr>\n",
|
| 1445 |
+
" <tr>\n",
|
| 1446 |
+
" <th>456</th>\n",
|
| 1447 |
+
" <td>0054564ae183ad9a1b152eef0bc11e1d</td>\n",
|
| 1448 |
+
" <td>195071 2 196093 5 197115 8 198134 13 199151 20...</td>\n",
|
| 1449 |
+
" <td>1024</td>\n",
|
| 1450 |
+
" <td>683</td>\n",
|
| 1451 |
+
" <td>10</td>\n",
|
| 1452 |
+
" <td>106,115,127,142,149,229,295,316,317</td>\n",
|
| 1453 |
+
" </tr>\n",
|
| 1454 |
+
" <tr>\n",
|
| 1455 |
+
" <th>465</th>\n",
|
| 1456 |
+
" <td>0055347a114b215f8f469fec9e38c272</td>\n",
|
| 1457 |
+
" <td>236337 20 237832 26 239327 33 240823 38 242320...</td>\n",
|
| 1458 |
+
" <td>1500</td>\n",
|
| 1459 |
+
" <td>1000</td>\n",
|
| 1460 |
+
" <td>10</td>\n",
|
| 1461 |
+
" <td>106,115,127,142,149,229,295,316,317</td>\n",
|
| 1462 |
+
" </tr>\n",
|
| 1463 |
+
" <tr>\n",
|
| 1464 |
+
" <th>526</th>\n",
|
| 1465 |
+
" <td>005e9b75edcee7d655c390ea5416641d</td>\n",
|
| 1466 |
+
" <td>480863 2 481943 3 483023 4 484102 6 485182 7 4...</td>\n",
|
| 1467 |
+
" <td>1080</td>\n",
|
| 1468 |
+
" <td>1080</td>\n",
|
| 1469 |
+
" <td>33</td>\n",
|
| 1470 |
+
" <td>192</td>\n",
|
| 1471 |
+
" </tr>\n",
|
| 1472 |
+
" <tr>\n",
|
| 1473 |
+
" <th>593</th>\n",
|
| 1474 |
+
" <td>006bb85ca0935680110f4ce67d88b4ee</td>\n",
|
| 1475 |
+
" <td>2461619 6 2463717 17 2465814 24 2467912 23 247...</td>\n",
|
| 1476 |
+
" <td>2096</td>\n",
|
| 1477 |
+
" <td>3000</td>\n",
|
| 1478 |
+
" <td>10</td>\n",
|
| 1479 |
+
" <td>106,115,127,142,149,295,316,317</td>\n",
|
| 1480 |
+
" </tr>\n",
|
| 1481 |
+
" <tr>\n",
|
| 1482 |
+
" <th>802</th>\n",
|
| 1483 |
+
" <td>009447b79fce7da1ee19a54401517cde</td>\n",
|
| 1484 |
+
" <td>23802163 9 23807451 27 23812746 37 23818049 40...</td>\n",
|
| 1485 |
+
" <td>5304</td>\n",
|
| 1486 |
+
" <td>7952</td>\n",
|
| 1487 |
+
" <td>7</td>\n",
|
| 1488 |
+
" <td>50,115,136,142,148,230,295,298,317</td>\n",
|
| 1489 |
+
" </tr>\n",
|
| 1490 |
+
" <tr>\n",
|
| 1491 |
+
" <th>884</th>\n",
|
| 1492 |
+
" <td>00af8f65bb93f4131499dc9807129a24</td>\n",
|
| 1493 |
+
" <td>1313044 41 1315994 123 1318943 207 1321893 289...</td>\n",
|
| 1494 |
+
" <td>3000</td>\n",
|
| 1495 |
+
" <td>2000</td>\n",
|
| 1496 |
+
" <td>4</td>\n",
|
| 1497 |
+
" <td>17,115,135,145,148,225,281,311,317</td>\n",
|
| 1498 |
+
" </tr>\n",
|
| 1499 |
+
" <tr>\n",
|
| 1500 |
+
" <th>1201</th>\n",
|
| 1501 |
+
" <td>00f7d06a8db722b86961d911fb9f1d96</td>\n",
|
| 1502 |
+
" <td>54821 5 55316 16 55811 27 56307 37 56802 48 57...</td>\n",
|
| 1503 |
+
" <td>500</td>\n",
|
| 1504 |
+
" <td>375</td>\n",
|
| 1505 |
+
" <td>10</td>\n",
|
| 1506 |
+
" <td>106,115,127,142,151,229,283,311</td>\n",
|
| 1507 |
+
" </tr>\n",
|
| 1508 |
+
" <tr>\n",
|
| 1509 |
+
" <th>1217</th>\n",
|
| 1510 |
+
" <td>00f843a44365248e179ad2a489734913</td>\n",
|
| 1511 |
+
" <td>1690956 5 1693572 11 1696188 15 1698804 18 170...</td>\n",
|
| 1512 |
+
" <td>2617</td>\n",
|
| 1513 |
+
" <td>1500</td>\n",
|
| 1514 |
+
" <td>33</td>\n",
|
| 1515 |
+
" <td>192</td>\n",
|
| 1516 |
+
" </tr>\n",
|
| 1517 |
+
" <tr>\n",
|
| 1518 |
+
" <th>1260</th>\n",
|
| 1519 |
+
" <td>01098396b79639e29db8de146c2d0064</td>\n",
|
| 1520 |
+
" <td>959078 8 962065 22 965051 38 968037 54 971024 ...</td>\n",
|
| 1521 |
+
" <td>3000</td>\n",
|
| 1522 |
+
" <td>2000</td>\n",
|
| 1523 |
+
" <td>7</td>\n",
|
| 1524 |
+
" <td>50,148,234,295,316,317</td>\n",
|
| 1525 |
+
" </tr>\n",
|
| 1526 |
+
" <tr>\n",
|
| 1527 |
+
" <th>1274</th>\n",
|
| 1528 |
+
" <td>010db49ecc226102e63815fcf5627319</td>\n",
|
| 1529 |
+
" <td>1205717 31 1208132 69 1210571 82 1213011 94 12...</td>\n",
|
| 1530 |
+
" <td>2448</td>\n",
|
| 1531 |
+
" <td>2448</td>\n",
|
| 1532 |
+
" <td>10</td>\n",
|
| 1533 |
+
" <td>112,115,119,145,148,229,295,306,323,325</td>\n",
|
| 1534 |
+
" </tr>\n",
|
| 1535 |
+
" <tr>\n",
|
| 1536 |
+
" <th>1311</th>\n",
|
| 1537 |
+
" <td>0116a12304c7f94686978f86100076f3</td>\n",
|
| 1538 |
+
" <td>32646 31 33110 78 33587 109 34065 136 34542 15...</td>\n",
|
| 1539 |
+
" <td>492</td>\n",
|
| 1540 |
+
" <td>354</td>\n",
|
| 1541 |
+
" <td>10</td>\n",
|
| 1542 |
+
" <td>106,115,127,142,150,229,295,316,317</td>\n",
|
| 1543 |
+
" </tr>\n",
|
| 1544 |
+
" <tr>\n",
|
| 1545 |
+
" <th>1356</th>\n",
|
| 1546 |
+
" <td>011afec5e443599a79261ece1a662043</td>\n",
|
| 1547 |
+
" <td>629287 14 631022 16 632757 18 634492 21 636227...</td>\n",
|
| 1548 |
+
" <td>1737</td>\n",
|
| 1549 |
+
" <td>1157</td>\n",
|
| 1550 |
+
" <td>4</td>\n",
|
| 1551 |
+
" <td>17,148,225,281,311,317</td>\n",
|
| 1552 |
+
" </tr>\n",
|
| 1553 |
+
" <tr>\n",
|
| 1554 |
+
" <th>1371</th>\n",
|
| 1555 |
+
" <td>011c59f7c25d18027f4f9b2b1cffd44a</td>\n",
|
| 1556 |
+
" <td>168345 3 169142 7 169938 12 170735 17 171531 2...</td>\n",
|
| 1557 |
+
" <td>800</td>\n",
|
| 1558 |
+
" <td>800</td>\n",
|
| 1559 |
+
" <td>10</td>\n",
|
| 1560 |
+
" <td>101,115,129,145,148,289,301,317</td>\n",
|
| 1561 |
+
" </tr>\n",
|
| 1562 |
+
" </tbody>\n",
|
| 1563 |
+
"</table>\n",
|
| 1564 |
+
"</div>"
|
| 1565 |
+
],
|
| 1566 |
+
"text/plain": [
|
| 1567 |
+
" ImageId \\\n",
|
| 1568 |
+
"49 000b3a87508b0fa185fbd53ecbe2e4c6 \n",
|
| 1569 |
+
"147 001a66b16b12f12dc45e2bba40e04683 \n",
|
| 1570 |
+
"180 00211c06b1fe730097dde122cd4d3f8c \n",
|
| 1571 |
+
"304 003ae3da258f7ba7267af5f159dd3502 \n",
|
| 1572 |
+
"369 0048f6c47de85cc4dc263912bd0ff6f5 \n",
|
| 1573 |
+
"372 0048f6c47de85cc4dc263912bd0ff6f5 \n",
|
| 1574 |
+
"445 005380bd939eb68085af3f804d387824 \n",
|
| 1575 |
+
"456 0054564ae183ad9a1b152eef0bc11e1d \n",
|
| 1576 |
+
"465 0055347a114b215f8f469fec9e38c272 \n",
|
| 1577 |
+
"526 005e9b75edcee7d655c390ea5416641d \n",
|
| 1578 |
+
"593 006bb85ca0935680110f4ce67d88b4ee \n",
|
| 1579 |
+
"802 009447b79fce7da1ee19a54401517cde \n",
|
| 1580 |
+
"884 00af8f65bb93f4131499dc9807129a24 \n",
|
| 1581 |
+
"1201 00f7d06a8db722b86961d911fb9f1d96 \n",
|
| 1582 |
+
"1217 00f843a44365248e179ad2a489734913 \n",
|
| 1583 |
+
"1260 01098396b79639e29db8de146c2d0064 \n",
|
| 1584 |
+
"1274 010db49ecc226102e63815fcf5627319 \n",
|
| 1585 |
+
"1311 0116a12304c7f94686978f86100076f3 \n",
|
| 1586 |
+
"1356 011afec5e443599a79261ece1a662043 \n",
|
| 1587 |
+
"1371 011c59f7c25d18027f4f9b2b1cffd44a \n",
|
| 1588 |
+
"\n",
|
| 1589 |
+
" EncodedPixels Height Width \\\n",
|
| 1590 |
+
"49 457283 2 458562 6 459841 9 461120 13 462400 15... 1280 852 \n",
|
| 1591 |
+
"147 64049 3 64548 10 65048 17 65548 23 65754 36 66... 500 375 \n",
|
| 1592 |
+
"180 296470 1 297469 3 298468 5 299467 8 300466 10 ... 1000 665 \n",
|
| 1593 |
+
"304 129565 3 130583 9 131602 14 132621 19 133641 2... 1024 683 \n",
|
| 1594 |
+
"369 4777361 1 4781320 3 4785279 5 4789239 7 479319... 3960 2640 \n",
|
| 1595 |
+
"372 3982550 2 3986509 8 3990469 13 3994429 18 3998... 3960 2640 \n",
|
| 1596 |
+
"445 2317673 15 2320644 45 2323624 67 2326613 79 23... 3000 2001 \n",
|
| 1597 |
+
"456 195071 2 196093 5 197115 8 198134 13 199151 20... 1024 683 \n",
|
| 1598 |
+
"465 236337 20 237832 26 239327 33 240823 38 242320... 1500 1000 \n",
|
| 1599 |
+
"526 480863 2 481943 3 483023 4 484102 6 485182 7 4... 1080 1080 \n",
|
| 1600 |
+
"593 2461619 6 2463717 17 2465814 24 2467912 23 247... 2096 3000 \n",
|
| 1601 |
+
"802 23802163 9 23807451 27 23812746 37 23818049 40... 5304 7952 \n",
|
| 1602 |
+
"884 1313044 41 1315994 123 1318943 207 1321893 289... 3000 2000 \n",
|
| 1603 |
+
"1201 54821 5 55316 16 55811 27 56307 37 56802 48 57... 500 375 \n",
|
| 1604 |
+
"1217 1690956 5 1693572 11 1696188 15 1698804 18 170... 2617 1500 \n",
|
| 1605 |
+
"1260 959078 8 962065 22 965051 38 968037 54 971024 ... 3000 2000 \n",
|
| 1606 |
+
"1274 1205717 31 1208132 69 1210571 82 1213011 94 12... 2448 2448 \n",
|
| 1607 |
+
"1311 32646 31 33110 78 33587 109 34065 136 34542 15... 492 354 \n",
|
| 1608 |
+
"1356 629287 14 631022 16 632757 18 634492 21 636227... 1737 1157 \n",
|
| 1609 |
+
"1371 168345 3 169142 7 169938 12 170735 17 171531 2... 800 800 \n",
|
| 1610 |
+
"\n",
|
| 1611 |
+
" ClassId AttributesIds \n",
|
| 1612 |
+
"49 33 192 \n",
|
| 1613 |
+
"147 10 106,115,127,142,149,229,295,316 \n",
|
| 1614 |
+
"180 7 50,115,136,142,148,230,295,300,317 \n",
|
| 1615 |
+
"304 10 106,127,141,150,295,316,317 \n",
|
| 1616 |
+
"369 33 192 \n",
|
| 1617 |
+
"372 7 50,115,136,142,148,317 \n",
|
| 1618 |
+
"445 10 106,114,127,142,150,229,295,311,317 \n",
|
| 1619 |
+
"456 10 106,115,127,142,149,229,295,316,317 \n",
|
| 1620 |
+
"465 10 106,115,127,142,149,229,295,316,317 \n",
|
| 1621 |
+
"526 33 192 \n",
|
| 1622 |
+
"593 10 106,115,127,142,149,295,316,317 \n",
|
| 1623 |
+
"802 7 50,115,136,142,148,230,295,298,317 \n",
|
| 1624 |
+
"884 4 17,115,135,145,148,225,281,311,317 \n",
|
| 1625 |
+
"1201 10 106,115,127,142,151,229,283,311 \n",
|
| 1626 |
+
"1217 33 192 \n",
|
| 1627 |
+
"1260 7 50,148,234,295,316,317 \n",
|
| 1628 |
+
"1274 10 112,115,119,145,148,229,295,306,323,325 \n",
|
| 1629 |
+
"1311 10 106,115,127,142,150,229,295,316,317 \n",
|
| 1630 |
+
"1356 4 17,148,225,281,311,317 \n",
|
| 1631 |
+
"1371 10 101,115,129,145,148,289,301,317 "
|
| 1632 |
+
]
|
| 1633 |
+
},
|
| 1634 |
+
"execution_count": 63,
|
| 1635 |
+
"metadata": {},
|
| 1636 |
+
"output_type": "execute_result"
|
| 1637 |
+
}
|
| 1638 |
+
],
|
| 1639 |
+
"source": [
|
| 1640 |
+
"SUGGESTIVE_fashion_df.head(20)"
|
| 1641 |
+
]
|
| 1642 |
+
},
|
| 1643 |
+
{
|
| 1644 |
+
"cell_type": "code",
|
| 1645 |
+
"execution_count": 64,
|
| 1646 |
+
"id": "a9e2133d",
|
| 1647 |
+
"metadata": {},
|
| 1648 |
+
"outputs": [],
|
| 1649 |
+
"source": [
|
| 1650 |
+
"# Show the \"EncodedPixels\" feature of the first SUGGESTIVE_fashion_df \n",
|
| 1651 |
+
"from PIL import Image\n",
|
| 1652 |
+
"\n",
|
| 1653 |
+
"# Get the first image ID from the SUGGESTIVE_fashion_df\n",
|
| 1654 |
+
"first_image_id = SUGGESTIVE_fashion_df.iloc[0]['ImageId']\n",
|
| 1655 |
+
"\n",
|
| 1656 |
+
"# Load the image\n",
|
| 1657 |
+
"image = Image.open((DATA_PATH / \"train\" / f\"{first_image_id}.jpg\"))\n",
|
| 1658 |
+
"image.show()"
|
| 1659 |
+
]
|
| 1660 |
+
},
|
| 1661 |
+
{
|
| 1662 |
+
"cell_type": "code",
|
| 1663 |
+
"execution_count": null,
|
| 1664 |
+
"id": "2d6351ab",
|
| 1665 |
+
"metadata": {},
|
| 1666 |
+
"outputs": [],
|
| 1667 |
+
"source": []
|
| 1668 |
+
}
|
| 1669 |
+
],
|
| 1670 |
+
"metadata": {
|
| 1671 |
+
"kernelspec": {
|
| 1672 |
+
"display_name": ".venv",
|
| 1673 |
+
"language": "python",
|
| 1674 |
+
"name": "python3"
|
| 1675 |
+
},
|
| 1676 |
+
"language_info": {
|
| 1677 |
+
"codemirror_mode": {
|
| 1678 |
+
"name": "ipython",
|
| 1679 |
+
"version": 3
|
| 1680 |
+
},
|
| 1681 |
+
"file_extension": ".py",
|
| 1682 |
+
"mimetype": "text/x-python",
|
| 1683 |
+
"name": "python",
|
| 1684 |
+
"nbconvert_exporter": "python",
|
| 1685 |
+
"pygments_lexer": "ipython3",
|
| 1686 |
+
"version": "3.13.5"
|
| 1687 |
+
}
|
| 1688 |
+
},
|
| 1689 |
+
"nbformat": 4,
|
| 1690 |
+
"nbformat_minor": 5
|
| 1691 |
+
}
|
pyproject.toml
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[project]
|
| 2 |
+
name = "haram-police"
|
| 3 |
+
version = "0.1.0"
|
| 4 |
+
description = "Add your description here"
|
| 5 |
+
readme = "README.md"
|
| 6 |
+
requires-python = ">=3.13"
|
| 7 |
+
dependencies = [
|
| 8 |
+
"datasets>=4.4.2",
|
| 9 |
+
"huggingface-hub>=0.36.0",
|
| 10 |
+
"ipykernel>=7.1.0",
|
| 11 |
+
"joblib>=1.4.2",
|
| 12 |
+
"matplotlib>=3.10.8",
|
| 13 |
+
"pandas>=2.3.3",
|
| 14 |
+
"pillow>=12.0.0",
|
| 15 |
+
"psycopg2>=2.9.11",
|
| 16 |
+
"python-dotenv>=1.2.1",
|
| 17 |
+
"rich>=14.2.0",
|
| 18 |
+
"scikit-learn>=1.8.0",
|
| 19 |
+
"scipy>=1.14.1",
|
| 20 |
+
"seaborn>=0.13.2",
|
| 21 |
+
"shap>=0.46.0",
|
| 22 |
+
"supabase>=2.27.0",
|
| 23 |
+
"torch>=2.9.1",
|
| 24 |
+
"transformers>=4.57.3",
|
| 25 |
+
]
|
src/baseline.py
ADDED
|
@@ -0,0 +1,145 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from dotenv import load_dotenv
|
| 2 |
+
from pathlib import Path
|
| 3 |
+
import os
|
| 4 |
+
import json
|
| 5 |
+
import pandas as pd
|
| 6 |
+
from huggingface_hub import InferenceClient
|
| 7 |
+
from rich import print
|
| 8 |
+
from rich.progress import Progress, SpinnerColumn, TextColumn, BarColumn
|
| 9 |
+
|
| 10 |
+
load_dotenv()
|
| 11 |
+
|
| 12 |
+
DATA_PATH = Path(__file__).parent.parent / "data"
|
| 13 |
+
RESULTS_PATH = DATA_PATH / "results"
|
| 14 |
+
IMAGES_PATH = DATA_PATH / "imgs"
|
| 15 |
+
|
| 16 |
+
with open(DATA_PATH / "annotations.json", "r") as f:
|
| 17 |
+
annotations = json.load(f)
|
| 18 |
+
|
| 19 |
+
print(f"[bold]Loaded {len(annotations)} annotations from Label Studio[/bold]")
|
| 20 |
+
|
| 21 |
+
# Extract annotated images with their labels
|
| 22 |
+
# Files should now be in data/imgs/ with their file_upload names
|
| 23 |
+
annotated_images = []
|
| 24 |
+
for ann in annotations:
|
| 25 |
+
file_upload = ann.get("file_upload")
|
| 26 |
+
if not file_upload:
|
| 27 |
+
continue
|
| 28 |
+
|
| 29 |
+
# Get the annotation choice
|
| 30 |
+
choice = None
|
| 31 |
+
if ann.get("annotations") and len(ann["annotations"]) > 0:
|
| 32 |
+
result = ann["annotations"][0].get("result", [])
|
| 33 |
+
if result and len(result) > 0:
|
| 34 |
+
choices = result[0].get("value", {}).get("choices", [])
|
| 35 |
+
if choices:
|
| 36 |
+
choice = choices[0]
|
| 37 |
+
|
| 38 |
+
# File should be in data/imgs/ with the file_upload name
|
| 39 |
+
file_path = IMAGES_PATH / file_upload
|
| 40 |
+
|
| 41 |
+
annotated_images.append({
|
| 42 |
+
"file_upload": file_upload,
|
| 43 |
+
"file_path": file_path,
|
| 44 |
+
"choice": choice,
|
| 45 |
+
"annotation_id": ann.get("id")
|
| 46 |
+
})
|
| 47 |
+
|
| 48 |
+
# Check how many files actually exist
|
| 49 |
+
existing_files = [img for img in annotated_images if img["file_path"].exists()]
|
| 50 |
+
print(
|
| 51 |
+
f"[bold]Found {len(existing_files)}/{len(annotated_images)} annotated image files[/bold]")
|
| 52 |
+
|
| 53 |
+
# Initialize client
|
| 54 |
+
client = InferenceClient(
|
| 55 |
+
provider="hf-inference",
|
| 56 |
+
api_key=os.environ.get("HF_TOKEN"),
|
| 57 |
+
)
|
| 58 |
+
|
| 59 |
+
if not os.environ.get("HF_TOKEN"):
|
| 60 |
+
raise ValueError(
|
| 61 |
+
"HF_TOKEN environment variable not set. Please set it in .env file.")
|
| 62 |
+
|
| 63 |
+
# Filter to only images that exist
|
| 64 |
+
images_to_process = [
|
| 65 |
+
img for img in annotated_images if img["file_path"].exists()]
|
| 66 |
+
|
| 67 |
+
if not images_to_process:
|
| 68 |
+
print("[red]✗ No annotated image files found![/red]")
|
| 69 |
+
print("[yellow]Please copy files from Label Studio media directory first.[/yellow]")
|
| 70 |
+
print(f"[dim]Expected location: {IMAGES_PATH}[/dim]")
|
| 71 |
+
|
| 72 |
+
predictions = []
|
| 73 |
+
errors = []
|
| 74 |
+
|
| 75 |
+
print(f"[bold]Processing {len(images_to_process)} annotated images...[/bold]")
|
| 76 |
+
|
| 77 |
+
with Progress(
|
| 78 |
+
SpinnerColumn(),
|
| 79 |
+
TextColumn("[progress.description]{task.description}"),
|
| 80 |
+
BarColumn(),
|
| 81 |
+
TextColumn("[progress.percentage]{task.percentage:>3.0f}%"),
|
| 82 |
+
console=None,
|
| 83 |
+
) as progress:
|
| 84 |
+
task = progress.add_task("Classifying images",
|
| 85 |
+
total=len(images_to_process))
|
| 86 |
+
|
| 87 |
+
for ann_img in images_to_process:
|
| 88 |
+
file_path = ann_img["file_path"]
|
| 89 |
+
file_upload = ann_img["file_upload"]
|
| 90 |
+
choice = ann_img.get("choice")
|
| 91 |
+
annotation_id = ann_img.get("annotation_id")
|
| 92 |
+
|
| 93 |
+
try:
|
| 94 |
+
if not file_path or not file_path.exists():
|
| 95 |
+
errors.append({
|
| 96 |
+
"annotation_id": annotation_id,
|
| 97 |
+
"file_upload": file_upload,
|
| 98 |
+
"error": "File not found"
|
| 99 |
+
})
|
| 100 |
+
progress.update(task, advance=1)
|
| 101 |
+
continue
|
| 102 |
+
|
| 103 |
+
# Classify image
|
| 104 |
+
output = client.image_classification(
|
| 105 |
+
str(file_path),
|
| 106 |
+
model="Falconsai/nsfw_image_detection"
|
| 107 |
+
)
|
| 108 |
+
|
| 109 |
+
# Flatten the output (list of dicts) and add metadata
|
| 110 |
+
result = {
|
| 111 |
+
"annotation_id": annotation_id,
|
| 112 |
+
"file_upload": file_upload,
|
| 113 |
+
"actual_filename": file_path.name,
|
| 114 |
+
"label_studio_choice": choice,
|
| 115 |
+
**{f"label_{i}": pred["label"] for i, pred in enumerate(output)},
|
| 116 |
+
**{f"score_{i}": pred["score"] for i, pred in enumerate(output)}
|
| 117 |
+
}
|
| 118 |
+
predictions.append(result)
|
| 119 |
+
|
| 120 |
+
except Exception as e:
|
| 121 |
+
errors.append({
|
| 122 |
+
"annotation_id": annotation_id,
|
| 123 |
+
"file_upload": file_upload,
|
| 124 |
+
"error": str(e)
|
| 125 |
+
})
|
| 126 |
+
print(f"[red]Error processing {file_upload}: {e}[/red]")
|
| 127 |
+
|
| 128 |
+
finally:
|
| 129 |
+
progress.update(task, advance=1)
|
| 130 |
+
|
| 131 |
+
# Save predictions
|
| 132 |
+
if predictions:
|
| 133 |
+
predictions_df = pd.DataFrame(predictions)
|
| 134 |
+
predictions_df.to_csv(RESULTS_PATH / "baseline.csv", index=False)
|
| 135 |
+
print(
|
| 136 |
+
f"[green]✓ Saved {len(predictions)} predictions to baseline.csv[/green]")
|
| 137 |
+
else:
|
| 138 |
+
print("[red]✗ No predictions generated[/red]")
|
| 139 |
+
|
| 140 |
+
# Save errors if any
|
| 141 |
+
if errors:
|
| 142 |
+
errors_df = pd.DataFrame(errors)
|
| 143 |
+
errors_df.to_csv(DATA_PATH / "falcons_errors.csv", index=False)
|
| 144 |
+
print(
|
| 145 |
+
f"[yellow]⚠ Saved {len(errors)} errors to falcons_errors.csv[/yellow]")
|
src/dataset.py
ADDED
|
@@ -0,0 +1,137 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from pathlib import Path
|
| 2 |
+
import pandas as pd
|
| 3 |
+
from datasets import Dataset, DatasetDict
|
| 4 |
+
from sklearn.model_selection import train_test_split
|
| 5 |
+
import torch
|
| 6 |
+
from torch.utils.data import Dataset as TorchDataset
|
| 7 |
+
import numpy as np
|
| 8 |
+
from PIL import Image
|
| 9 |
+
from transformers import CLIPProcessor
|
| 10 |
+
|
| 11 |
+
|
| 12 |
+
DATA_PATH = Path(__file__).parent.parent / "data"
|
| 13 |
+
IMAGES_PATH = DATA_PATH / "imgs"
|
| 14 |
+
LABELS_CSV = DATA_PATH / "labels.csv"
|
| 15 |
+
|
| 16 |
+
|
| 17 |
+
def load_golden_dataset() -> pd.DataFrame:
|
| 18 |
+
df = pd.read_csv(LABELS_CSV)
|
| 19 |
+
|
| 20 |
+
# Convert image paths from /data/imgs/... to actual file paths
|
| 21 |
+
df["image"] = df["image"].apply(
|
| 22 |
+
lambda x: str(IMAGES_PATH / Path(x).name)
|
| 23 |
+
)
|
| 24 |
+
|
| 25 |
+
# Verify files exist
|
| 26 |
+
existing = df["image"].apply(lambda x: Path(x).exists())
|
| 27 |
+
missing_count = (~existing).sum()
|
| 28 |
+
if missing_count > 0:
|
| 29 |
+
print(f"Warning: {missing_count} image files not found")
|
| 30 |
+
df = df[existing].copy()
|
| 31 |
+
|
| 32 |
+
# Preprocess labels: combine UNCERTAIN with FAMILY_SAFE (0), SUGGESTIVE (1)
|
| 33 |
+
# 0 = FAMILY_SAFE/UNCERTAIN (closer to 0 means FAMILY_SAFE/UNCERTAIN)
|
| 34 |
+
# 1 = SUGGESTIVE (closer to 1 means SUGGESTIVE)
|
| 35 |
+
df["label"] = df["choice"].apply(
|
| 36 |
+
lambda x: 0 if x in ["FAMILY_SAFE", "UNCERTAIN"] else 1
|
| 37 |
+
)
|
| 38 |
+
|
| 39 |
+
return df
|
| 40 |
+
|
| 41 |
+
|
| 42 |
+
def create_dataset_splits(
|
| 43 |
+
train_size: float = 0.7,
|
| 44 |
+
test_size: float = 0.15,
|
| 45 |
+
val_size: float = 0.15,
|
| 46 |
+
random_state: int = 42
|
| 47 |
+
) -> DatasetDict:
|
| 48 |
+
# Validate split sizes
|
| 49 |
+
assert abs(train_size + test_size + val_size - 1.0) < 1e-6, \
|
| 50 |
+
"Split sizes must sum to 1.0"
|
| 51 |
+
|
| 52 |
+
# Load data
|
| 53 |
+
df = load_golden_dataset()
|
| 54 |
+
|
| 55 |
+
print(f"Loaded {len(df)} golden self-labelled images")
|
| 56 |
+
print("Original label distribution:")
|
| 57 |
+
print(df["choice"].value_counts())
|
| 58 |
+
print("\nBinary label distribution (after preprocessing):")
|
| 59 |
+
print(df["label"].value_counts())
|
| 60 |
+
print(" (0 = FAMILY_SAFE/UNCERTAIN, 1 = SUGGESTIVE)")
|
| 61 |
+
|
| 62 |
+
# First split: train vs (test + val)
|
| 63 |
+
# Stratify by binary label to maintain distribution
|
| 64 |
+
train_df, temp_df = train_test_split(
|
| 65 |
+
df,
|
| 66 |
+
test_size=(test_size + val_size),
|
| 67 |
+
stratify=df["label"],
|
| 68 |
+
random_state=random_state
|
| 69 |
+
)
|
| 70 |
+
|
| 71 |
+
# Second split: test vs val
|
| 72 |
+
# Adjust test_size for the remaining data
|
| 73 |
+
test_proportion = test_size / (test_size + val_size)
|
| 74 |
+
test_df, val_df = train_test_split(
|
| 75 |
+
temp_df,
|
| 76 |
+
test_size=(1 - test_proportion),
|
| 77 |
+
stratify=temp_df["label"],
|
| 78 |
+
random_state=random_state
|
| 79 |
+
)
|
| 80 |
+
|
| 81 |
+
print("\nSplit sizes:")
|
| 82 |
+
print(f" Train: {len(train_df)} ({len(train_df)/len(df)*100:.1f}%)")
|
| 83 |
+
print(f" Test: {len(test_df)} ({len(test_df)/len(df)*100:.1f}%)")
|
| 84 |
+
print(f" val: {len(val_df)} ({len(val_df)/len(df)*100:.1f}%)")
|
| 85 |
+
|
| 86 |
+
# Convert to HuggingFace Datasets
|
| 87 |
+
train_ds = Dataset.from_pandas(train_df)
|
| 88 |
+
test_ds = Dataset.from_pandas(test_df)
|
| 89 |
+
val_ds = Dataset.from_pandas(val_df)
|
| 90 |
+
|
| 91 |
+
# Create DatasetDict
|
| 92 |
+
dataset_dict = DatasetDict({
|
| 93 |
+
"train": train_ds,
|
| 94 |
+
"test": test_ds,
|
| 95 |
+
"val": val_ds
|
| 96 |
+
})
|
| 97 |
+
|
| 98 |
+
return dataset_dict
|
| 99 |
+
|
| 100 |
+
|
| 101 |
+
def get_dataset(
|
| 102 |
+
train_size: float = 0.7,
|
| 103 |
+
test_size: float = 0.15,
|
| 104 |
+
val_size: float = 0.15,
|
| 105 |
+
random_state: int = 42
|
| 106 |
+
) -> DatasetDict:
|
| 107 |
+
return create_dataset_splits(
|
| 108 |
+
train_size=train_size,
|
| 109 |
+
test_size=test_size,
|
| 110 |
+
val_size=val_size,
|
| 111 |
+
random_state=random_state
|
| 112 |
+
)
|
| 113 |
+
|
| 114 |
+
|
| 115 |
+
class ImageDataset(TorchDataset):
|
| 116 |
+
"""PyTorch Dataset for image classification."""
|
| 117 |
+
|
| 118 |
+
def __init__(self, image_paths: list[str], labels: np.ndarray, processor: CLIPProcessor):
|
| 119 |
+
self.image_paths = image_paths
|
| 120 |
+
self.labels = torch.tensor(labels, dtype=torch.long)
|
| 121 |
+
self.processor = processor
|
| 122 |
+
|
| 123 |
+
def __len__(self) -> int:
|
| 124 |
+
return len(self.image_paths)
|
| 125 |
+
|
| 126 |
+
def __getitem__(self, idx: int) -> tuple[dict, torch.Tensor]:
|
| 127 |
+
# Single item fetching (PyTorch DataLoader handles batching automatically)
|
| 128 |
+
img_path = self.image_paths[idx]
|
| 129 |
+
image = Image.open(img_path).convert("RGB")
|
| 130 |
+
|
| 131 |
+
# Process image with CLIP processor
|
| 132 |
+
inputs = self.processor(images=image, return_tensors="pt")
|
| 133 |
+
# Remove batch dimension from processor output
|
| 134 |
+
pixel_values = inputs["pixel_values"].squeeze(0)
|
| 135 |
+
|
| 136 |
+
label = self.labels[idx]
|
| 137 |
+
return {"pixel_values": pixel_values}, label
|
src/inference.py
ADDED
|
@@ -0,0 +1,114 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import torch
|
| 2 |
+
import json
|
| 3 |
+
from pathlib import Path
|
| 4 |
+
from transformers import CLIPProcessor
|
| 5 |
+
from src.model import DISCO
|
| 6 |
+
from PIL import Image
|
| 7 |
+
from typing import Tuple, Optional
|
| 8 |
+
|
| 9 |
+
MODELS_DIR = Path(__file__).parent.parent / "models"
|
| 10 |
+
|
| 11 |
+
|
| 12 |
+
def load_model(
|
| 13 |
+
device: Optional[str] = None,
|
| 14 |
+
compile_model: bool = False
|
| 15 |
+
) -> Tuple[DISCO, CLIPProcessor, float, dict]:
|
| 16 |
+
"""
|
| 17 |
+
Load trained DISCO model, processor, threshold, and metadata.
|
| 18 |
+
|
| 19 |
+
Args:
|
| 20 |
+
device: Device to load model on (None = auto-detect)
|
| 21 |
+
compile_model: Whether to compile model with torch.compile (not implemented)
|
| 22 |
+
|
| 23 |
+
Returns:
|
| 24 |
+
Tuple of (model, processor, threshold, metadata)
|
| 25 |
+
"""
|
| 26 |
+
if device is None:
|
| 27 |
+
device = "mps" if torch.backends.mps.is_available() else (
|
| 28 |
+
"cuda" if torch.cuda.is_available() else "cpu"
|
| 29 |
+
)
|
| 30 |
+
|
| 31 |
+
# Load model
|
| 32 |
+
model = DISCO.from_pretrained(MODELS_DIR)
|
| 33 |
+
model = model.to(device)
|
| 34 |
+
model.eval()
|
| 35 |
+
|
| 36 |
+
# Load processor
|
| 37 |
+
processor = CLIPProcessor.from_pretrained(MODELS_DIR)
|
| 38 |
+
|
| 39 |
+
# Load metadata for threshold and other info
|
| 40 |
+
metadata_path = MODELS_DIR / "model_metadata.json"
|
| 41 |
+
if not metadata_path.exists():
|
| 42 |
+
raise FileNotFoundError(
|
| 43 |
+
f"Model metadata not found at {metadata_path}. "
|
| 44 |
+
"Please run 'python src/train.py' first."
|
| 45 |
+
)
|
| 46 |
+
|
| 47 |
+
with open(metadata_path, "r") as f:
|
| 48 |
+
metadata = json.load(f)
|
| 49 |
+
|
| 50 |
+
threshold = metadata.get("threshold", 0.5)
|
| 51 |
+
|
| 52 |
+
# Store device for easy access
|
| 53 |
+
model._device = device
|
| 54 |
+
|
| 55 |
+
if compile_model:
|
| 56 |
+
# Future: could use torch.compile here if needed
|
| 57 |
+
pass
|
| 58 |
+
|
| 59 |
+
return model, processor, threshold, metadata
|
| 60 |
+
|
| 61 |
+
|
| 62 |
+
# Lazy-loaded default model (loaded on first use, not at import time)
|
| 63 |
+
_default_model = None
|
| 64 |
+
_default_processor = None
|
| 65 |
+
_default_threshold = None
|
| 66 |
+
|
| 67 |
+
|
| 68 |
+
def _get_default_model():
|
| 69 |
+
"""Lazy-load default model on first use."""
|
| 70 |
+
global _default_model, _default_processor, _default_threshold
|
| 71 |
+
if _default_model is None:
|
| 72 |
+
_default_model, _default_processor, _default_threshold, _ = load_model()
|
| 73 |
+
return _default_model, _default_processor, _default_threshold
|
| 74 |
+
|
| 75 |
+
|
| 76 |
+
def run_DISCO(
|
| 77 |
+
image_path: str,
|
| 78 |
+
model: Optional[DISCO] = None,
|
| 79 |
+
processor: Optional[CLIPProcessor] = None,
|
| 80 |
+
threshold: Optional[float] = None
|
| 81 |
+
) -> float:
|
| 82 |
+
"""
|
| 83 |
+
Run DISCO inference on a single image.
|
| 84 |
+
|
| 85 |
+
Args:
|
| 86 |
+
image_path: Path to image file
|
| 87 |
+
model: DISCO model (uses default if None)
|
| 88 |
+
processor: CLIPProcessor (uses default if None)
|
| 89 |
+
threshold: Classification threshold (uses model default if None)
|
| 90 |
+
|
| 91 |
+
Returns:
|
| 92 |
+
Probability of SUGGESTIVE class (0-1)
|
| 93 |
+
"""
|
| 94 |
+
# Use defaults if not provided
|
| 95 |
+
if model is None or processor is None:
|
| 96 |
+
default_model, default_processor, default_threshold = _get_default_model()
|
| 97 |
+
model = model or default_model
|
| 98 |
+
processor = processor or default_processor
|
| 99 |
+
threshold = threshold or default_threshold
|
| 100 |
+
|
| 101 |
+
# Get device from model
|
| 102 |
+
device = getattr(model, '_device', next(model.parameters()).device)
|
| 103 |
+
|
| 104 |
+
# Load and preprocess image
|
| 105 |
+
image = Image.open(image_path).convert("RGB")
|
| 106 |
+
inputs = processor(images=image, return_tensors="pt")
|
| 107 |
+
inputs = {k: v.to(device) for k, v in inputs.items()}
|
| 108 |
+
|
| 109 |
+
# Run inference
|
| 110 |
+
with torch.no_grad():
|
| 111 |
+
logits = model(**inputs)
|
| 112 |
+
proba = torch.softmax(logits, dim=-1)[0, 1].item()
|
| 113 |
+
|
| 114 |
+
return proba
|
src/model.py
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import torch
|
| 2 |
+
import torch.nn as nn
|
| 3 |
+
from transformers import CLIPModel, PreTrainedModel, PretrainedConfig
|
| 4 |
+
|
| 5 |
+
|
| 6 |
+
class DISCOConfig(PretrainedConfig):
|
| 7 |
+
"""Configuration for DISCO model."""
|
| 8 |
+
model_type = "clip_nsfw_detector"
|
| 9 |
+
|
| 10 |
+
def __init__(
|
| 11 |
+
self,
|
| 12 |
+
clip_model_name: str = "openai/clip-vit-base-patch32",
|
| 13 |
+
num_classes: int = 2,
|
| 14 |
+
threshold: float = 0.5,
|
| 15 |
+
**kwargs
|
| 16 |
+
):
|
| 17 |
+
super().__init__(**kwargs)
|
| 18 |
+
self.clip_model_name = clip_model_name
|
| 19 |
+
self.num_classes = num_classes
|
| 20 |
+
self.threshold = threshold
|
| 21 |
+
|
| 22 |
+
|
| 23 |
+
class DISCO(PreTrainedModel):
|
| 24 |
+
"""
|
| 25 |
+
DISCO model combining CLIP image encoder and classification head.
|
| 26 |
+
"""
|
| 27 |
+
config_class = DISCOConfig
|
| 28 |
+
|
| 29 |
+
def __init__(self, config: DISCOConfig):
|
| 30 |
+
super().__init__(config)
|
| 31 |
+
self.clip_model = CLIPModel.from_pretrained(config.clip_model_name)
|
| 32 |
+
self.clip_model.eval() # Freeze CLIP, only classifier is trainable
|
| 33 |
+
|
| 34 |
+
# Get embedding dimension from CLIP config
|
| 35 |
+
embedding_dim = self.clip_model.config.projection_dim
|
| 36 |
+
# Direct linear classifier layer (equivalent to logistic regression)
|
| 37 |
+
self.classifier = nn.Linear(embedding_dim, config.num_classes)
|
| 38 |
+
self.threshold = config.threshold
|
| 39 |
+
|
| 40 |
+
def forward(self, pixel_values: torch.Tensor, **kwargs) -> torch.Tensor:
|
| 41 |
+
"""
|
| 42 |
+
Forward pass through CLIP and classifier.
|
| 43 |
+
|
| 44 |
+
Args:
|
| 45 |
+
pixel_values: Preprocessed image tensors (batch_size, channels, height, width)
|
| 46 |
+
|
| 47 |
+
Returns:
|
| 48 |
+
Logits for binary classification
|
| 49 |
+
"""
|
| 50 |
+
# Get image features from CLIP
|
| 51 |
+
with torch.no_grad():
|
| 52 |
+
image_features = self.clip_model.get_image_features(
|
| 53 |
+
pixel_values=pixel_values)
|
| 54 |
+
# Normalize embeddings (CLIP uses normalized embeddings)
|
| 55 |
+
image_features = image_features / \
|
| 56 |
+
image_features.norm(dim=-1, keepdim=True)
|
| 57 |
+
|
| 58 |
+
# Pass through classifier
|
| 59 |
+
logits = self.classifier(image_features)
|
| 60 |
+
return logits
|
| 61 |
+
|
| 62 |
+
def predict_proba(self, pixel_values: torch.Tensor) -> torch.Tensor:
|
| 63 |
+
"""Get probability predictions."""
|
| 64 |
+
logits = self.forward(pixel_values)
|
| 65 |
+
return torch.softmax(logits, dim=-1)
|
| 66 |
+
|
| 67 |
+
def predict(self, pixel_values: torch.Tensor, threshold: float = None) -> torch.Tensor:
|
| 68 |
+
"""Get binary predictions."""
|
| 69 |
+
if threshold is None:
|
| 70 |
+
threshold = self.threshold
|
| 71 |
+
proba = self.predict_proba(pixel_values)
|
| 72 |
+
return (proba[:, 1] >= threshold).long()
|
src/train.py
ADDED
|
@@ -0,0 +1,389 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""
|
| 2 |
+
Train DISCO model using PyTorch end-to-end training.
|
| 3 |
+
|
| 4 |
+
This script trains the CLIP-based classifier directly in PyTorch,
|
| 5 |
+
avoiding the sklearn intermediate step.
|
| 6 |
+
"""
|
| 7 |
+
|
| 8 |
+
import torch
|
| 9 |
+
import torch.nn as nn
|
| 10 |
+
import torch.optim as optim
|
| 11 |
+
from torch.utils.data import DataLoader
|
| 12 |
+
import numpy as np
|
| 13 |
+
import json
|
| 14 |
+
from pathlib import Path
|
| 15 |
+
from sklearn.metrics import (
|
| 16 |
+
roc_auc_score, average_precision_score, roc_curve, classification_report
|
| 17 |
+
)
|
| 18 |
+
from transformers import CLIPProcessor
|
| 19 |
+
from rich.progress import Progress, SpinnerColumn, TextColumn, BarColumn, TimeElapsedColumn
|
| 20 |
+
from src.dataset import get_dataset, ImageDataset
|
| 21 |
+
from src.model import DISCO, DISCOConfig
|
| 22 |
+
|
| 23 |
+
|
| 24 |
+
def tune_threshold(y_true: np.ndarray, y_scores: np.ndarray, metric: str = "f1") -> tuple[float, dict]:
|
| 25 |
+
"""
|
| 26 |
+
Tune classification threshold on validation set.
|
| 27 |
+
|
| 28 |
+
Args:
|
| 29 |
+
y_true: Ground truth binary labels
|
| 30 |
+
y_scores: Predicted probability scores
|
| 31 |
+
metric: Metric to optimize ("f1", "precision", "recall", "balanced_accuracy")
|
| 32 |
+
|
| 33 |
+
Returns:
|
| 34 |
+
Best threshold and metrics at that threshold
|
| 35 |
+
"""
|
| 36 |
+
fpr, tpr, thresholds = roc_curve(y_true, y_scores)
|
| 37 |
+
|
| 38 |
+
best_threshold = 0.5
|
| 39 |
+
best_score = 0.0
|
| 40 |
+
best_metrics = {}
|
| 41 |
+
|
| 42 |
+
for threshold in thresholds:
|
| 43 |
+
y_pred = (y_scores >= threshold).astype(int)
|
| 44 |
+
|
| 45 |
+
# Compute metrics
|
| 46 |
+
tp = np.sum((y_pred == 1) & (y_true == 1))
|
| 47 |
+
fp = np.sum((y_pred == 1) & (y_true == 0))
|
| 48 |
+
fn = np.sum((y_pred == 0) & (y_true == 1))
|
| 49 |
+
tn = np.sum((y_pred == 0) & (y_true == 0))
|
| 50 |
+
|
| 51 |
+
precision = tp / (tp + fp) if (tp + fp) > 0 else 0.0
|
| 52 |
+
recall = tp / (tp + fn) if (tp + fn) > 0 else 0.0
|
| 53 |
+
f1 = 2 * (precision * recall) / (precision +
|
| 54 |
+
recall) if (precision + recall) > 0 else 0.0
|
| 55 |
+
balanced_accuracy = (tpr[np.argmax(thresholds >= threshold)] +
|
| 56 |
+
(1 - fpr[np.argmax(thresholds >= threshold)])) / 2
|
| 57 |
+
|
| 58 |
+
score_map = {
|
| 59 |
+
"f1": f1,
|
| 60 |
+
"precision": precision,
|
| 61 |
+
"recall": recall,
|
| 62 |
+
"balanced_accuracy": balanced_accuracy
|
| 63 |
+
}
|
| 64 |
+
|
| 65 |
+
score = score_map.get(metric, f1)
|
| 66 |
+
|
| 67 |
+
if score > best_score:
|
| 68 |
+
best_score = score
|
| 69 |
+
best_threshold = threshold
|
| 70 |
+
best_metrics = {
|
| 71 |
+
"threshold": threshold,
|
| 72 |
+
"precision": precision,
|
| 73 |
+
"recall": recall,
|
| 74 |
+
"f1": f1,
|
| 75 |
+
"balanced_accuracy": balanced_accuracy,
|
| 76 |
+
"tp": int(tp),
|
| 77 |
+
"fp": int(fp),
|
| 78 |
+
"tn": int(tn),
|
| 79 |
+
"fn": int(fn)
|
| 80 |
+
}
|
| 81 |
+
|
| 82 |
+
return best_threshold, best_metrics
|
| 83 |
+
|
| 84 |
+
|
| 85 |
+
def train_epoch(model: nn.Module, dataloader: DataLoader, criterion: nn.Module,
|
| 86 |
+
optimizer: optim.Optimizer, device: str) -> float:
|
| 87 |
+
"""Train for one epoch."""
|
| 88 |
+
model.train()
|
| 89 |
+
total_loss = 0.0
|
| 90 |
+
num_batches = 0
|
| 91 |
+
|
| 92 |
+
for inputs, labels in dataloader:
|
| 93 |
+
pixel_values = inputs["pixel_values"].to(device)
|
| 94 |
+
labels = labels.to(device)
|
| 95 |
+
|
| 96 |
+
# Forward pass
|
| 97 |
+
optimizer.zero_grad()
|
| 98 |
+
logits = model(pixel_values=pixel_values)
|
| 99 |
+
loss = criterion(logits, labels)
|
| 100 |
+
|
| 101 |
+
# Backward pass
|
| 102 |
+
loss.backward()
|
| 103 |
+
optimizer.step()
|
| 104 |
+
|
| 105 |
+
total_loss += loss.item()
|
| 106 |
+
num_batches += 1
|
| 107 |
+
|
| 108 |
+
return total_loss / num_batches if num_batches > 0 else 0.0
|
| 109 |
+
|
| 110 |
+
|
| 111 |
+
def evaluate(model: nn.Module, dataloader: DataLoader, device: str) -> tuple[np.ndarray, np.ndarray]:
|
| 112 |
+
"""Evaluate model and return predictions and labels."""
|
| 113 |
+
model.eval()
|
| 114 |
+
all_proba = []
|
| 115 |
+
all_labels = []
|
| 116 |
+
|
| 117 |
+
with torch.no_grad():
|
| 118 |
+
for inputs, labels in dataloader:
|
| 119 |
+
pixel_values = inputs["pixel_values"].to(device)
|
| 120 |
+
labels = labels.to(device)
|
| 121 |
+
|
| 122 |
+
# Get predictions
|
| 123 |
+
proba = model.predict_proba(pixel_values)
|
| 124 |
+
all_proba.append(proba.cpu().numpy())
|
| 125 |
+
all_labels.append(labels.cpu().numpy())
|
| 126 |
+
|
| 127 |
+
proba = np.vstack(all_proba)
|
| 128 |
+
labels = np.concatenate(all_labels)
|
| 129 |
+
|
| 130 |
+
return proba, labels
|
| 131 |
+
|
| 132 |
+
|
| 133 |
+
def train(
|
| 134 |
+
num_epochs: int = 10,
|
| 135 |
+
batch_size: int = 32,
|
| 136 |
+
learning_rate: float = 1e-3,
|
| 137 |
+
weight_decay: float = 1e-4,
|
| 138 |
+
class_weight: str = "balanced"
|
| 139 |
+
):
|
| 140 |
+
"""
|
| 141 |
+
Train DISCO model using PyTorch.
|
| 142 |
+
|
| 143 |
+
Args:
|
| 144 |
+
num_epochs: Number of training epochs
|
| 145 |
+
batch_size: Batch size for training
|
| 146 |
+
learning_rate: Learning rate for optimizer
|
| 147 |
+
weight_decay: Weight decay (L2 regularization)
|
| 148 |
+
class_weight: Class weighting strategy ("balanced" or None)
|
| 149 |
+
"""
|
| 150 |
+
print("=" * 60)
|
| 151 |
+
print("DISCO Model Training (PyTorch)")
|
| 152 |
+
print("=" * 60)
|
| 153 |
+
|
| 154 |
+
# Setup device
|
| 155 |
+
device = "mps" if torch.backends.mps.is_available() else (
|
| 156 |
+
"cuda" if torch.cuda.is_available() else "cpu")
|
| 157 |
+
print(f"\nUsing device: {device}")
|
| 158 |
+
|
| 159 |
+
# Load dataset splits
|
| 160 |
+
print("\n[1/6] Loading dataset splits...")
|
| 161 |
+
dataset = get_dataset()
|
| 162 |
+
|
| 163 |
+
train_paths = [str(Path(img_path))
|
| 164 |
+
for img_path in dataset["train"]["image"]]
|
| 165 |
+
val_paths = [str(Path(img_path)) for img_path in dataset["val"]["image"]]
|
| 166 |
+
test_paths = [str(Path(img_path)) for img_path in dataset["test"]["image"]]
|
| 167 |
+
|
| 168 |
+
train_labels = np.array(dataset["train"]["label"])
|
| 169 |
+
val_labels = np.array(dataset["val"]["label"])
|
| 170 |
+
test_labels = np.array(dataset["test"]["label"])
|
| 171 |
+
|
| 172 |
+
print(f" Train: {len(train_paths)} images")
|
| 173 |
+
print(f" Val: {len(val_paths)} images")
|
| 174 |
+
print(f" Test: {len(test_paths)} images")
|
| 175 |
+
|
| 176 |
+
# Load CLIP processor
|
| 177 |
+
print("\n[2/6] Loading CLIP processor...")
|
| 178 |
+
model_name = "openai/clip-vit-base-patch32"
|
| 179 |
+
processor = CLIPProcessor.from_pretrained(model_name)
|
| 180 |
+
print(f" Model: {model_name}")
|
| 181 |
+
|
| 182 |
+
# Create datasets and dataloaders
|
| 183 |
+
print("\n[3/6] Creating datasets and dataloaders...")
|
| 184 |
+
train_dataset = ImageDataset(train_paths, train_labels, processor)
|
| 185 |
+
val_dataset = ImageDataset(val_paths, val_labels, processor)
|
| 186 |
+
test_dataset = ImageDataset(test_paths, test_labels, processor)
|
| 187 |
+
|
| 188 |
+
train_loader = DataLoader(
|
| 189 |
+
train_dataset, batch_size=batch_size, shuffle=True, num_workers=0)
|
| 190 |
+
val_loader = DataLoader(
|
| 191 |
+
val_dataset, batch_size=batch_size, shuffle=False, num_workers=0)
|
| 192 |
+
test_loader = DataLoader(
|
| 193 |
+
test_dataset, batch_size=batch_size, shuffle=False, num_workers=0)
|
| 194 |
+
|
| 195 |
+
# Initialize model
|
| 196 |
+
print("\n[4/6] Initializing model...")
|
| 197 |
+
config = DISCOConfig(
|
| 198 |
+
clip_model_name=model_name,
|
| 199 |
+
num_classes=2,
|
| 200 |
+
threshold=0.5
|
| 201 |
+
)
|
| 202 |
+
model = DISCO(config).to(device)
|
| 203 |
+
|
| 204 |
+
# Only train the classifier, keep CLIP frozen
|
| 205 |
+
optimizer = optim.AdamW(
|
| 206 |
+
model.classifier.parameters(),
|
| 207 |
+
lr=learning_rate,
|
| 208 |
+
weight_decay=weight_decay
|
| 209 |
+
)
|
| 210 |
+
|
| 211 |
+
# Setup loss function with class weights if needed
|
| 212 |
+
if class_weight == "balanced":
|
| 213 |
+
# Compute class weights from training data
|
| 214 |
+
class_counts = np.bincount(train_labels)
|
| 215 |
+
total = len(train_labels)
|
| 216 |
+
class_weights = torch.tensor([
|
| 217 |
+
total / (2 * class_counts[0]),
|
| 218 |
+
total / (2 * class_counts[1])
|
| 219 |
+
], dtype=torch.float32).to(device)
|
| 220 |
+
criterion = nn.CrossEntropyLoss(weight=class_weights)
|
| 221 |
+
print(f" Using balanced class weights: {class_weights.cpu().numpy()}")
|
| 222 |
+
else:
|
| 223 |
+
criterion = nn.CrossEntropyLoss()
|
| 224 |
+
print(" Using uniform class weights")
|
| 225 |
+
|
| 226 |
+
print(
|
| 227 |
+
f" Trainable parameters: {sum(p.numel() for p in model.classifier.parameters() if p.requires_grad):,}")
|
| 228 |
+
|
| 229 |
+
# Training loop
|
| 230 |
+
print("\n[5/6] Training model...")
|
| 231 |
+
best_val_f1 = 0.0
|
| 232 |
+
best_model_state = None
|
| 233 |
+
|
| 234 |
+
with Progress(
|
| 235 |
+
SpinnerColumn(),
|
| 236 |
+
TextColumn("[progress.description]{task.description}"),
|
| 237 |
+
BarColumn(),
|
| 238 |
+
TextColumn("[progress.percentage]{task.percentage:>3.0f}%"),
|
| 239 |
+
TimeElapsedColumn(),
|
| 240 |
+
console=None,
|
| 241 |
+
) as progress:
|
| 242 |
+
train_task = progress.add_task("Training", total=num_epochs)
|
| 243 |
+
|
| 244 |
+
for epoch in range(num_epochs):
|
| 245 |
+
# Train
|
| 246 |
+
train_loss = train_epoch(
|
| 247 |
+
model, train_loader, criterion, optimizer, device)
|
| 248 |
+
|
| 249 |
+
# Validate
|
| 250 |
+
val_proba, val_labels_np = evaluate(model, val_loader, device)
|
| 251 |
+
val_scores = val_proba[:, 1]
|
| 252 |
+
val_roc_auc = roc_auc_score(val_labels_np, val_scores)
|
| 253 |
+
|
| 254 |
+
# Compute F1 at default threshold
|
| 255 |
+
val_pred = (val_scores >= 0.5).astype(int)
|
| 256 |
+
tp = np.sum((val_pred == 1) & (val_labels_np == 1))
|
| 257 |
+
fp = np.sum((val_pred == 1) & (val_labels_np == 0))
|
| 258 |
+
fn = np.sum((val_pred == 0) & (val_labels_np == 1))
|
| 259 |
+
precision = tp / (tp + fp) if (tp + fp) > 0 else 0.0
|
| 260 |
+
recall = tp / (tp + fn) if (tp + fn) > 0 else 0.0
|
| 261 |
+
|
| 262 |
+
val_f1 = 2 * (precision * recall) / (precision +
|
| 263 |
+
recall) if (precision + recall) > 0 else 0.0
|
| 264 |
+
|
| 265 |
+
progress.update(train_task, advance=1, description=f"Epoch {epoch+1}/{num_epochs} | Loss: {train_loss:.4f} | "
|
| 266 |
+
f"Val ROC-AUC: {val_roc_auc:.4f} | Val F1: {val_f1:.4f}")
|
| 267 |
+
|
| 268 |
+
# Save best model
|
| 269 |
+
if val_f1 > best_val_f1:
|
| 270 |
+
best_val_f1 = val_f1
|
| 271 |
+
best_model_state = model.state_dict().copy()
|
| 272 |
+
|
| 273 |
+
# Load best model
|
| 274 |
+
if best_model_state is not None:
|
| 275 |
+
model.load_state_dict(best_model_state)
|
| 276 |
+
print(f"\n Best validation F1: {best_val_f1:.4f}")
|
| 277 |
+
|
| 278 |
+
# Tune threshold on validation set
|
| 279 |
+
print("\n[6/6] Tuning threshold on validation set...")
|
| 280 |
+
val_proba, val_labels_np = evaluate(model, val_loader, device)
|
| 281 |
+
val_scores = val_proba[:, 1]
|
| 282 |
+
best_threshold, threshold_metrics = tune_threshold(
|
| 283 |
+
val_labels_np, val_scores, metric="f1")
|
| 284 |
+
print(f" Best threshold: {best_threshold:.4f}")
|
| 285 |
+
print(" Validation metrics at best threshold:")
|
| 286 |
+
print(f" Precision: {threshold_metrics['precision']:.4f}")
|
| 287 |
+
print(f" Recall: {threshold_metrics['recall']:.4f}")
|
| 288 |
+
print(f" F1: {threshold_metrics['f1']:.4f}")
|
| 289 |
+
print(
|
| 290 |
+
f" Balanced Accuracy: {threshold_metrics['balanced_accuracy']:.4f}")
|
| 291 |
+
|
| 292 |
+
# Update model threshold
|
| 293 |
+
model.threshold = best_threshold
|
| 294 |
+
config.threshold = best_threshold
|
| 295 |
+
|
| 296 |
+
# Evaluate on test set
|
| 297 |
+
print("\n" + "=" * 60)
|
| 298 |
+
print("Test Set Evaluation")
|
| 299 |
+
print("=" * 60)
|
| 300 |
+
|
| 301 |
+
test_proba, test_labels_np = evaluate(model, test_loader, device)
|
| 302 |
+
test_scores = test_proba[:, 1]
|
| 303 |
+
test_roc_auc = roc_auc_score(test_labels_np, test_scores)
|
| 304 |
+
test_pr_auc = average_precision_score(test_labels_np, test_scores)
|
| 305 |
+
|
| 306 |
+
print("\nTest Set Metrics (probability scores):")
|
| 307 |
+
print(f" ROC AUC: {test_roc_auc:.4f}")
|
| 308 |
+
print(f" PR AUC: {test_pr_auc:.4f}")
|
| 309 |
+
|
| 310 |
+
# Apply best threshold
|
| 311 |
+
test_pred = (test_scores >= best_threshold).astype(int)
|
| 312 |
+
|
| 313 |
+
print(f"\nTest Set Metrics (with threshold={best_threshold:.4f}):")
|
| 314 |
+
print(classification_report(test_labels_np, test_pred,
|
| 315 |
+
target_names=["FAMILY_SAFE/UNCERTAIN", "SUGGESTIVE"]))
|
| 316 |
+
|
| 317 |
+
# Confusion matrix
|
| 318 |
+
tp = np.sum((test_pred == 1) & (test_labels_np == 1))
|
| 319 |
+
fp = np.sum((test_pred == 1) & (test_labels_np == 0))
|
| 320 |
+
tn = np.sum((test_pred == 0) & (test_labels_np == 0))
|
| 321 |
+
fn = np.sum((test_pred == 0) & (test_labels_np == 1))
|
| 322 |
+
|
| 323 |
+
print("\nConfusion Matrix:")
|
| 324 |
+
print(" Predicted")
|
| 325 |
+
print(" FAMILY_SAFE SUGGESTIVE")
|
| 326 |
+
print(f"Actual FAMILY_SAFE {tn:4d} {fp:4d}")
|
| 327 |
+
print(f" SUGGESTIVE {fn:4d} {tp:4d}")
|
| 328 |
+
|
| 329 |
+
# Save model and metadata
|
| 330 |
+
print("\n" + "=" * 60)
|
| 331 |
+
print("Saving Model")
|
| 332 |
+
print("=" * 60)
|
| 333 |
+
|
| 334 |
+
models_dir = Path(__file__).parent.parent / "models"
|
| 335 |
+
models_dir.mkdir(exist_ok=True)
|
| 336 |
+
|
| 337 |
+
# Save Hugging Face model
|
| 338 |
+
config.save_pretrained(models_dir)
|
| 339 |
+
model.save_pretrained(models_dir)
|
| 340 |
+
print(f" Saved Hugging Face model to: {models_dir}")
|
| 341 |
+
|
| 342 |
+
# Save processor
|
| 343 |
+
processor.save_pretrained(models_dir)
|
| 344 |
+
print(f" Saved processor to: {models_dir}")
|
| 345 |
+
|
| 346 |
+
# Save metadata
|
| 347 |
+
metadata = {
|
| 348 |
+
"model_name": model_name,
|
| 349 |
+
"threshold": float(best_threshold),
|
| 350 |
+
"test_roc_auc": float(test_roc_auc),
|
| 351 |
+
"test_pr_auc": float(test_pr_auc),
|
| 352 |
+
"val_roc_auc": float(roc_auc_score(val_labels_np, val_scores)),
|
| 353 |
+
"val_pr_auc": float(average_precision_score(val_labels_np, val_scores)),
|
| 354 |
+
"threshold_metrics": {
|
| 355 |
+
k: float(v) if isinstance(v, (int, float, np.number)) else v
|
| 356 |
+
for k, v in threshold_metrics.items()
|
| 357 |
+
},
|
| 358 |
+
"embedding_dim": int(model.clip_model.config.projection_dim),
|
| 359 |
+
"model_type": "clip_nsfw_detector",
|
| 360 |
+
"framework": "pytorch",
|
| 361 |
+
"training_config": {
|
| 362 |
+
"num_epochs": num_epochs,
|
| 363 |
+
"batch_size": batch_size,
|
| 364 |
+
"learning_rate": learning_rate,
|
| 365 |
+
"weight_decay": weight_decay,
|
| 366 |
+
"class_weight": class_weight
|
| 367 |
+
}
|
| 368 |
+
}
|
| 369 |
+
|
| 370 |
+
metadata_path = models_dir / "model_metadata.json"
|
| 371 |
+
with open(metadata_path, "w") as f:
|
| 372 |
+
json.dump(metadata, f, indent=2)
|
| 373 |
+
print(f" Saved metadata to: {metadata_path}")
|
| 374 |
+
|
| 375 |
+
print("\nModel saved successfully!")
|
| 376 |
+
print(f"\nModel is ready for Hugging Face upload from: {models_dir}")
|
| 377 |
+
|
| 378 |
+
return {
|
| 379 |
+
"model": model,
|
| 380 |
+
"threshold": best_threshold,
|
| 381 |
+
"test_roc_auc": test_roc_auc,
|
| 382 |
+
"test_pr_auc": test_pr_auc,
|
| 383 |
+
"threshold_metrics": threshold_metrics,
|
| 384 |
+
"metadata_path": metadata_path
|
| 385 |
+
}
|
| 386 |
+
|
| 387 |
+
|
| 388 |
+
if __name__ == "__main__":
|
| 389 |
+
results = train()
|
uv.lock
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|