TienVu2204's picture
upload file
ed8f267
Raw
History Blame Contribute Delete
2.05 kB
import torch
import os
from src.datasets.text2image.caption_datasets import CaptionDataset
from PIL import Image
class BLIP3oDataset(CaptionDataset):
def __getitem__(self, idx):
if self.debug:
idx = 0
try:
data_sample = self.data_list[idx]
if self.image_tokens_folder is not None:
image_tokens = torch.load(os.path.join(self.image_tokens_folder,
data_sample['image'] + '.pt')).long()
data = dict(image_tokens=image_tokens)
elif self.latents_ceph_folder is not None:
image_latents = torch.load(
self._read_ceph(
os.path.join(
self.latents_ceph_folder, data_sample['image'] + '.pt'
)
)
)
data = dict(image_latents=image_latents)
elif self.image_latents_folder is not None:
image_latents = torch.load(os.path.join(self.image_latents_folder,
data_sample['image'] + '.pt'))
data = dict(image_latents=image_latents)
else:
if self.image_folder is not None:
image = Image.open(os.path.join(self.image_folder,data_sample['image_path'])).convert('RGB')
else:
image = Image.open(data_sample['image_path']).convert('RGB')
data = self._process_image(image)
caption = data_sample['txt']
# print(caption)
data["pixel_init"] = image
data.update(self._process_text(caption))
data.update(image_dir=self.image_folder, image_file=None,
type='text2image',text=caption)
return data
except Exception as e:
print(f"Error when reading {self.data_path}:{self.data_list[idx]}: {e}", flush=True)
return self._retry()