MuseV-test / musev /auto_prompt /load_template.py
kevinwang676's picture
Upload folder using huggingface_hub
6755a2d verified
from mmcm.utils.str_util import has_key_brace
from .human import PortraitAttr2PromptTemplate
from .attributes.attr2template import (
KeywordMultiAttr2PromptTemplate,
OnlySpacePromptTemplate,
)
def get_template_by_name(template: str, name: str = None):
"""根据 template_name 确定 prompt 生成器类
choose prompt generator class according to template_name
Args:
name (str): template 的名字简称,便于指定. template name abbreviation, for easy reference
Raises:
ValueError: ValueError: 如果name不在支持的列表中,则报错. if name is not in the supported list, an error is reported.
Returns:
MultiAttr2PromptTemplate: 能够将任务字典转化为提词的 实现了__call__功能的类. class that can convert task dictionaries into prompts and implements the __call__ function
"""
if template == "" or template is None:
template = OnlySpacePromptTemplate(template=template)
elif has_key_brace(template):
# if has_key_brace(template):
template = KeywordMultiAttr2PromptTemplate(template=template)
else:
if name == "portrait":
template = PortraitAttr2PromptTemplate(templates=template)
else:
raise ValueError(
"PresetAttr2PromptTemplate only support one of [portrait], but given {}".format(
name
)
)
return template