Learnable Upsampling in GAN

How does strides helping in upsampling, According to what i have learnt till now, it basically tells how a filter should move across the image, so how it is helping in upsampling?

Yes, a stride of 2×2 on a normal convolutional layer has the effect of downsampling the input, much like a pooling layer.
But the transpose convolutional layer or deconvolutions is like an inverse convolutional layer. As such, you would intuitively think that a 2×2 stride would upsample the input instead of downsample, which is exactly what happens.
In a transpose convolutional layer, stride refers to the manner in which outputs in the feature map are laid down.
eg -
An image of 5x5 is fed into a convolutional layer. The stride is set to 2, the padding is deactivated and the kernel is 3x3. This results in a 2x2 image. So 9 pixels used to form 1
Transpose layer guarantees that for the 2x2 input, output will be a 5x5 image, while still performing a normal convolution operation. To achieve this, it performs some fancy padding on the input.
It merely reconstructs the spatial resolution from before and performs a convolution

This way we can combine the upscaling of an image with a convolution, instead of doing two separate processes.

This gif might also help -