If I’m not mistaken, output_padding just adds the padding after the transposed convolution was applied.
If that’s the case, you could remove the output padding and instead slice and pad the output manually via F.pad.