Spaces:
Configuration error
Configuration error
| class ComfyTaskParams: | |
| def __init__(self, params): | |
| self.params = params | |
| self.workflow = '' | |
| fooo2node = { | |
| 'seed': 'KSampler:main_sampler:seed;TiledKSampler:main_sampler:seed;KolorsSampler:main_sampler:seed;RandomNoise:noise_seed:noise_seed;easy seed:sync_seed:seed', | |
| 'steps': 'KSampler:main_sampler:steps;TiledKSampler:main_sampler:steps;KolorsSampler:main_sampler:steps;BasicScheduler:scheduler_select:steps', | |
| 'cfg_scale': 'KSampler:main_sampler:cfg;TiledKSampler:main_sampler:cfg;KolorsSampler:main_sampler:cfg;CLIPTextEncodeFlux:prompt:guidance', | |
| 'sampler': 'KSampler:main_sampler:sampler_name;TiledKSampler:main_sampler:sampler_name;KSamplerSelect:sampler_select:sampler_name', | |
| 'scheduler': 'KSampler:main_sampler:scheduler;TiledKSampler:main_sampler:scheduler;KolorsSampler:main_sampler:scheduler;BasicScheduler:scheduler_select:scheduler', | |
| 'denoise': 'KSampler:main_sampler:denoise;TiledKSampler:main_sampler:denoise;KolorsSampler:main_sampler:denoise_strength;BasicScheduler:scheduler_select:denoise', | |
| 'tiling': 'TiledKSampler:main_sampler:tiling;SeamlessTile:seamless_tile:tiling;CircularVAEDecode:vae_tiled:tiling', | |
| 'tiled_offset_x': 'OffsetImage:offset_image:x_percent', | |
| 'tiled_offset_y': 'OffsetImage:offset_image:y_percent', | |
| 'base_model': 'CheckpointLoaderSimple:base_model:ckpt_name;UNETLoader:base_model:unet_name;CheckpointLoaderNF4:base_model:ckpt_name;UnetLoaderGGUF:base_model:unet_name', | |
| 'base_model_dtype': 'UNETLoader:base_model:weight_dtype', | |
| 'merge_model': 'UNETLoader:merge_model:unet_name', | |
| 'model_merge_ratio': 'ModelMergeSimple:model_merge_ratio:ratio', | |
| 'lora_speedup': 'LoraLoaderModelOnly:lora_speedup:lora_name', | |
| 'lora_speedup_strength': 'LoraLoaderModelOnly:lora_speedup:strength_model', | |
| 'lora_1': 'LoraLoaderModelOnly:lora_1:lora_name;LoraLoaderModelOnly:lora_speedup:lora_name', | |
| 'lora_1_strength': 'LoraLoaderModelOnly:lora_1:strength_model;LoraLoaderModelOnly:lora_speedup:strength_model', | |
| 'lora_2': 'LoraLoaderModelOnly:lora_2:lora_name', | |
| 'lora_2_strength': 'LoraLoaderModelOnly:lora_2:strength_model', | |
| 'lora_3': 'LoraLoaderModelOnly:lora_3:lora_name', | |
| 'lora_3_strength': 'LoraLoaderModelOnly:lora_3:strength_model', | |
| 'lora_4': 'LoraLoaderModelOnly:lora_4:lora_name', | |
| 'lora_4_strength': 'LoraLoaderModelOnly:lora_4:strength_model', | |
| 'lora_5': 'LoraLoaderModelOnly:lora_5:lora_name', | |
| 'lora_5_strength': 'LoraLoaderModelOnly:lora_5:strength_model', | |
| 'width': 'EmptyLatentImage:aspect_ratios_size:width;EmptySD3LatentImage:aspect_ratios_size:width;ImageResize+:resize_input_image:width;KolorsSampler:main_sampler:width;easy int:aspect_ratios_width:value', | |
| 'height': 'EmptyLatentImage:aspect_ratios_size:height;EmptySD3LatentImage:aspect_ratios_size:height;ImageResize+:resize_input_image:height;KolorsSampler:main_sampler:height;easy int:aspect_ratios_height:value', | |
| 'prompt': 'CLIPTextEncode:prompt:text;MZ_ChatGLM3_V2:prompt:text;KolorsTextEncode:prompt_negative_prompt:prompt;CLIPTextEncodeFlux:prompt:t5xxl;CLIPTextEncodeFlux:prompt:clip_l', | |
| 'negative_prompt': 'CLIPTextEncode:negative_prompt:text;MZ_ChatGLM3_V2:negative_prompt:text;KolorsTextEncode:prompt_negative_prompt:negative_prompt', | |
| 'clip_model': 'DualCLIPLoader:clip_model:clip_name1;DualCLIPLoaderGGUF:clip_model:clip_name1;CLIPLoaderGGUF:clip_model:clip_name;CLIPLoader:clip_model:clip_name', | |
| 'llms_model': 'MZ_ChatGLM3Loader:llms_model:chatglm3_checkpoint;DownloadAndLoadChatGLM3:llms_model:precision', | |
| 'input_image': 'LoadImage:input_image:image', | |
| 'layer_diffuse_injection': 'LayeredDiffusionApply:layer_diffuse_apply:config', | |
| 'sd_version': 'LayeredDiffusionDecode:layer_diffuse_decode:sd_version;LayeredDiffusionDecodeRGBA:layer_diffuse_decode_rgba:sd_version', | |
| 'layer_diffuse_cond': 'LayeredDiffusionCondApply:layer_diffuse_cond_apply:config', | |
| 'light_source_text_switch': 'easy imageSwitch:ic_light_source_text_switch:boolean', | |
| 'light_source_shape_switch': 'easy imageSwitch:ic_light_source_shape_switch:boolean', | |
| 'light_source_text': 'LightSource:ic_light_source_text:light_position', | |
| 'light_apply': 'LoadAndApplyICLightUnet:ic_light_apply:model_path', | |
| 'light_detail_transfer': 'DetailTransfer:ic_light_detail_transfer:mode', | |
| 'light_source_start_color': 'CreateGradientFromCoords:ic_light_source_color:start_color', | |
| 'light_source_end_color': 'CreateGradientFromCoords:ic_light_source_color:end_color', | |
| 'light_editor_path': 'SplineEditor:ic_light_editor:points_store' | |
| } | |
| def set_mapping_rule(self, maps): | |
| self.fooo2node.update(maps) | |
| def update_params(self, new_parms): | |
| self.params.update(new_parms) | |
| def delete_params(self, keys): | |
| for k in keys: | |
| if k in self.params: | |
| del self.params[k] | |
| def convert2comfy(self, workflow): | |
| #print(f'params:{self.params}') | |
| self.workflow = workflow | |
| for (pk1,v) in self.params.items(): | |
| if pk1 in self.fooo2node: | |
| nk = self.fooo2node[pk1] | |
| self.replace_key(nk,v) | |
| return self.workflow | |
| def replace_key(self,nk,v): | |
| lines = nk.split(';') | |
| for line in lines: | |
| parts = line.strip().split(':') | |
| class_type = parts[0].strip() | |
| meta_title = parts[1].strip() | |
| inputs = parts[2].strip() | |
| for n in self.workflow.keys(): | |
| if self.workflow[n]["class_type"]==class_type and self.workflow[n]["_meta"]["title"]==meta_title: | |
| if '|' in inputs: | |
| keys = inputs.split('|') | |
| vs = v.strip().split('|') | |
| for i in range(len(keys)): | |
| self.workflow[n]["inputs"][keys[i]] = vs[i] | |
| else: | |
| self.workflow[n]["inputs"][inputs] = v | |