From cd23aed098dccec662b53854d7882923f280d29e Mon Sep 17 00:00:00 2001 From: mang01010 <201291354+mang01010@users.noreply.github.com> Date: Wed, 21 May 2025 23:52:33 +0200 Subject: [PATCH] Minor tweaks --- .gitignore | 2 ++ FluxSamplerMango.py | 20 +++++++++++++-- LatentImageMango.py | 6 +++++ __init__.py | 60 ++++++++++++++++++++++----------------------- 4 files changed, 56 insertions(+), 32 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8d7b63d --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +**/__pycache__/ +lora_metadata_db.json diff --git a/FluxSamplerMango.py b/FluxSamplerMango.py index 7e9f0f2..b22ee7c 100644 --- a/FluxSamplerMango.py +++ b/FluxSamplerMango.py @@ -55,6 +55,7 @@ class FluxNoise: def generate_noise(self, latent): return self.noise_tensor + def inline_basic_guider(model, conditioning): """ Build a simple guider using CFGGuider with a single 'positive' conditioning. @@ -64,6 +65,7 @@ def inline_basic_guider(model, conditioning): guider.inner_set_conds({"positive": conditioning}) return guider + def inline_basic_scheduler(model, scheduler, steps, denoise): """ Compute sigmas using the same logic as BasicScheduler. @@ -107,6 +109,10 @@ class FluxSamplerMango: "scheduler": (comfy.samplers.SCHEDULER_NAMES,), "steps": ("INT", {"default": 20, "min": 1, "max": 10000}), "denoise": ("FLOAT", {"default": 1.0, "min": 0.0, "max": 1.0, "step": 0.01}), + }, + "hidden": { + "prompt": "PROMPT", + "extra_pnginfo": "EXTRA_PNGINFO", } } @@ -129,6 +135,8 @@ class FluxSamplerMango: scheduler, steps, denoise, + prompt=None, + extra_pnginfo=None, ): global LAST_USED_NOISE, LAST_USED_NOISE_SEED @@ -196,8 +204,6 @@ class FluxSamplerMango: metadata["Sampler"] = sampler_name metadata["Scheduler"] = scheduler metadata["Denoise"] = denoise - - # Use the separate flux_guidance float for CFG scale metadata["CFG scale"] = flux_guidance used_ckpt = str(unet_name).strip() if unet_name and str(unet_name).strip() else "UnknownModel" @@ -229,6 +235,16 @@ class FluxSamplerMango: else: hash_dict["lora:" + base] = base metadata["Hashes"] = json.dumps(hash_dict) + + # Include extra PNG info and workflow metadata if provided + if extra_pnginfo is not None and isinstance(extra_pnginfo, dict): + for k, v in extra_pnginfo.items(): + s = str(v) + metadata[k] = s if len(s) < 1000 else s[:1000] + " [truncated]" + if prompt is not None: + s = str(prompt) + metadata["prompt"] = s if len(s) < 1000 else s[:1000] + " [truncated]" + metadata_str = json.dumps(metadata, indent=2) return ({"samples": out["samples"]}, metadata, metadata_str) diff --git a/LatentImageMango.py b/LatentImageMango.py index 8fe7b2d..1c92e8d 100644 --- a/LatentImageMango.py +++ b/LatentImageMango.py @@ -8,10 +8,12 @@ class LatentImageMango: "3:4 portrait 896x1152", "5:8 portrait 832x1216", "9:16 portrait 768x1344", + "9:16 portrait XL 1024x1820", "9:21 portrait 640x1536", "4:3 landscape 1152x896", "3:2 landscape 1216x832", "16:9 landscape 1344x768", + "16:9 landscape XL 1820x1024", "21:9 landscape 1536x640", "32:9 landscape 1600x450" ] @@ -35,6 +37,8 @@ class LatentImageMango: width, height = 832, 1216 elif dimensions == "9:16 portrait 768x1344": width, height = 768, 1344 + elif dimensions == "9:16 portrait XL 1024x1820": + width, height = 1024, 1820 elif dimensions == "9:21 portrait 640x1536": width, height = 640, 1536 elif dimensions == "4:3 landscape 1152x896": @@ -43,6 +47,8 @@ class LatentImageMango: width, height = 1216, 832 elif dimensions == "16:9 landscape 1344x768": width, height = 1344, 768 + elif dimensions == "16:9 landscape XL 1820x1024": + width, height = 1820, 1024 elif dimensions == "21:9 landscape 1536x640": width, height = 1536, 640 elif dimensions == "32:9 landscape 1600x450": diff --git a/__init__.py b/__init__.py index b3517e3..c4a34d2 100644 --- a/__init__.py +++ b/__init__.py @@ -15,37 +15,37 @@ from .MangoImageLoader import MangoImageLoader from .MangoLoader10Loras import MangoLoader10Loras NODE_CLASS_MAPPINGS = { - "MangoTriggerExporter": MangoTriggerExporter, - "KSamplerMango": KSamplerMango, - "MangoLoader": MangoLoader, - "ImageSaverMango": ImageSaverMango, - "LatentImageMango": LatentImageMango, - "PromptMango": PromptMango, - "PromptEmbedMango": PromptEmbedMango, - "CompositeMangoLoader": CompositeMangoLoader, - "FluxSamplerMango": FluxSamplerMango, - "FluxGuidanceMango": FluxGuidanceMango, - "PromptSave": PromptSave, - "MangoPromptLoad": MangoPromptLoad, - "LoraStackMango": LoraStackMango, - "MangoImageLoader": MangoImageLoader, - "MangoLoader10Loras": MangoLoader10Loras, + "MangoTriggerExporter": MangoTriggerExporter, + "KSamplerMango": KSamplerMango, + "MangoLoader": MangoLoader, + "ImageSaverMango": ImageSaverMango, + "LatentImageMango": LatentImageMango, + "PromptMango": PromptMango, + "PromptEmbedMango": PromptEmbedMango, + "CompositeMangoLoader": CompositeMangoLoader, + "FluxSamplerMango": FluxSamplerMango, + "FluxGuidanceMango": FluxGuidanceMango, + "PromptSave": PromptSave, + "MangoPromptLoad": MangoPromptLoad, + "LoraStackMango": LoraStackMango, + "MangoImageLoader": MangoImageLoader, + "MangoLoader10Loras": MangoLoader10Loras, } NODE_DISPLAY_NAME_MAPPINGS = { - "MangoTriggerExporter": "Trigger Exporter (Mango)", - "KSamplerMango": "KSampler (Mango)", - "MangoLoader": "Loader (Mango)", - "ImageSaverMango": "Image Saver (Mango)", - "LatentImageMango": "Latent Image (Mango)", - "PromptMango": "Prompt (Mango)", - "PromptEmbedMango": "Prompt /w Embedding (Mango)", - "CompositeMangoLoader": "Diffusion Loader (Mango)", - "FluxSamplerMango": "FluxSampler (Mango)", - "FluxGuidanceMango": "FluxGuidance (Mango)", - "PromptSave": "Save Prompt (Mango)", - "MangoPromptLoad": "Load Prompt (Mango)", - "LoraStackMango": "LoRA Stack (Mango)", - "MangoImageLoader": "Image Loader (Mango)", - "MangoLoader10Loras": "Loader (Mango + 10 Loras)", + "MangoTriggerExporter": "Trigger Exporter (Mango)", + "KSamplerMango": "KSampler (Mango)", + "MangoLoader": "Loader (Mango)", + "ImageSaverMango": "Image Saver (Mango)", + "LatentImageMango": "Latent Image (Mango)", + "PromptMango": "Prompt (Mango)", + "PromptEmbedMango": "Prompt /w Embedding (Mango)", + "CompositeMangoLoader": "Diffusion Loader (Mango)", + "FluxSamplerMango": "FluxSampler (Mango)", + "FluxGuidanceMango": "FluxGuidance (Mango)", + "PromptSave": "Save Prompt (Mango)", + "MangoPromptLoad": "Load Prompt (Mango)", + "LoraStackMango": "LoRA Stack (Mango)", + "MangoImageLoader": "Image Loader (Mango)", + "MangoLoader10Loras": "Loader (Mango + 10 Loras)", }