Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
import os | |
import re | |
import requests | |
import json | |
import subprocess | |
from io import BytesIO | |
import uuid | |
from math import ceil | |
from tqdm import tqdm | |
from pathlib import Path | |
from db import Database | |
DB_FOLDER = Path("diffusers-gallery-data") | |
database = Database(DB_FOLDER) | |
CLASSIFIER_URL = "https://radames-aesthetic-style-nsfw-classifier.hf.space/run/inference" | |
ASSETS_URL = "https://d26smi9133w0oo.cloudfront.net/diffusers-gallery/" | |
def main(): | |
with database.get_db() as db: | |
cursor = db.cursor() | |
cursor.execute(""" | |
SELECT * | |
FROM models | |
""") | |
results = list(cursor.fetchall()) | |
for row in tqdm(results): | |
row_id = row['id'] | |
# keep json data on row_data | |
row_data = json.loads(row['data']) | |
print("updating row", row_id) | |
images = row_data['images'] | |
# filter nones | |
images = [i for i in images if i is not None] | |
if len(images) > 0: | |
# classifying only the first image | |
images_urls = [ASSETS_URL + images[0]] | |
response = requests.post(CLASSIFIER_URL, json={"data": [ | |
{"urls": images_urls}, # json urls: list of images urls | |
False, # enable/disable gallery image output | |
None, # single image input | |
None, # files input | |
]}).json() | |
# data response is array data:[[{img0}, {img1}, {img2}...], Label, Gallery], | |
class_data = response['data'][0][0] | |
class_data_parsed = {row['label']: round( | |
row['score'], 3) for row in class_data} | |
# update row data with classificator data | |
row_data['class'] = class_data_parsed | |
else: | |
row_data['class'] = {} | |
with database.get_db() as db: | |
cursor = db.cursor() | |
cursor.execute("UPDATE models SET data = ? WHERE id = ?", | |
[json.dumps(row_data), row_id]) | |
db.commit() | |
if __name__ == "__main__": | |
main() | |