diff --git a/common/sampling.py b/common/sampling.py index 67b8925..c8366b3 100644 --- a/common/sampling.py +++ b/common/sampling.py @@ -159,7 +159,7 @@ class BaseSamplerRequest(BaseModel): description=("Aliases: dry_penalty_last_n"), ) - dry_sequence_breakers: Optional[str] = Field( + dry_sequence_breakers: Optional[Union[str, List[str]]] = Field( default_factory=lambda: get_default_sampler_value("dry_sequence_breakers", []) ) @@ -330,7 +330,7 @@ class BaseSamplerRequest(BaseModel): # Convert sequence breakers into an array of strings # NOTE: This sampler sucks to parse. - if self.dry_sequence_breakers: + if self.dry_sequence_breakers and isinstance(self.dry_sequence_breakers, str): if not self.dry_sequence_breakers.startswith("["): self.dry_sequence_breakers = f"[{self.dry_sequence_breakers}]" diff --git a/sampler_overrides/sample_preset.yml b/sampler_overrides/sample_preset.yml index ed2edba..e01c2b7 100644 --- a/sampler_overrides/sample_preset.yml +++ b/sampler_overrides/sample_preset.yml @@ -110,6 +110,10 @@ dry_allowed_length: dry_range: override: 0 force: false +dry_sequence_breakers: + override: [] + force: false + additive: false # MARK: Mirostat mirostat_mode: