mirror of
https://github.com/vladmandic/automatic
synced 2026-09-20 09:38:23 +02:00
curly braces for inline wildcards
Signed-off-by: Vladimir Mandic <mandic00@live.com>
This commit is contained in:
@@ -226,7 +226,7 @@ def move_model(model, device=None, force=False):
|
||||
t1 = time.time()
|
||||
except Exception as e1:
|
||||
t1 = time.time()
|
||||
shared.log.error(f'Model move: device={device} {e1}')
|
||||
shared.log.warning(f'Model move: device={device} {e1}')
|
||||
if 'move' not in timer.process.records:
|
||||
timer.process.records['move'] = 0
|
||||
timer.process.records['move'] += t1 - t0
|
||||
|
||||
+13
-1
@@ -45,6 +45,17 @@ def apply_styles_to_prompt(prompt, styles):
|
||||
return prompt
|
||||
|
||||
|
||||
def apply_curly_braces_to_prompt(prompt):
|
||||
# woman with {blonde|brunette|red-head|purple highlights} hair
|
||||
curly_braces_matches = re.findall(r'\{(.*?)\}', prompt)
|
||||
for match in curly_braces_matches:
|
||||
options = match.split('|')
|
||||
if options:
|
||||
choice = random.choice(options).strip()
|
||||
prompt = prompt.replace(f'{{{match}}}', choice, 1)
|
||||
return prompt
|
||||
|
||||
|
||||
def apply_file_wildcards(prompt, replaced = [], not_found = [], recursion=0, seed=-1):
|
||||
def check_wildcard_files(prompt, wildcard, files, file_only=True):
|
||||
trimmed = wildcard.replace('\\', os.path.sep).strip().lower()
|
||||
@@ -260,7 +271,6 @@ class StyleDatabase:
|
||||
shared.log.error(f'Failed to load style: file="{fn}" error={e}')
|
||||
return new_style
|
||||
|
||||
|
||||
def reload(self):
|
||||
t0 = time.time()
|
||||
self.styles.clear()
|
||||
@@ -329,6 +339,7 @@ class StyleDatabase:
|
||||
if seeds[i]> 0:
|
||||
random.seed(seeds[i])
|
||||
prompt = prompts[i]
|
||||
prompt = apply_curly_braces_to_prompt(prompt)
|
||||
prompt = apply_styles_to_prompt(prompt, [self.find_style(x).prompt for x in styles])
|
||||
prompt = apply_wildcards_to_prompt(prompt, [self.find_style(x).wildcards for x in styles], seeds[i])
|
||||
parsed_positive.append(prompt)
|
||||
@@ -336,6 +347,7 @@ class StyleDatabase:
|
||||
if seeds[i]> 0:
|
||||
random.seed(seeds[i])
|
||||
prompt = negatives[i]
|
||||
prompt = apply_curly_braces_to_prompt(prompt)
|
||||
prompt = apply_styles_to_prompt(prompt, [self.find_style(x).negative_prompt for x in styles])
|
||||
prompt = apply_wildcards_to_prompt(prompt, [self.find_style(x).wildcards for x in styles], seeds[i])
|
||||
parsed_negative.append(prompt)
|
||||
|
||||
@@ -281,17 +281,6 @@ try:
|
||||
te_cls=getattr(transformers, 'UMT5EncoderModel', None),
|
||||
dit_cls=getattr(diffusers, 'SkyReelsV2Transformer3DModel', None)),
|
||||
],
|
||||
"""
|
||||
'Krea': [
|
||||
Model(name='Krea Realtime WAN-2.1 14B T2V',
|
||||
url='https://huggingface.co/krea/krea-realtime-video',
|
||||
repo='krea/krea-realtime-video',
|
||||
repo_cls=getattr(diffusers, 'WanPipeline', None),
|
||||
te='Wan-AI/Wan2.1-T2V-14B-Diffusers',
|
||||
te_cls=getattr(transformers, 'UMT5EncoderModel', None),
|
||||
dit_cls=getattr(diffusers, 'WanTransformer3DModel', None)),
|
||||
],
|
||||
"""
|
||||
'Mochi Video': [
|
||||
Model(name='None'),
|
||||
Model(name='Mochi 1 T2V',
|
||||
|
||||
Reference in New Issue
Block a user