code: def _download(
      url: str, root: str = os.path.expanduser("~/.cache/backprop/clip")
  ):
      os.makedirs(root, exist_ok=True)
      filename = os.path.basename(url)
  
      expected_sha256 = url.split("/")[-2]
      download_target = os.path.join(root, filename)
  
      if os.path.exists(download_target) and not os.path.isfile(
          download_target
      ):
          raise RuntimeError(
              f"{download_target} exists and is not a regular file"
          )
  
      if os.path.isfile(download_target):
          if (
              hashlib.sha256(
                  open(download_target, "rb").read()
              ).hexdigest()
              == expected_sha256
          ):
              return download_target
          else:
              warnings.warn(
                  f"{download_target} exists, but the SHA256 checksum does not match; re-downloading the file"
              )
  
      with urllib.request.urlopen(url) as source, open(
          download_target, "wb"
      ) as output:
          with tqdm(
              total=int(source.info().get("Content-Length")), ncols=80
          ) as loop:
              while True:
                  buffer = source.read(8192)
                  if not buffer:
                      break
  
                  output.write(buffer)
                  loop.update(len(buffer))
  
      if (
          hashlib.sha256(open(download_target, "rb").read()).hexdigest()
          != expected_sha256
      ):
          raise RuntimeError(
              f"Model has been downloaded but the SHA256 checksum does not not match"
          )
  
      return download_target
  
file_path: backprop/backprop/models/clip/clip.py
imports: import hashlib
  import os
  import urllib
  import warnings
  from typing import Union, List
  import torch
  from PIL import Image
  from torchvision.transforms import Compose, Resize, CenterCrop, ToTensor, Normalize
  from tqdm import tqdm
  from .model import build_model
label_desc: Use image node_id 1 for calling a global function with example usage: _download(url, root) and returns: download_target, download_target