import logging from glob import glob from io import BytesIO from PIL import Image from tqdm import tqdm from datasets import load_dataset, concatenate_datasets, Dataset, load_from_disk logger = logging.getLogger(__name__) def parquet2dataset(parquet_path: str): datasets = [] for path in sorted(glob(f"{parquet_path}/*.parquet")): datasets.append(load_dataset("parquet", data_files=path)["train"]) dataset = concatenate_datasets(datasets) return dataset def bytes2image(bytes: bytes): image = Image.open(BytesIO(bytes)) image = image.convert("RGB") return image def dataset2images(dataset, pool, col): image_bytes = dataset[col] images = list(tqdm(pool.imap(bytes2image, image_bytes), total=len(image_bytes))) return images