Spaces:
Running
on
Zero
Running
on
Zero
Remove arrays in prompts
#70
by
adamelliotfields
- opened
Added because it was in Fooocus, but I never use it. Implementation was simple with itertools
:
import re
from itertools import product
def parse_prompt_with_arrays(prompt: str) -> list[str]:
arrays = re.findall(r"\[\[(.*?)\]\]", prompt)
if not arrays:
return [prompt]
tokens = [item.split(",") for item in arrays] # [("a", "b"), ("1", "2")]
combinations = list(product(*tokens)) # [("a", "1"), ("a", "2"), ("b", "1"), ("b", "2")]
prompts = []
for combo in combinations:
current_prompt = prompt
for i, token in enumerate(combo):
current_prompt = current_prompt.replace(f"[[{arrays[i]}]]", token.strip(), 1)
prompts.append(current_prompt)
return prompts