1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- 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-convnextv2-v2': WaifuDiffusionInterrogator(
- 'wd14-convnextv2-v2',
- repo_id='SmilingWolf/wd-v1-4-convnextv2-tagger-v2',
- revision='v2.0'
- ),
- '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-convnextv2-v2-git': WaifuDiffusionInterrogator(
- 'wd14-convnextv2-v2',
- repo_id='SmilingWolf/wd-v1-4-convnextv2-tagger-v2',
- ),
- '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]
|