def METHOD_NAME(self, subject: Subject) -> Subject:
    # if a range is not specified, use the single value to let torch handle stochastic process
    if min(self.brightness_range) == max(self.brightness_range):
        brightness = min(self.brightness_range)
    else:
        brightness = self.brightness_range
    if min(self.contrast_range) == max(self.contrast_range):
        contrast = min(self.contrast_range)
    else:
        contrast = self.contrast_range
    if min(self.saturation_range) == max(self.saturation_range):
        saturation = min(self.saturation_range)
    else:
        saturation = self.saturation_range
    if min(self.hue_range) == max(self.hue_range):
        hue = min(self.hue_range)
    else:
        hue = self.hue_range
    transform = ColorJitter(
        brightness=brightness,
        contrast=contrast,
        saturation=saturation,
        hue=hue,
    )
    for _, image in self.get_images_dict(subject).items():
        # proceed with processing only if the image is RGB
        if image.data.shape[-1] == 1:
            temp = image.data
            # remove last dimension
            temp = temp.squeeze(-1)
            # add a shell batch dimension
            temp = temp.unsqueeze(0)
            # apply transform
            temp = transform(temp)
            # remove shell batch dimension
            temp = temp.squeeze(0)
            # add last dimension to bring image back to original shape
            temp = temp.unsqueeze(-1)
            image.set_data(temp)
    return subject