53 lines
1.6 KiB
Python
53 lines
1.6 KiB
Python
# (c) TenserTensor || Apache-2.0 (apache.org/licenses/LICENSE-2.0)
|
|
|
|
import dataclasses
|
|
from dataclasses import dataclass
|
|
|
|
from comfy.samplers import KSampler
|
|
|
|
|
|
@dataclass
|
|
class TTWorkflowSettings():
|
|
seed: int | None = None
|
|
steps: int | None = None
|
|
cfg: int | None = None
|
|
sampler_name: list[str] | None = None
|
|
scheduler_name: list[str] | None = None
|
|
clip_l_positive: str | None = None
|
|
clip_g_positive: str | None = None
|
|
t5xxl_positive: str | None = None
|
|
clip_l_negative: str | None = None
|
|
clip_g_negative: str | None = None
|
|
t5xxl_negative: str | None = None
|
|
guidance: float | None = None
|
|
ascore_positive: float | None = None
|
|
ascore_negative: float | None = None
|
|
width: int | None = None
|
|
height: int | None = None
|
|
target_width: int | None = None
|
|
target_height: int | None = None
|
|
|
|
@classmethod
|
|
def create(cls, **kwargs):
|
|
wf = cls()
|
|
for field in dataclasses.fields(wf):
|
|
setattr(wf, field.name, kwargs.get(field.name, None))
|
|
|
|
setattr(wf, "sampler_name", KSampler.SAMPLERS)
|
|
setattr(wf, "scheduler_name", KSampler.SCHEDULERS)
|
|
|
|
return wf
|
|
|
|
def set_attr(self, key, attr):
|
|
if hasattr(self, key):
|
|
setattr(self, key, attr)
|
|
else:
|
|
raise AttributeError(f"ERROR: Context has no attribute '{key}'")
|
|
|
|
def get_attr(self, key, default=None):
|
|
if hasattr(self, key):
|
|
val = getattr(self, key)
|
|
return val if val is not None else default
|
|
else:
|
|
raise AttributeError(f"ERROR: Context has no attribute '{key}'")
|