提交 8a40e30d 编写于 作者: R Robert Barron

add support for whitespace after the number in constructions like [foo:bar: 0.5 ] and (foo : 0.5 )

上级 68f336bd
...@@ -19,7 +19,7 @@ prompt: (emphasized | scheduled | alternate | plain | WHITESPACE)* ...@@ -19,7 +19,7 @@ prompt: (emphasized | scheduled | alternate | plain | WHITESPACE)*
!emphasized: "(" prompt ")" !emphasized: "(" prompt ")"
| "(" prompt ":" prompt ")" | "(" prompt ":" prompt ")"
| "[" prompt "]" | "[" prompt "]"
scheduled: "[" [prompt ":"] prompt ":" [WHITESPACE] NUMBER "]" scheduled: "[" [prompt ":"] prompt ":" [WHITESPACE] NUMBER [WHITESPACE] "]"
alternate: "[" prompt ("|" prompt)+ "]" alternate: "[" prompt ("|" prompt)+ "]"
WHITESPACE: /\s+/ WHITESPACE: /\s+/
plain: /([^\\\[\]():|]|\\.)+/ plain: /([^\\\[\]():|]|\\.)+/
...@@ -60,11 +60,11 @@ def get_learned_conditioning_prompt_schedules(prompts, steps): ...@@ -60,11 +60,11 @@ def get_learned_conditioning_prompt_schedules(prompts, steps):
class CollectSteps(lark.Visitor): class CollectSteps(lark.Visitor):
def scheduled(self, tree): def scheduled(self, tree):
tree.children[-1] = float(tree.children[-1]) tree.children[-2] = float(tree.children[-2])
if tree.children[-1] < 1: if tree.children[-2] < 1:
tree.children[-1] *= steps tree.children[-2] *= steps
tree.children[-1] = min(steps, int(tree.children[-1])) tree.children[-2] = min(steps, int(tree.children[-2]))
res.append(tree.children[-1]) res.append(tree.children[-2])
def alternate(self, tree): def alternate(self, tree):
res.extend(range(1, steps+1)) res.extend(range(1, steps+1))
...@@ -75,7 +75,7 @@ def get_learned_conditioning_prompt_schedules(prompts, steps): ...@@ -75,7 +75,7 @@ def get_learned_conditioning_prompt_schedules(prompts, steps):
def at_step(step, tree): def at_step(step, tree):
class AtStep(lark.Transformer): class AtStep(lark.Transformer):
def scheduled(self, args): def scheduled(self, args):
before, after, _, when = args before, after, _, when, _ = args
yield before or () if step <= when else after yield before or () if step <= when else after
def alternate(self, args): def alternate(self, args):
yield next(args[(step - 1)%len(args)]) yield next(args[(step - 1)%len(args)])
...@@ -333,7 +333,7 @@ re_attention = re.compile(r""" ...@@ -333,7 +333,7 @@ re_attention = re.compile(r"""
\\| \\|
\(| \(|
\[| \[|
:([+-]?[.\d]+)\)| :\s*([+-]?[.\d]+)\s*\)|
\)| \)|
]| ]|
[^\\()\[\]:]+| [^\\()\[\]:]+|
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册