Added: TT_ImagePreviewUpscaleSave node

This commit is contained in:
TenserTensor
2026-02-23 09:44:15 +03:00
parent bfb5645d31
commit 7bbf8ce31d
3 changed files with 77 additions and 4 deletions
+3
View File
@@ -26,6 +26,7 @@ except ImportError:
try:
from .nodes.image.image_preview_save import TT_ImagePreviewSave
from .nodes.image.image_preview_upscale_save import TT_ImagePreviewUpscaleSave
except ImportError:
print(f"{YELLOW}TenserTensor: {RED}ERROR: Image nodes unavailable{RESET}")
@@ -105,6 +106,7 @@ NODE_CLASS_MAPPINGS = {
"TT_ContextPassthrough": TT_ContextPassthrough,
# Image
"TT_ImagePreviewSave": TT_ImagePreviewSave,
"TT_ImagePreviewUpscaleSave": TT_ImagePreviewUpscaleSave,
# Latent
"TT_LatentFactory": TT_LatentFactory,
# Loaders
@@ -162,6 +164,7 @@ NODE_DISPLAY_NAME_MAPPINGS = {
"TT_ContextPassthrough": "TT Context Passthrough",
# Image
"TT_ImagePreviewSave": "TT Image Preview / Save",
"TT_ImagePreviewUpscaleSave": "TT Image Preview / Upscale /Save",
# Latent
"TT_LatentFactory": "TT Latent Factory",
# Loaders
+4 -4
View File
@@ -14,11 +14,11 @@ class TT_ImagePreviewSave():
"image": ("IMAGE",),
"save_image": ("BOOLEAN", {"default": True, "label_on": "Enabled", "label_off": "Disabled"}),
"filename_prefix": ("STRING", {"default": "tenser-tensor"}),
"filename_format": (FILENAME_FORMATS, {"advanced": True, "default": "name-###"}),
"filename_format": (FILENAME_FORMATS, {"default": "name-###", "advanced": True}),
"subfolder": ("STRING", {"default": "", "advanced": True}),
"image_format": (IMAGE_FORMATS, {"advanced": True, "default": "PNG"}),
"image_quality": ("INT", {"default": 100, "min": 0, "max": 100}),
"compression_level": ("INT", {"default": 9, "min": 0, "max": 9}),
"image_format": (IMAGE_FORMATS, {"default": "PNG", "advanced": True}),
"image_quality": ("INT", {"default": 100, "min": 0, "max": 100, "advanced": True}),
"compression_level": ("INT", {"default": 9, "min": 0, "max": 9, "advanced": True}),
}
}
+70
View File
@@ -0,0 +1,70 @@
# (c) TenserTensor || Apache-2.0 (apache.org/licenses/LICENSE-2.0)
import folder_paths as FP
from .image_helpers import store, preview
from ..postproduction.postproduction_helpers import upscale_image as upscale
class TT_ImagePreviewUpscaleSave():
@classmethod
def INPUT_TYPES(cls):
FILENAME_FORMATS = ["name-###", "date-name-###", "name-datetime"]
IMAGE_FORMATS = ["PNG", "JPEG", "WEBP"]
DEVICES = ["default", "cpu"]
UPSCALE_MODELS = FP.get_filename_list("upscale_models")
return {
"required": {
"image": ("IMAGE",),
"save_image": ("BOOLEAN", {"default": True, "label_on": "Enabled", "label_off": "Disabled"}),
"filename_prefix": ("STRING", {"default": "tenser-tensor"}),
"filename_format": (FILENAME_FORMATS, {"advanced": True, "default": "name-###"}),
"subfolder": ("STRING", {"default": "", "advanced": True}),
"image_format": (IMAGE_FORMATS, {"advanced": True, "default": "PNG"}),
"image_quality": ("INT", {"default": 100, "min": 0, "max": 100, "advanced": True}),
"compression_level": ("INT", {"default": 9, "min": 0, "max": 9, "advanced": True}),
"upscale_image": ("BOOLEAN", {"default": True, "label_on": "Enabled", "label_off": "Disabled"}),
"upscaler_device": (DEVICES, {"advanced": True}),
"upscale_model_name": (UPSCALE_MODELS, {"advanced": True}),
"tile": ("INT", {"default": 512, "min": 256, "max": 4096, "step": 64, "advanced": True}),
"overlap": ("INT", {"default": 64, "min": 0, "max": 256, "step": 8, "advanced": True}),
}
}
RETURN_TYPES = ("IMAGE",)
RETURN_NAMES = ("IMAGE",)
FUNCTION = "preview_upscale_save_image"
CATEGORY = "TenserTensor/Image"
def preview_upscale_save_image(self, **kwargs):
image = kwargs.get("image")
timage = image.clone()
upscale_image = kwargs.get("upscale_image")
if upscale_image:
timage = upscale(
timage=timage,
device=kwargs.get("upscaler_device"),
upscale_model_name=kwargs.get("upscale_model_name"),
tile=kwargs.get("tile"),
overlap=kwargs.get("overlap")
)
save_image = kwargs.get("save_image")
if save_image:
timage = store(
image=timage,
filename_prefix=kwargs.get("upscale_model_name"),
subfolder=kwargs.get("subfolder"),
filename_format=kwargs.get("filename_format"),
image_format=kwargs.get("image_format"),
image_quality=kwargs.get("image_quality"),
compress_level=kwargs.get("compression_level"),
)
else:
timage = preview(
image=timage,
filename_prefix=kwargs.get("upscale_model_name"),
)
return {"ui": {"images": timage}}