Spaces:
Runtime error
Runtime error
File size: 1,594 Bytes
4681ac2 ef5559f 8eeaa6b ef5559f 8eeaa6b 4681ac2 8eeaa6b 4681ac2 e74bbfb 4681ac2 ef5559f f181e18 29dc431 62b6c1b 29dc431 62b6c1b ef5559f 4681ac2 46ae1da ef5559f 9d9900d ef5559f 9d9900d ef5559f 91042b8 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
from pathlib import Path
import gradio as gr
import torch
from transformers import AutoModelForImageClassification
import shutil
from optimum.pipelines import pipeline
device = 1 if torch.cuda.is_available() else "cpu"
chk_point = "davanstrien/autotrain-ia-useful-covers-3665397856"
model = AutoModelForImageClassification.from_pretrained(chk_point)
try:
pipe = pipeline(
"image-classification",
chk_point,
accelerator="bettertransformer",
device=device,
)
except NotImplementedError:
from transformers import pipeline
pipe = pipeline("image-classification", chk_point, device=device)
def make_label_folders():
folders = model.config.label2id.keys()
for folder in folders:
folder = Path(folder)
if not folder.exists():
folder.mkdir()
return folders
def predictions_into_folders(files):
files = [file.name for file in files]
files = [
file for file in files if not file.startswith(".") and "DS_Store" not in file
]
folders = make_label_folders()
predictions = pipe(files)
for file, prediction in zip(files, predictions):
label = prediction[0]["label"]
file_name = Path(file).name
shutil.copy(file, f"{label}/{file_name}")
for folder in folders:
shutil.make_archive(folder, "zip", ".", folder)
return [f"{folder}.zip" for folder in folders]
demo = gr.Interface(
predictions_into_folders,
gr.Files(file_count="directory", file_types=["image"]),
gr.Files(),
cache_examples=True,
)
demo.launch(enable_queue=True)
|