Improved wildcards implementation (using same wildcard multiple times will now return different values)

This commit is contained in:
MoonRide303 2023-10-18 08:05:45 +02:00
parent 1eaf7796da
commit 4dc3bd8b67
3 changed files with 7 additions and 2 deletions

View File

@ -1 +1 @@
version = '2.1.695' version = '2.1.696'

View File

@ -100,11 +100,12 @@ def apply_style(style, positive):
def apply_wildcards(wildcard_text, seed=None, directory=wildcards_path): def apply_wildcards(wildcard_text, seed=None, directory=wildcards_path):
placeholders = re.findall(r'__(\w+)__', wildcard_text) placeholders = re.findall(r'__(\w+)__', wildcard_text)
rng = random.Random(seed)
for placeholder in placeholders: for placeholder in placeholders:
try: try:
words = open(os.path.join(directory, f'{placeholder}.txt'), encoding='utf-8').read().splitlines() words = open(os.path.join(directory, f'{placeholder}.txt'), encoding='utf-8').read().splitlines()
words = [x for x in words if x != ''] words = [x for x in words if x != '']
wildcard_text = wildcard_text.replace(f'__{placeholder}__', random.Random(seed).choice(words)) wildcard_text = wildcard_text.replace(f'__{placeholder}__', rng.choice(words), 1)
except IOError: except IOError:
print(f'Error: could not open wildcard file {placeholder}.txt, using as normal word.') print(f'Error: could not open wildcard file {placeholder}.txt, using as normal word.')
wildcard_text = wildcard_text.replace(f'__{placeholder}__', placeholder) wildcard_text = wildcard_text.replace(f'__{placeholder}__', placeholder)

View File

@ -1,3 +1,7 @@
# 2.1.696
* Improved wildcards implementation (using same wildcard multiple times will now return different values).
**(2023 Oct 18) Again, the feature updating of Fooocus will be paused for about two or three weeks because we have some other workloads - we will come back in early or mid November. However, you may still see updates if other collaborators are fixing bugs or solving problems.** **(2023 Oct 18) Again, the feature updating of Fooocus will be paused for about two or three weeks because we have some other workloads - we will come back in early or mid November. However, you may still see updates if other collaborators are fixing bugs or solving problems.**
# 2.1.695 (requested emergency bug fix) # 2.1.695 (requested emergency bug fix)