aboutsummaryrefslogtreecommitdiffstats
path: root/modules/prompt_parser.py
diff options
context:
space:
mode:
authorRobert Barron <rubberbaron@robustspread.com>2023-07-30 08:22:00 +0000
committerRobert Barron <rubberbaron@robustspread.com>2023-07-30 08:46:25 +0000
commit8a40e30d08d4bd2fc9b3b8b5d697abfda7d31bc0 (patch)
tree6a384486755bed537b619d27fe8eaf6fc4754da3 /modules/prompt_parser.py
parent68f336bd994bed5442ad95bad6b6ad5564a5409a (diff)
downloadstable-diffusion-webui-gfx803-8a40e30d08d4bd2fc9b3b8b5d697abfda7d31bc0.tar.gz
stable-diffusion-webui-gfx803-8a40e30d08d4bd2fc9b3b8b5d697abfda7d31bc0.tar.bz2
stable-diffusion-webui-gfx803-8a40e30d08d4bd2fc9b3b8b5d697abfda7d31bc0.zip
add support for whitespace after the number in constructions like [foo:bar: 0.5 ] and (foo : 0.5 )
Diffstat (limited to 'modules/prompt_parser.py')
-rw-r--r--modules/prompt_parser.py16
1 files changed, 8 insertions, 8 deletions
diff --git a/modules/prompt_parser.py b/modules/prompt_parser.py
index 203ae1ac..8169a459 100644
--- a/modules/prompt_parser.py
+++ b/modules/prompt_parser.py
@@ -19,7 +19,7 @@ prompt: (emphasized | scheduled | alternate | plain | WHITESPACE)*
!emphasized: "(" prompt ")"
| "(" prompt ":" prompt ")"
| "[" prompt "]"
-scheduled: "[" [prompt ":"] prompt ":" [WHITESPACE] NUMBER "]"
+scheduled: "[" [prompt ":"] prompt ":" [WHITESPACE] NUMBER [WHITESPACE] "]"
alternate: "[" prompt ("|" prompt)+ "]"
WHITESPACE: /\s+/
plain: /([^\\\[\]():|]|\\.)+/
@@ -60,11 +60,11 @@ def get_learned_conditioning_prompt_schedules(prompts, steps):
class CollectSteps(lark.Visitor):
def scheduled(self, tree):
- tree.children[-1] = float(tree.children[-1])
- if tree.children[-1] < 1:
- tree.children[-1] *= steps
- tree.children[-1] = min(steps, int(tree.children[-1]))
- res.append(tree.children[-1])
+ tree.children[-2] = float(tree.children[-2])
+ if tree.children[-2] < 1:
+ tree.children[-2] *= steps
+ tree.children[-2] = min(steps, int(tree.children[-2]))
+ res.append(tree.children[-2])
def alternate(self, tree):
res.extend(range(1, steps+1))
@@ -75,7 +75,7 @@ def get_learned_conditioning_prompt_schedules(prompts, steps):
def at_step(step, tree):
class AtStep(lark.Transformer):
def scheduled(self, args):
- before, after, _, when = args
+ before, after, _, when, _ = args
yield before or () if step <= when else after
def alternate(self, args):
yield next(args[(step - 1)%len(args)])
@@ -333,7 +333,7 @@ re_attention = re.compile(r"""
\\|
\(|
\[|
-:([+-]?[.\d]+)\)|
+:\s*([+-]?[.\d]+)\s*\)|
\)|
]|
[^\\()\[\]:]+|