Trianing GAN give me something wrong

I am trying GAN to genarate human face,but it does not works well.here is my output:


I random some numbers ,batchsize==32,I input numbers in Generator,but the output is the same

I search on the Internet and find some advice :
1,first train Generator with real data,then use fake data ,then train Discriminator.
2,use batchnorm layer
3,use another good backbone(I am use stargan)
4,change real label from 1 to (0.7-1),fake label from 0 to (0-0.3)
5,give smaller batch_size.

all of them have no use
is that a gradient vanish?I am using nn.BCEWithLogitsLoss(),is that cause of a sigmod in nn.BCEWithLogitsLoss()?do I have a better choice?

Thanks a lot