Spaces:
Running
on
Zero
Running
on
Zero
from alpha_clip.alpha_clip import tokenize as _tokenize, load as _load, available_models as _available_models | |
import re | |
import string | |
dependencies = ["torch", "torchvision", "ftfy", "regex", "tqdm"] | |
# For compatibility (cannot include special characters in function name) | |
model_functions = { model: re.sub(f'[{string.punctuation}]', '_', model) for model in _available_models()} | |
def _create_hub_entrypoint(model): | |
def entrypoint(**kwargs): | |
return _load(model, **kwargs) | |
entrypoint.__doc__ = f"""Loads the {model} CLIP model | |
Parameters | |
---------- | |
device : Union[str, torch.device] | |
The device to put the loaded model | |
jit : bool | |
Whether to load the optimized JIT model or more hackable non-JIT model (default). | |
download_root: str | |
path to download the model files; by default, it uses "~/.cache/clip" | |
Returns | |
------- | |
model : torch.nn.Module | |
The {model} CLIP model | |
preprocess : Callable[[PIL.Image], torch.Tensor] | |
A torchvision transform that converts a PIL image into a tensor that the returned model can take as its input | |
""" | |
return entrypoint | |
def tokenize(): | |
return _tokenize | |
_entrypoints = {model_functions[model]: _create_hub_entrypoint(model) for model in _available_models()} | |
globals().update(_entrypoints) |