|
from pathlib import Path |
|
import os |
|
import re |
|
|
|
pattern = r'\bfrom_pretrained\(.*?pretrained_model_or_path\s*=\s*(.*?)(?:,|\))|filename\s*=\s*(.*?)(?:,|\))|(\w+_filename)\s*=\s*(.*?)(?:,|\))' |
|
aux_dir = Path(__file__).parent / 'src' / 'custom_controlnet_aux' |
|
VAR_DICT = dict( |
|
HF_MODEL_NAME = "lllyasviel/Annotators", |
|
DWPOSE_MODEL_NAME = "yzd-v/DWPose", |
|
BDS_MODEL_NAME = "bdsqlsz/qinglong_controlnet-lllite", |
|
DENSEPOSE_MODEL_NAME = "LayerNorm/DensePose-TorchScript-with-hint-image", |
|
MESH_GRAPHORMER_MODEL_NAME = "hr16/ControlNet-HandRefiner-pruned", |
|
SAM_MODEL_NAME = "dhkim2810/MobileSAM", |
|
UNIMATCH_MODEL_NAME = "hr16/Unimatch", |
|
DEPTH_ANYTHING_MODEL_NAME = "LiheYoung/Depth-Anything", |
|
DIFFUSION_EDGE_MODEL_NAME = "hr16/Diffusion-Edge" |
|
) |
|
re_result_dict = {} |
|
for preprocc in os.listdir(aux_dir): |
|
if preprocc in ["__pycache__", 'tests']: continue |
|
if '.py' in preprocc: continue |
|
f = open(aux_dir / preprocc / '__init__.py', 'r') |
|
code = f.read() |
|
matches = re.findall(pattern, code) |
|
result = [match[0] or match[1] or match[3] for match in matches] |
|
if not len(result): |
|
print(preprocc) |
|
continue |
|
result = [el.replace("'", '').replace('"', '') for el in result] |
|
result = [VAR_DICT.get(el, el) for el in result] |
|
re_result_dict[preprocc] = result |
|
f.close() |
|
|
|
for preprocc, re_result in re_result_dict.items(): |
|
model_name, filenames = re_result[0], re_result[1:] |
|
print(f"* {preprocc}: ", end=' ') |
|
assests_md = ', '.join([f"[{model_name}/{filename}](https://huggingface.co/{model_name}/blob/main/{filename})" for filename in filenames]) |
|
print(assests_md) |
|
|
|
preprocc = "dwpose" |
|
model_name, filenames = VAR_DICT['DWPOSE_MODEL_NAME'], ["yolox_l.onnx", "dw-ll_ucoco_384.onnx"] |
|
print(f"* {preprocc}: ", end=' ') |
|
assests_md = ', '.join([f"[{model_name}/{filename}](https://huggingface.co/{model_name}/blob/main/{filename})" for filename in filenames]) |
|
print(assests_md) |
|
|
|
preprocc = "yolo-nas" |
|
model_name, filenames = "hr16/yolo-nas-fp16", ["yolo_nas_l_fp16.onnx", "yolo_nas_m_fp16.onnx", "yolo_nas_s_fp16.onnx"] |
|
print(f"* {preprocc}: ", end=' ') |
|
assests_md = ', '.join([f"[{model_name}/{filename}](https://huggingface.co/{model_name}/blob/main/{filename})" for filename in filenames]) |
|
print(assests_md) |
|
|
|
preprocc = "dwpose-torchscript" |
|
model_name, filenames = "hr16/DWPose-TorchScript-BatchSize5", ["dw-ll_ucoco_384_bs5.torchscript.pt", "rtmpose-m_ap10k_256_bs5.torchscript.pt"] |
|
print(f"* {preprocc}: ", end=' ') |
|
assests_md = ', '.join([f"[{model_name}/{filename}](https://huggingface.co/{model_name}/blob/main/{filename})" for filename in filenames]) |
|
print(assests_md) |