andzhang01's picture
Upload 18 files
64c821b
import os
from typing import List, Dict
from pathlib import Path
from modules import shared, scripts
from preload import default_ddp_path
from tagger.preset import Preset
from tagger.interrogator import Interrogator, DeepDanbooruInterrogator, WaifuDiffusionInterrogator
preset = Preset(Path(scripts.basedir(), 'presets'))
interrogators: Dict[str, Interrogator] = {}
def refresh_interrogators() -> List[str]:
global interrogators
interrogators = {
'wd14-vit-v2': WaifuDiffusionInterrogator(
'wd14-vit-v2',
repo_id='SmilingWolf/wd-v1-4-vit-tagger-v2',
revision='v2.0'
),
'wd14-convnext-v2': WaifuDiffusionInterrogator(
'wd14-convnext-v2',
repo_id='SmilingWolf/wd-v1-4-convnext-tagger-v2',
revision='v2.0'
),
'wd14-swinv2-v2': WaifuDiffusionInterrogator(
'wd14-swinv2-v2',
repo_id='SmilingWolf/wd-v1-4-swinv2-tagger-v2',
revision='v2.0'
),
'wd14-vit-v2-git': WaifuDiffusionInterrogator(
'wd14-vit-v2-git',
repo_id='SmilingWolf/wd-v1-4-vit-tagger-v2'
),
'wd14-convnext-v2-git': WaifuDiffusionInterrogator(
'wd14-convnext-v2-git',
repo_id='SmilingWolf/wd-v1-4-convnext-tagger-v2'
),
'wd14-swinv2-v2-git': WaifuDiffusionInterrogator(
'wd14-swinv2-v2-git',
repo_id='SmilingWolf/wd-v1-4-swinv2-tagger-v2'
),
'wd14-vit': WaifuDiffusionInterrogator(
'wd14-vit',
repo_id='SmilingWolf/wd-v1-4-vit-tagger'),
'wd14-convnext': WaifuDiffusionInterrogator(
'wd14-convnext',
repo_id='SmilingWolf/wd-v1-4-convnext-tagger'
),
}
# load deepdanbooru project
os.makedirs(
getattr(shared.cmd_opts, 'deepdanbooru_projects_path', default_ddp_path),
exist_ok=True
)
for path in os.scandir(shared.cmd_opts.deepdanbooru_projects_path):
if not path.is_dir():
continue
if not Path(path, 'project.json').is_file():
continue
interrogators[path.name] = DeepDanbooruInterrogator(path.name, path)
return sorted(interrogators.keys())
def split_str(s: str, separator=',') -> List[str]:
return [x.strip() for x in s.split(separator) if x]