@@ -655,32 +655,44 @@ def request_key(self) -> str:
655655
656656
657657@dataclass
658- class ISparseStructure :
658+ class ISparseStructure ( SerializableMixin ) :
659659 guidanceStrength : Optional [float ] = None
660660 guidanceRescale : Optional [float ] = None
661661 steps : Optional [int ] = None
662662 rescaleT : Optional [float ] = None
663663
664+ @property
665+ def request_key (self ) -> str :
666+ return "sparseStructure"
667+
664668
665669@dataclass
666- class IShapeSlat :
670+ class IShapeSlat ( SerializableMixin ) :
667671 guidanceStrength : Optional [float ] = None
668672 guidanceRescale : Optional [float ] = None
669673 steps : Optional [int ] = None
670674 rescaleT : Optional [float ] = None
671675
676+ @property
677+ def request_key (self ) -> str :
678+ return "shapeSlat"
679+
672680
673681@dataclass
674- class ITexSlat :
682+ class ITexSlat ( SerializableMixin ) :
675683 guidanceStrength : Optional [float ] = None
676684 guidanceRescale : Optional [float ] = None
677685 steps : Optional [int ] = None
678686 rescaleT : Optional [float ] = None
679687
688+ @property
689+ def request_key (self ) -> str :
690+ return "texSlat"
691+
680692
681693@dataclass
682694class ISettings (SerializableMixin ):
683- # Image
695+ # Image
684696 temperature : Optional [float ] = None
685697 systemPrompt : Optional [str ] = None
686698 topP : Optional [float ] = None
@@ -698,7 +710,43 @@ class ISettings(SerializableMixin):
698710
699711 @property
700712 def request_key (self ) -> str :
701- return "settings"
713+ return "settings"
714+
715+ def serialize (self ) -> Dict [str , Any ]:
716+ result : Dict [str , Any ] = {}
717+ if self .temperature is not None :
718+ result ["temperature" ] = self .temperature
719+ if self .systemPrompt is not None :
720+ result ["systemPrompt" ] = self .systemPrompt
721+ if self .topP is not None :
722+ result ["topP" ] = self .topP
723+ if self .layers is not None :
724+ result ["layers" ] = self .layers
725+ if self .trueCFGScale is not None :
726+ result ["trueCFGScale" ] = self .trueCFGScale
727+ if self .quality is not None :
728+ result ["quality" ] = self .quality
729+ if self .textureSize is not None :
730+ result ["textureSize" ] = self .textureSize
731+ if self .decimationTarget is not None :
732+ result ["decimationTarget" ] = self .decimationTarget
733+ if self .remesh is not None :
734+ result ["remesh" ] = self .remesh
735+ if self .resolution is not None :
736+ result ["resolution" ] = self .resolution
737+ if self .sparseStructure :
738+ sparse_data = self .sparseStructure .serialize ()
739+ if sparse_data :
740+ result ["sparseStructure" ] = sparse_data
741+ if self .shapeSlat :
742+ shape_data = self .shapeSlat .serialize ()
743+ if shape_data :
744+ result ["shapeSlat" ] = shape_data
745+ if self .texSlat :
746+ tex_data = self .texSlat .serialize ()
747+ if tex_data :
748+ result ["texSlat" ] = tex_data
749+ return result
702750
703751
704752@dataclass
0 commit comments