From b3c0e8d8333abc211bfde6e97c6b0d86843316ac Mon Sep 17 00:00:00 2001 From: Sirshendu Ganguly Date: Mon, 4 May 2026 14:54:08 +0530 Subject: [PATCH 1/3] Updated Isettings dataclass --- runware/base.py | 5 +- runware/types.py | 208 +++++++++++++++++++++++------------------------ 2 files changed, 105 insertions(+), 108 deletions(-) diff --git a/runware/base.py b/runware/base.py index 499838d..fa72aac 100644 --- a/runware/base.py +++ b/runware/base.py @@ -873,7 +873,8 @@ async def _imageInference( requestImage, prompt, control_net_data_dicts, instant_id_data, ip_adapters_data, ace_plus_plus_data, pulid_data, photo_maker_data ) - + import json + print(json.dumps(request_object, indent=4)) delivery_method_enum = EDeliveryMethod(requestImage.deliveryMethod) if isinstance(requestImage.deliveryMethod, str) else requestImage.deliveryMethod task_uuid = requestImage.taskUUID @@ -2661,6 +2662,8 @@ async def _requestText(self, requestText: ITextInference) -> Union[List[IText], inputs.images = await self._process_media_list(inputs.images) if inputs.videos: inputs.videos = await self._process_media_list(inputs.videos) + if inputs.documents: + inputs.documents = await self._process_media_list(inputs.documents) request_object = self._buildTextRequest(requestText) diff --git a/runware/types.py b/runware/types.py index 76a62fa..493a0c4 100644 --- a/runware/types.py +++ b/runware/types.py @@ -854,131 +854,125 @@ class IEditRegion(SerializableMixin): @dataclass class ISettings(SerializableMixin): - # Image / Text - temperature: Optional[float] = None - systemPrompt: Optional[str] = None - topP: Optional[float] = None - minP: Optional[float] = None - repetitionPenalty: Optional[float] = None - presencePenalty: Optional[float] = None - frequencyPenalty: Optional[float] = None - thinkingLevel: Optional[str] = None - layers: Optional[int] = None - trueCFGScale: Optional[float] = None - quality: Optional[str] = None + CFGScale: Optional[float] = None + activeSpeakerDetection: Optional[Union["IActiveSpeakerDetection", Dict[str, Any]]] = None + addons: Optional[List[str]] = None + audio: Optional[bool] = None + audioTemperature: Optional[float] = None + autoSize: Optional[bool] = None background: Optional[str] = None - renderingSpeed: Optional[str] = None - magicPrompt: Optional[str] = None - promptExtend: Optional[bool] = None - editRegions: Optional[List[List[Union[IEditRegion, Dict[str, Any]]]]] = None - sequential: Optional[bool] = None - thinking: Optional[bool] = None + backgroundColor: Optional[str] = None + bpm: Optional[int] = None + boundingBox: Optional[List[int]] = None + clipSkip: Optional[int] = None + colorCorrection: Optional[bool] = None + colorFix: Optional[bool] = None colorPalette: Optional[List[Union[IColorPaletteEntry, Dict[str, Any]]]] = None - # 3D inference - textureSize: Optional[int] = None + compress: Optional[str] = None + controlNetWeight: Optional[float] = None + coverConditioningScale: Optional[float] = None + decimation: Optional[int] = None decimationTarget: Optional[int] = None - remesh: Optional[bool] = None - resolution: Optional[int] = None - sparseStructure: Optional[Union[ISparseStructure, Dict[str, Any]]] = None - shapeSlat: Optional[Union[IShapeSlat, Dict[str, Any]]] = None - texSlat: Optional[Union[ITexSlat, Dict[str, Any]]] = None - imageAutoFix: Optional[bool] = None - faceLimit: Optional[int] = None + draft: Optional[bool] = None + editRegions: Optional[List[List[Union[IEditRegion, Dict[str, Any]]]]] = None + emotion: Optional[str] = None + enhanceDetails: Optional[bool] = None + exportUv: Optional[bool] = None + expressiveness: Optional[str] = None faceCount: Optional[int] = None - texture: Optional[bool] = None - pbr: Optional[bool] = None - geometryOnly: Optional[bool] = None - generateType: Optional[str] = None - polygonType: Optional[str] = None - textureSeed: Optional[int] = None - textureAlignment: Optional[str] = None - textureQuality: Optional[str] = None - useOriginalAlpha: Optional[bool] = None - material: Optional[str] = None - polyCount: Optional[float] = None - taPose: Optional[bool] = None - boundingBox: Optional[List[int]] = None - meshMode: Optional[str] = None - addons: Optional[List[str]] = None - hdTexture: Optional[bool] = None - autoSize: Optional[bool] = None - orientation: Optional[str] = None - quad: Optional[bool] = None - compress: Optional[str] = None - smartLowPoly: Optional[bool] = None + faceLimit: Optional[int] = None + frequencyPenalty: Optional[float] = None generateParts: Optional[bool] = None - exportUv: Optional[bool] = None + generateType: Optional[str] = None + geometryOnly: Optional[bool] = None geometryQuality: Optional[str] = None - meshType: Optional[str] = None - topology: Optional[str] = None - decimation: Optional[int] = None - symmetry: Optional[str] = None - pose: Optional[str] = None - texturePrompt: Optional[str] = None + guidanceType: Optional[str] = None + hdTexture: Optional[bool] = None + imageAutoFix: Optional[bool] = None imageEnhancement: Optional[bool] = None - savePreRemeshedModel: Optional[bool] = None - removeLighting: Optional[bool] = None - moderation: Optional[bool] = None - origin: Optional[str] = None - # Audio + includePrefix: Optional[bool] = None + instrumental: Optional[bool] = None + keyScale: Optional[str] = None + keyframe: Optional[int] = None languageBoost: Optional[str] = None - turbo: Optional[bool] = None + layers: Optional[int] = None lyrics: Optional[str] = None - instrumental: Optional[bool] = None lyricsOptimizer: Optional[bool] = None - guidanceType: Optional[str] = None - textNormalization: Optional[bool] = None + magicPrompt: Optional[str] = None + material: Optional[str] = None maxNewTokens: Optional[int] = None - transcript: Optional[str] = None - xVectorOnly: Optional[bool] = None - bpm: Optional[int] = None - keyScale: Optional[str] = None - timeSignature: Optional[Union[int, str]] = None - vocalLanguage: Optional[str] = None - coverConditioningScale: Optional[float] = None - repaintingStart: Optional[float] = None - repaintingEnd: Optional[float] = None - includePrefix: Optional[bool] = None - audioTemperature: Optional[float] = None - # Video - draft: Optional[bool] = None - audio: Optional[bool] = None - syncMode: Optional[str] = None + maxTokens: Optional[int] = None + meshMode: Optional[str] = None + meshType: Optional[str] = None + minP: Optional[float] = None mode: Optional[str] = None - emotion: Optional[str] = None - voiceDescription: Optional[str] = None - style: Optional[str] = None - thinking: Optional[str] = None + moderation: Optional[bool] = None multiClip: Optional[bool] = None - promptUpsampling: Optional[bool] = None - expressiveness: Optional[str] = None - activeSpeakerDetection: Optional[Union["IActiveSpeakerDetection", Dict[str, Any]]] = None + negativePrompt: Optional[str] = None occlusionDetection: Optional[bool] = None - segments: Optional[List[Union["ISegment", Dict[str, Any]]]] = None - keyframe: Optional[int] = None + orientation: Optional[str] = None + origin: Optional[str] = None + pbr: Optional[bool] = None + polygonType: Optional[str] = None + polyCount: Optional[float] = None + positivePrompt: Optional[str] = None + pose: Optional[str] = None + presencePenalty: Optional[float] = None + promptExtend: Optional[bool] = None + promptUpsampling: Optional[bool] = None + quad: Optional[bool] = None + quality: Optional[str] = None + realism: Optional[bool] = None + repaintingEnd: Optional[float] = None + repaintingStart: Optional[float] = None + remesh: Optional[bool] = None removeBackground: Optional[bool] = None - backgroundColor: Optional[str] = None - colorCorrection: Optional[bool] = None - # Text - maxTokens: Optional[int] = None - topK: Optional[int] = None - stopSequences: Optional[List[str]] = None - tools: Optional[List[Union[ITextInferenceTool, Dict[str, Any]]]] = None - toolChoice: Optional[Union[ITextInferenceToolChoice, Dict[str, Any]]] = None - # Image upscale - steps: Optional[int] = None + removeLighting: Optional[bool] = None + renderingSpeed: Optional[str] = None + repetitionPenalty: Optional[float] = None + resolution: Optional[int] = None + savePreRemeshedModel: Optional[bool] = None + scheduler: Optional[str] = None + search: Optional[bool] = None seed: Optional[int] = None - CFGScale: Optional[float] = None - positivePrompt: Optional[str] = None - negativePrompt: Optional[str] = None - controlNetWeight: Optional[float] = None + segments: Optional[List[Union["ISegment", Dict[str, Any]]]] = None + sequential: Optional[bool] = None + shapeSlat: Optional[Union[IShapeSlat, Dict[str, Any]]] = None + smartLowPoly: Optional[bool] = None + sparseStructure: Optional[Union[ISparseStructure, Dict[str, Any]]] = None + steps: Optional[int] = None + stopSequences: Optional[List[str]] = None strength: Optional[float] = None - scheduler: Optional[str] = None - colorFix: Optional[bool] = None + style: Optional[str] = None + symmetry: Optional[str] = None + syncMode: Optional[str] = None + systemPrompt: Optional[str] = None + taPose: Optional[bool] = None + texSlat: Optional[Union[ITexSlat, Dict[str, Any]]] = None + temperature: Optional[float] = None + textNormalization: Optional[bool] = None + texture: Optional[bool] = None + textureAlignment: Optional[str] = None + texturePrompt: Optional[str] = None + textureQuality: Optional[str] = None + textureSeed: Optional[int] = None + textureSize: Optional[int] = None + thinking: Optional[Union[bool, str]] = None + thinkingLevel: Optional[str] = None + timeSignature: Optional[Union[int, str]] = None tileDiffusion: Optional[bool] = None - clipSkip: Optional[int] = None - enhanceDetails: Optional[bool] = None - realism: Optional[bool] = None + toolChoice: Optional[Union[ITextInferenceToolChoice, Dict[str, Any]]] = None + tools: Optional[List[Union[ITextInferenceTool, Dict[str, Any]]]] = None + topK: Optional[int] = None + topP: Optional[float] = None + topology: Optional[str] = None + transcript: Optional[str] = None + trueCFGScale: Optional[float] = None + turbo: Optional[bool] = None + useOriginalAlpha: Optional[bool] = None + vocalLanguage: Optional[str] = None + voiceDescription: Optional[str] = None + xVectorOnly: Optional[bool] = None def __post_init__(self): if self.sparseStructure is not None and isinstance(self.sparseStructure, dict): From 8208d8006b6e45e8d515ac05bfde4a968d28cb27 Mon Sep 17 00:00:00 2001 From: Sirshendu Ganguly Date: Mon, 4 May 2026 18:46:48 +0530 Subject: [PATCH 2/3] Removed unwanted lines --- runware/base.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/runware/base.py b/runware/base.py index fa72aac..927d436 100644 --- a/runware/base.py +++ b/runware/base.py @@ -873,8 +873,7 @@ async def _imageInference( requestImage, prompt, control_net_data_dicts, instant_id_data, ip_adapters_data, ace_plus_plus_data, pulid_data, photo_maker_data ) - import json - print(json.dumps(request_object, indent=4)) + delivery_method_enum = EDeliveryMethod(requestImage.deliveryMethod) if isinstance(requestImage.deliveryMethod, str) else requestImage.deliveryMethod task_uuid = requestImage.taskUUID From 8f5c030735841c7bae09a4a93d77dd384f2d6229 Mon Sep 17 00:00:00 2001 From: Sirshendu Ganguly Date: Mon, 4 May 2026 19:33:41 +0530 Subject: [PATCH 3/3] Removed commits from other branches --- runware/base.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/runware/base.py b/runware/base.py index 927d436..499838d 100644 --- a/runware/base.py +++ b/runware/base.py @@ -2661,8 +2661,6 @@ async def _requestText(self, requestText: ITextInference) -> Union[List[IText], inputs.images = await self._process_media_list(inputs.images) if inputs.videos: inputs.videos = await self._process_media_list(inputs.videos) - if inputs.documents: - inputs.documents = await self._process_media_list(inputs.documents) request_object = self._buildTextRequest(requestText)