Files
CavinHuang-comfyui-nodes-docs/docs/UltimateSDUpscaleNoUpscale.md
2024-05-26 20:35:16 +08:00

7.3 KiB

Documentation

该节点类旨在通过使用复杂的图像放大算法来提高图像质量,该算法利用了稳定扩散处理的强大功能。它的目的是在保持图像原始内容和细节的同时提高视觉保真度。节点的主要功能是对图像进行放大,为用户提供清晰且视觉上吸引人的高分辨率输出。

Input types

Required

  • upscaled_image
    • 已放大的图像参数至关重要,因为它是节点放大过程的基础。这是已经被放大的图像,将由节点进一步优化,以提高其质量和分辨率。
    • Comfy dtype: IMAGE
    • Python dtype: PIL.Image
  • model
    • 模型参数对节点至关重要,它决定了用于放大过程的底层AI模型。它确保利用AI模型的能力来实现期望的放大结果。
    • Comfy dtype: MODEL
    • Python dtype: torch.nn.Module
  • positive
    • 正面参数在指导放大过程中起着重要作用,通过提供正面的条件数据。这些数据帮助AI模型理解期望的结果,并改善最终输出。
    • Comfy dtype: CONDITIONING
    • Python dtype: str
  • negative
    • 负面参数至关重要,因为它提供了负面的条件数据,帮助AI模型在放大过程中避免不希望的结果。它有助于提高图像质量。
    • Comfy dtype: CONDITIONING
    • Python dtype: str
  • vae
    • vae参数很重要,因为它代表了在放大过程中使用的变分自编码器。它通过编码和解码视觉信息来帮助生成更高质量的图像。
    • Comfy dtype: VAE
    • Python dtype: torch.nn.Module
  • seed
    • 种子参数对节点至关重要,因为它初始化随机数生成器,确保结果在不同运行中是可复现和一致的。
    • Comfy dtype: INT
    • Python dtype: int
  • steps
    • 步骤参数定义了AI模型在放大过程中将执行的迭代次数。它直接影响计算时间和最终输出的质量。
    • Comfy dtype: INT
    • Python dtype: int
  • cfg
    • cfg参数是一个浮点值,它在放大过程中影响AI模型的配置。它有助于微调模型的行为,以获得最佳结果。
    • Comfy dtype: FLOAT
    • Python dtype: float
  • sampler_name
    • sampler_name参数对于在放大过程中选择适当的采样方法至关重要。它影响AI模型生成放大图像的方式,有助于整体质量和外观。
    • Comfy dtype: ENUM
    • Python dtype: Enum
  • scheduler
    • 调度器参数对于在放大过程中管理AI模型的学习率至关重要。它有助于控制训练动态,并实现更好的放大结果。
    • Comfy dtype: ENUM
    • Python dtype: Enum
  • denoise
    • 去噪参数是一个浮点值,它控制放大过程中应用的降噪水平。对于提高放大图像的清晰度和锐度很重要。
    • Comfy dtype: FLOAT
    • Python dtype: float
  • tile_width
    • tile_width参数指定用于平铺放大图像的瓦片的宽度。它影响放大过程的粒度,可以影响最终图像的质量。
    • Comfy dtype: INT
    • Python dtype: int
  • tile_height
    • tile_height参数定义了用于平铺放大图像的瓦片的高度。它与tile_width一起工作,以确定平铺策略及其对图像质量的影响。
    • Comfy dtype: INT
    • Python dtype: int
  • mask_blur
    • mask_blur参数控制放大过程中应用于图像遮罩的模糊程度。对于平滑边缘和提高放大图像的视觉一致性很重要。
    • Comfy dtype: INT
    • Python dtype: int
  • tile_padding
    • tile_padding参数指定应用于每个瓦片边缘的填充量。它对于确保最终放大图像中瓦片之间的接缝不可见至关重要。
    • Comfy dtype: INT
    • Python dtype: int
  • seam_fix_mode
    • seam_fix_mode参数确定用于修复放大图像中接缝的方法。它对于通过最小化瓦片边界的可见性,确保最终输出的无缝和视觉愉悦至关重要。
    • Comfy dtype: ENUM
    • Python dtype: Enum
  • seam_fix_denoise
    • seam_fix_denoise参数调整应用于放大图像接缝的降噪水平。它有助于减少伪影,并在最终输出中实现更平滑、更自然的外观。
    • Comfy dtype: FLOAT
    • Python dtype: float
  • seam_fix_width
    • seam_fix_width参数设置将要处理的接缝周围区域的宽度。它影响接缝修复过程的有效性,并有助于提高放大图像的整体视觉质量。
    • Comfy dtype: INT
    • Python dtype: int
  • seam_fix_mask_blur
    • seam_fix_mask_blur参数控制应用于接缝修复的遮罩的模糊程度。对于实现瓦片之间的平滑过渡和增强放大图像的视觉连续性很重要。
    • Comfy dtype: INT
    • Python dtype: int
  • seam_fix_padding
    • seam_fix_padding参数指定在接缝修复过程中应用于图像边缘的填充量。它对于确保放大图像的边缘清晰且无伪影至关重要。
    • Comfy dtype: INT
    • Python dtype: int
  • force_uniform_tiles
    • force_uniform_tiles参数确保在放大过程中所有瓦片的大小相同。这有助于最终放大图像的一致和统一的外观。
    • Comfy dtype: BOOLEAN
    • Python dtype: bool
  • tiled_decode
    • tiled_decode参数指示是否应该以瓦片方式解码放大的图像。这可以在放大过程中提高处理效率并管理内存使用。
    • Comfy dtype: BOOLEAN
    • Python dtype: bool

