YuvalNirkin / fsgan

FSGAN - Official PyTorch Implementation
https://nirkin.com/fsgan
Creative Commons Zero v1.0 Universal
754 stars 147 forks source link

swap.py maybe unsupport torch-1.11.0 #161

Closed laochen closed 2 years ago

laochen commented 2 years ago

environment: torch-1.11.0+cu113 torchaudio-0.11.0+cu113 torchvision-0.12.0+cu113 yacs-0.1.8
command: python swap.py ../docs/examples/shinzo_abe.mp4 -t ../docs/examples/conan_obrien.mp4 -o . --finetune --finetune_save --seg_remove_mouth -ec='mp4v'

Face swapping: "shinzo_abe_seq00.mp4" -> "conan_obrien_seq00.mp4"... 0%|
Traceback (most recent call last): File "swap.py", line 505, in main(vars(parser.parse_args())) File "swap.py", line 499, in main face_swapping(source[0], target[0], output, select_source, select_target) File "swap.py", line 315, in call reenactment_seg = self.S(reenactment_tensor) File "/data0/anaconda3/envs/snakes/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1110, in _call_impl return forward_call(*input, *kwargs) File "/data0/data/dev/projects/fsgan/models/simple_unet_02.py", line 71, in forward up4 = self.up_concat4(conv4, center) File "/data0/anaconda3/envs/snakes/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1110, in _call_impl return forward_call(input, kwargs) File "/data0/data/dev/projects/fsgan/models/simple_unet_02.py", line 137, in forward outputs2 = self.conv1d(outputs2,) File "/data0/anaconda3/envs/snakes/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1110, in _call_impl return forward_call(*input, **kwargs) File "/data0/anaconda3/envs/snakes/lib/python3.8/site-packages/torch/nn/modules/conv.py", line 302, in forward return self._conv_forward(input, self.weight, self.bias) File "/data0/anaconda3/envs/snakes/lib/python3.8/site-packages/torch/nn/modules/conv.py", line 298, in _conv_forward return F.conv1d(input, weight, bias, self.stride, RuntimeError: Expected 2D (unbatched) or 3D (batched) input to conv1d, but got input of size: [8, 1024, 32, 32]

laochen commented 2 years ago

simple_unet_02.py 131 line: self.conv1d = nn.Conv1d(in_size, out_size, kernel_size=(1,1)) change to self.conv1d = nn.Conv2d(in_size, out_size, kernel_size=(1,1))