this is a kind of old guide, controlnet union is now integrated in diffusers, you don't have to do anything special if you have the most recent version of diffusers.
import torch
from diffusers import ControlNetUnionModel
controlnet_model = ControlNetUnionModel.from_pretrained(
"OzzyGT/controlnet-union-promax-sdxl-1.0",
torch_dtype=torch.float16,
variant="fp16",
)