Output types

  • IMAGE
    • 输出图像是放大过程的结果,展示了提高的分辨率和质量。它代表节点的主要输出,为用户提供了输入图像的视觉改进版本。
    • Comfy dtype: IMAGE
    • Python dtype: PIL.Image

Usage tips

  • Infra type: GPU

Source code

class UltimateSDUpscaleNoUpscale:

    @classmethod
    def INPUT_TYPES(s):
        required = USDU_base_inputs()
        remove_input(required, 'upscale_model')
        remove_input(required, 'upscale_by')
        rename_input(required, 'image', 'upscaled_image')
        return prepare_inputs(required)
    RETURN_TYPES = ('IMAGE',)
    FUNCTION = 'upscale'
    CATEGORY = 'image/upscaling'

    def upscale(self, upscaled_image, model, positive, negative, vae, seed, steps, cfg, sampler_name, scheduler, denoise, mode_type, tile_width, tile_height, mask_blur, tile_padding, seam_fix_mode, seam_fix_denoise, seam_fix_mask_blur, seam_fix_width, seam_fix_padding, force_uniform_tiles, tiled_decode):
        shared.sd_upscalers[0] = UpscalerData()
        shared.actual_upscaler = None
        shared.batch = [tensor_to_pil(upscaled_image, i) for i in range(len(upscaled_image))]
        sdprocessing = StableDiffusionProcessing(tensor_to_pil(upscaled_image), model, positive, negative, vae, seed, steps, cfg, sampler_name, scheduler, denoise, 1, force_uniform_tiles, tiled_decode)
        script = usdu.Script()
        processed = script.run(p=sdprocessing, _=None, tile_width=tile_width, tile_height=tile_height, mask_blur=mask_blur, padding=tile_padding, seams_fix_width=seam_fix_width, seams_fix_denoise=seam_fix_denoise, seams_fix_padding=seam_fix_padding, upscaler_index=0, save_upscaled_image=False, redraw_mode=MODES[mode_type], save_seams_fix_image=False, seams_fix_mask_blur=seam_fix_mask_blur, seams_fix_type=SEAM_FIX_MODES[seam_fix_mode], target_size_type=2, custom_width=None, custom_height=None, custom_scale=1)
        images = [pil_to_tensor(img) for img in shared.batch]
        tensor = torch.cat(images, dim=0)
        return (tensor,)