2020 | "(" prompt ":" prompt ")"
2121 | "[" prompt "]"
2222scheduled: "[" [prompt ":"] prompt ":" [WHITESPACE] NUMBER [WHITESPACE] "]"
23- alternate: "[" prompt ("|" prompt)+ "]"
23+ alternate: "[" prompt ("|" [ prompt] )+ "]"
2424WHITESPACE: /\s+/
2525plain: /([^\\\[\]():|]|\\.)+/
2626%import common.SIGNED_NUMBER -> NUMBER
@@ -53,6 +53,10 @@ def get_learned_conditioning_prompt_schedules(prompts, steps):
5353 [[3, '((a][:b:c '], [10, '((a][:b:c d']]
5454 >>> g("[a|(b:1.1)]")
5555 [[1, 'a'], [2, '(b:1.1)'], [3, 'a'], [4, '(b:1.1)'], [5, 'a'], [6, '(b:1.1)'], [7, 'a'], [8, '(b:1.1)'], [9, 'a'], [10, '(b:1.1)']]
56+ >>> g("[fe|]male")
57+ [[1, 'female'], [2, 'male'], [3, 'female'], [4, 'male'], [5, 'female'], [6, 'male'], [7, 'female'], [8, 'male'], [9, 'female'], [10, 'male']]
58+ >>> g("[fe|||]male")
59+ [[1, 'female'], [2, 'male'], [3, 'male'], [4, 'male'], [5, 'female'], [6, 'male'], [7, 'male'], [8, 'male'], [9, 'female'], [10, 'male']]
5660 """
5761
5862 def collect_steps (steps , tree ):
@@ -78,7 +82,8 @@ def scheduled(self, args):
7882 before , after , _ , when , _ = args
7983 yield before or () if step <= when else after
8084 def alternate (self , args ):
81- yield next (args [(step - 1 )% len (args )])
85+ args = ["" if not arg else arg for arg in args ]
86+ yield args [(step - 1 ) % len (args )]
8287 def start (self , args ):
8388 def flatten (x ):
8489 if type (x ) == str :
0 commit comments