Spaces:
Runtime error
Runtime error
try again on model cards every cicle
Browse files
app.py
CHANGED
|
@@ -54,19 +54,22 @@ database = Database(DB_FOLDER)
|
|
| 54 |
|
| 55 |
async def upload_resize_image_url(session, image_url):
|
| 56 |
print(f"Uploading image {image_url}")
|
| 57 |
-
|
| 58 |
-
|
| 59 |
-
|
| 60 |
-
|
| 61 |
-
|
| 62 |
-
|
| 63 |
-
|
| 64 |
-
|
| 65 |
-
|
| 66 |
-
|
| 67 |
-
|
| 68 |
-
|
| 69 |
-
|
|
|
|
|
|
|
|
|
|
| 70 |
|
| 71 |
|
| 72 |
def fetch_models(page=0):
|
|
@@ -168,6 +171,7 @@ async def sync_data():
|
|
| 168 |
downloads = model['downloads']
|
| 169 |
model_card = fetch_model_card(model_id)
|
| 170 |
images = await find_image_in_model_card(model_card)
|
|
|
|
| 171 |
classifier = run_classifier(images)
|
| 172 |
# update model row with image and classifier data
|
| 173 |
with database.get_db() as db:
|
|
@@ -183,6 +187,31 @@ async def sync_data():
|
|
| 183 |
downloads
|
| 184 |
])
|
| 185 |
db.commit()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 186 |
print("Update likes and downloads")
|
| 187 |
for model in tqdm(all_models):
|
| 188 |
model_id = model['id']
|
|
|
|
| 54 |
|
| 55 |
async def upload_resize_image_url(session, image_url):
|
| 56 |
print(f"Uploading image {image_url}")
|
| 57 |
+
try:
|
| 58 |
+
async with session.get(image_url) as response:
|
| 59 |
+
if response.status == 200 and (response.headers['content-type'].startswith('image') or response.headers['content-type'].startswith('application')):
|
| 60 |
+
image = Image.open(BytesIO(await response.read())).convert('RGB')
|
| 61 |
+
# resize image proportional
|
| 62 |
+
image = ImageOps.fit(image, (400, 400), Image.LANCZOS)
|
| 63 |
+
image_bytes = BytesIO()
|
| 64 |
+
image.save(image_bytes, format="JPEG")
|
| 65 |
+
image_bytes.seek(0)
|
| 66 |
+
fname = f'{uuid.uuid4()}.jpg'
|
| 67 |
+
s3.upload_fileobj(Fileobj=image_bytes, Bucket=AWS_S3_BUCKET_NAME, Key="diffusers-gallery/" + fname,
|
| 68 |
+
ExtraArgs={"ContentType": "image/jpeg", "CacheControl": "max-age=31536000"})
|
| 69 |
+
return fname
|
| 70 |
+
|
| 71 |
+
except Exception as e:
|
| 72 |
+
return None
|
| 73 |
|
| 74 |
|
| 75 |
def fetch_models(page=0):
|
|
|
|
| 171 |
downloads = model['downloads']
|
| 172 |
model_card = fetch_model_card(model_id)
|
| 173 |
images = await find_image_in_model_card(model_card)
|
| 174 |
+
images = [i for i in images if i is not None]
|
| 175 |
classifier = run_classifier(images)
|
| 176 |
# update model row with image and classifier data
|
| 177 |
with database.get_db() as db:
|
|
|
|
| 187 |
downloads
|
| 188 |
])
|
| 189 |
db.commit()
|
| 190 |
+
print("Try to update images again")
|
| 191 |
+
with database.get_db() as db:
|
| 192 |
+
cursor = db.cursor()
|
| 193 |
+
cursor.execute("SELECT * from models WHERE json_array_length(data, '$.images') < 1;")
|
| 194 |
+
models_no_images =list(cursor.fetchall())
|
| 195 |
+
for model in tqdm(models_no_images):
|
| 196 |
+
model_id = model['id']
|
| 197 |
+
print("Updating model", model_id)
|
| 198 |
+
model_card = fetch_model_card(model_id)
|
| 199 |
+
images = await find_image_in_model_card(model_card)
|
| 200 |
+
images = [i for i in images if i is not None]
|
| 201 |
+
print(images)
|
| 202 |
+
classifier = run_classifier(images)
|
| 203 |
+
# update model row with image and classifier data
|
| 204 |
+
with database.get_db() as db:
|
| 205 |
+
cursor = db.cursor()
|
| 206 |
+
cursor.execute("UPDATE models SET data = json_set(data, '$.images', ?) WHERE id = ?",
|
| 207 |
+
[json.dumps(images), model_id])
|
| 208 |
+
cursor.execute("UPDATE models SET data = json_set(data, '$.class', ?) WHERE id = ?",
|
| 209 |
+
[json.dumps(classifier), model_id])
|
| 210 |
+
db.commit()
|
| 211 |
+
|
| 212 |
+
|
| 213 |
+
|
| 214 |
+
|
| 215 |
print("Update likes and downloads")
|
| 216 |
for model in tqdm(all_models):
|
| 217 |
model_id = model['id']
|