From 5b2d2ede5e8bc9678d92d6934f4aa251f4de98ba Mon Sep 17 00:00:00 2001 From: the-database <25811902+the-database@users.noreply.github.com> Date: Wed, 1 Jan 2025 22:30:15 -0500 Subject: [PATCH 1/3] add realplksr layernorm --- .../architectures/PLKSR/__arch/RealPLKSR.py | 34 +++++++++++-- .../spandrel/architectures/PLKSR/__init__.py | 5 +- tests/__snapshots__/test_PLKSR.ambr | 46 ++++++++++++++++++ .../2x_DF2K_Redux_RealPLKSRLayerNorm_450k.png | Bin 0 -> 2697 bytes .../4x_DF2K_Redux_RealPLKSRLayerNorm_50k.png | Bin 0 -> 8639 bytes .../2x_DF2K_Redux_RealPLKSRLayerNorm_450k.png | Bin 0 -> 8607 bytes .../4x_DF2K_Redux_RealPLKSRLayerNorm_50k.png | Bin 0 -> 30062 bytes .../2x_DF2K_Redux_RealPLKSRLayerNorm_450k.png | Bin 0 -> 22341 bytes .../4x_DF2K_Redux_RealPLKSRLayerNorm_50k.png | Bin 0 -> 75314 bytes tests/test_PLKSR.py | 33 +++++++++++++ 10 files changed, 112 insertions(+), 6 deletions(-) create mode 100644 tests/images/outputs/16x16/2x_DF2K_Redux_RealPLKSRLayerNorm_450k.png create mode 100644 tests/images/outputs/16x16/4x_DF2K_Redux_RealPLKSRLayerNorm_50k.png create mode 100644 tests/images/outputs/32x32/2x_DF2K_Redux_RealPLKSRLayerNorm_450k.png create mode 100644 tests/images/outputs/32x32/4x_DF2K_Redux_RealPLKSRLayerNorm_50k.png create mode 100644 tests/images/outputs/64x64/2x_DF2K_Redux_RealPLKSRLayerNorm_450k.png create mode 100644 tests/images/outputs/64x64/4x_DF2K_Redux_RealPLKSRLayerNorm_50k.png diff --git a/libs/spandrel/spandrel/architectures/PLKSR/__arch/RealPLKSR.py b/libs/spandrel/spandrel/architectures/PLKSR/__arch/RealPLKSR.py index 1b70872..7020061 100644 --- a/libs/spandrel/spandrel/architectures/PLKSR/__arch/RealPLKSR.py +++ b/libs/spandrel/spandrel/architectures/PLKSR/__arch/RealPLKSR.py @@ -8,6 +8,20 @@ from spandrel.util import store_hyperparameters +class LayerNorm(nn.Module): + def __init__(self, dim: int, eps: float = 1e-6) -> None: + super().__init__() + self.weight = nn.Parameter(torch.ones(dim)) + self.bias = nn.Parameter(torch.zeros(dim)) + self.eps = eps + + def forward(self, x: torch.Tensor) -> torch.Tensor: + u = x.mean(1, keepdim=True) + s = (x - u).pow(2).mean(1, keepdim=True) + x = (x - u) / torch.sqrt(s + self.eps) + return self.weight[:, None, None] * x + self.bias[:, None, None] + + class DCCM(nn.Sequential): "Doubled Convolutional Channel Mixer" @@ -56,11 +70,15 @@ def __init__( dim: int, kernel_size: int, split_ratio: float, - norm_groups: int, use_ea: bool = True, + norm_groups: int = 4, + use_layer_norm: bool = False, ): super().__init__() + # Layer Norm + self.layer_norm = LayerNorm(dim) if use_layer_norm else nn.Identity() + # Local Texture self.channel_mixer = DCCM(dim) @@ -80,11 +98,16 @@ def __init__( self.refine = nn.Conv2d(dim, dim, 1, 1, 0) trunc_normal_(self.refine.weight, std=0.02) - # Group Normalization - self.norm = nn.GroupNorm(norm_groups, dim) + if not use_layer_norm: + self.norm = nn.GroupNorm(norm_groups, dim) + nn.init.constant_(self.norm.bias, 0) + nn.init.constant_(self.norm.weight, 1.0) + else: + self.norm = nn.Identity() def forward(self, x: torch.Tensor) -> torch.Tensor: x_skip = x + x = self.layer_norm(x) x = self.channel_mixer(x) x = self.lk(x) x = self.attn(x) @@ -114,6 +137,7 @@ def __init__( norm_groups: int = 4, dropout: float = 0, dysample: bool = False, + layer_norm: bool = False, ): super().__init__() @@ -128,11 +152,11 @@ def __init__( self.feats = nn.Sequential( *[nn.Conv2d(in_ch, dim, 3, 1, 1)] + [ - PLKBlock(dim, kernel_size, split_ratio, norm_groups, use_ea) + PLKBlock(dim, kernel_size, split_ratio, use_ea, norm_groups, layer_norm) for _ in range(n_blocks) ] + [nn.Dropout2d(dropout)] - + [nn.Conv2d(dim, 3 * upscaling_factor**2, 3, 1, 1)] + + [nn.Conv2d(dim, out_ch * upscaling_factor**2, 3, 1, 1)] ) trunc_normal_(self.feats[0].weight, std=0.02) trunc_normal_(self.feats[-1].weight, std=0.02) diff --git a/libs/spandrel/spandrel/architectures/PLKSR/__init__.py b/libs/spandrel/spandrel/architectures/PLKSR/__init__.py index 5ada29d..23da88f 100644 --- a/libs/spandrel/spandrel/architectures/PLKSR/__init__.py +++ b/libs/spandrel/spandrel/architectures/PLKSR/__init__.py @@ -118,10 +118,12 @@ def load(self, state_dict: StateDict) -> ImageModelDescriptor[_PLKSR]: n_blocks = total_feat_layers - 3 kernel_size = state_dict["feats.1.lk.conv.weight"].shape[2] split_ratio = state_dict["feats.1.lk.conv.weight"].shape[0] / dim - + use_layer_norm = "feats.1.layer_norm.bias" in state_dict use_dysample = "to_img.init_pos" in state_dict if use_dysample: more_tags.append("DySample") + if use_layer_norm: + more_tags.append("LayerNorm") model = RealPLKSR( dim=dim, @@ -132,6 +134,7 @@ def load(self, state_dict: StateDict) -> ImageModelDescriptor[_PLKSR]: use_ea=use_ea, norm_groups=4, # un-detectable dysample=use_dysample, + layer_norm=use_layer_norm ) else: raise ValueError("Unknown model type") diff --git a/tests/__snapshots__/test_PLKSR.ambr b/tests/__snapshots__/test_PLKSR.ambr index f7985c4..a5c92bd 100644 --- a/tests/__snapshots__/test_PLKSR.ambr +++ b/tests/__snapshots__/test_PLKSR.ambr @@ -154,3 +154,49 @@ tiling=, ) # --- +# name: test_RealPLKSR_LayerNorm_2x + ImageModelDescriptor( + architecture=PLKSRArch( + id='PLKSR', + name='PLKSR', + ), + input_channels=3, + output_channels=3, + purpose='SR', + scale=2, + size_requirements=SizeRequirements(minimum=0, multiple_of=1, square=False), + supports_bfloat16=True, + supports_half=False, + tags=list([ + '64dim', + '28nb', + '17ks', + 'Real', + 'LayerNorm', + ]), + tiling=, + ) +# --- +# name: test_RealPLKSR_LayerNorm_4x + ImageModelDescriptor( + architecture=PLKSRArch( + id='PLKSR', + name='PLKSR', + ), + input_channels=3, + output_channels=3, + purpose='SR', + scale=4, + size_requirements=SizeRequirements(minimum=0, multiple_of=1, square=False), + supports_bfloat16=True, + supports_half=False, + tags=list([ + '64dim', + '28nb', + '17ks', + 'Real', + 'LayerNorm', + ]), + tiling=, + ) +# --- diff --git a/tests/images/outputs/16x16/2x_DF2K_Redux_RealPLKSRLayerNorm_450k.png b/tests/images/outputs/16x16/2x_DF2K_Redux_RealPLKSRLayerNorm_450k.png new file mode 100644 index 0000000000000000000000000000000000000000..1b5096f6aeb9e7fbc7f5bb632c3106e1b03015cf GIT binary patch literal 2697 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
pY^LwkERJ?u?n?D+ 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 OfR2WNdZp^Cp#KAmzsNxV literal 0 HcmV?d00001 diff --git a/tests/images/outputs/32x32/2x_DF2K_Redux_RealPLKSRLayerNorm_450k.png b/tests/images/outputs/32x32/2x_DF2K_Redux_RealPLKSRLayerNorm_450k.png new file mode 100644 index 0000000000000000000000000000000000000000..2584afb91d8004a8f01e7bf466825452ef3b792f GIT binary patch literal 8607 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 literal 0 HcmV?d00001 diff --git a/tests/images/outputs/32x32/4x_DF2K_Redux_RealPLKSRLayerNorm_50k.png b/tests/images/outputs/32x32/4x_DF2K_Redux_RealPLKSRLayerNorm_50k.png new file mode 100644 index 0000000000000000000000000000000000000000..519745779f2e01e25adde85d3b1716eb8a1c081e GIT binary patch literal 30062 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 Kd0P%Q3iv;j#>RXA literal 0 HcmV?d00001 diff --git a/tests/images/outputs/64x64/2x_DF2K_Redux_RealPLKSRLayerNorm_450k.png b/tests/images/outputs/64x64/2x_DF2K_Redux_RealPLKSRLayerNorm_450k.png new file mode 100644 index 0000000000000000000000000000000000000000..99c29fe4ee5666430ffcd9f67c272a288d754bb4 GIT binary patch literal 22341 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 Smx1-TAe^bSNe%XD%>MzTF#(kT literal 0 HcmV?d00001 diff --git a/tests/images/outputs/64x64/4x_DF2K_Redux_RealPLKSRLayerNorm_50k.png b/tests/images/outputs/64x64/4x_DF2K_Redux_RealPLKSRLayerNorm_50k.png new file mode 100644 index 0000000000000000000000000000000000000000..13538b2efa671a59ce4e0e06ce9e0198924f474d GIT binary patch literal 75314 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 Date: Wed, 1 Jan 2025 22:49:40 -0500 Subject: [PATCH 2/3] Update __init__.py --- libs/spandrel/spandrel/architectures/PLKSR/__init__.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/libs/spandrel/spandrel/architectures/PLKSR/__init__.py b/libs/spandrel/spandrel/architectures/PLKSR/__init__.py index 23da88f..e742457 100644 --- a/libs/spandrel/spandrel/architectures/PLKSR/__init__.py +++ b/libs/spandrel/spandrel/architectures/PLKSR/__init__.py @@ -1,7 +1,8 @@ from __future__ import annotations import math -from typing import Literal, Sequence, Union +from collections.abc import Sequence +from typing import Literal, Union from typing_extensions import override @@ -41,6 +42,7 @@ def load(self, state_dict: StateDict) -> ImageModelDescriptor[_PLKSR]: kernel_size = 17 split_ratio = 0.25 use_ea = True + supports_half = True dim = state_dict["feats.0.weight"].shape[0] @@ -124,6 +126,8 @@ def load(self, state_dict: StateDict) -> ImageModelDescriptor[_PLKSR]: more_tags.append("DySample") if use_layer_norm: more_tags.append("LayerNorm") + else: + supports_half = False model = RealPLKSR( dim=dim, @@ -134,7 +138,7 @@ def load(self, state_dict: StateDict) -> ImageModelDescriptor[_PLKSR]: use_ea=use_ea, norm_groups=4, # un-detectable dysample=use_dysample, - layer_norm=use_layer_norm + layer_norm=use_layer_norm, ) else: raise ValueError("Unknown model type") @@ -145,7 +149,7 @@ def load(self, state_dict: StateDict) -> ImageModelDescriptor[_PLKSR]: architecture=self, purpose="Restoration" if scale == 1 else "SR", tags=[f"{dim}dim", f"{n_blocks}nb", f"{kernel_size}ks", *more_tags], - supports_half=False, + supports_half=supports_half, supports_bfloat16=True, scale=scale, input_channels=3, From 15d91007bbe6c3641a99ae19ffa13143a9b3f831 Mon Sep 17 00:00:00 2001 From: the-database <25811902+the-database@users.noreply.github.com> Date: Wed, 1 Jan 2025 22:56:05 -0500 Subject: [PATCH 3/3] update snapshots --- tests/__snapshots__/test_PLKSR.ambr | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/__snapshots__/test_PLKSR.ambr b/tests/__snapshots__/test_PLKSR.ambr index a5c92bd..6e3145d 100644 --- a/tests/__snapshots__/test_PLKSR.ambr +++ b/tests/__snapshots__/test_PLKSR.ambr @@ -11,7 +11,7 @@ scale=4, size_requirements=SizeRequirements(minimum=0, multiple_of=1, square=False), supports_bfloat16=True, - supports_half=False, + supports_half=True, tags=list([ '64dim', '12nb', @@ -33,7 +33,7 @@ scale=2, size_requirements=SizeRequirements(minimum=0, multiple_of=1, square=False), supports_bfloat16=True, - supports_half=False, + supports_half=True, tags=list([ '64dim', '28nb', @@ -55,7 +55,7 @@ scale=3, size_requirements=SizeRequirements(minimum=0, multiple_of=1, square=False), supports_bfloat16=True, - supports_half=False, + supports_half=True, tags=list([ '64dim', '28nb', @@ -77,7 +77,7 @@ scale=4, size_requirements=SizeRequirements(minimum=0, multiple_of=1, square=False), supports_bfloat16=True, - supports_half=False, + supports_half=True, tags=list([ '64dim', '28nb', @@ -166,7 +166,7 @@ scale=2, size_requirements=SizeRequirements(minimum=0, multiple_of=1, square=False), supports_bfloat16=True, - supports_half=False, + supports_half=True, tags=list([ '64dim', '28nb', @@ -189,7 +189,7 @@ scale=4, size_requirements=SizeRequirements(minimum=0, multiple_of=1, square=False), supports_bfloat16=True, - supports_half=False, + supports_half=True, tags=list([ '64dim', '28nb',