from typing import Union
from typing import Tuple
from typing import List


def halve_image_dimensions(dimensions: Union[Tuple[int, ...], List[int]]) -> Tuple[int, ...]:
    """
    Halves image dimensions. Returns ints. No new dimension will be less than 1
    """
    new_dimensions_float: List[float] = [x/2 for x in dimensions]
    new_dimensions: List[int] = [int(x) for x in new_dimensions_float]
    new_dimensions = [max(x, 1) for x in new_dimensions]
    return tuple(new_dimensions)