sd-dynamic-prompts/sd_dynamic_prompts/special_syntax.py

27 lines
655 B
Python

import re
# A1111 special syntax (LoRA, hypernet, etc.)
A1111_SPECIAL_SYNTAX_RE = re.compile(r"\s*<[^>]+>")
def remove_a1111_special_syntax_chunks(s: str) -> tuple[str, list[str]]:
"""
Remove A1111 special syntax chunks from a string and return the string and the chunks.
"""
chunks: list[str] = []
def put_chunk(m):
chunks.append(m.group(0))
return ""
return re.sub(A1111_SPECIAL_SYNTAX_RE, put_chunk, s), chunks
def append_chunks(s: str, chunks: list[str]) -> str:
"""
Append (A1111 special syntax) chunks to a string.
"""
if not chunks:
return s
return f"{s}{''.join(chunks)}"