Convert SimSwap .pth model to .onnx
northumber opened this issue · comments
Hi, I wanted to convert the pretrained SimSwap 512 .pth model to .onnx file format.
I'm not so much into Python, so I don't really know what to do. From what I understand, the code to do so looks something like this:
import io
import numpy as np
import torch.onnx
torch_model = ModelClass()
model_path = "model.pth"
batch_size = 1
torch_model.load_state_dict(torch.load(model_path))
torch_model.eval()
x = torch.randn(batch_size, 3, 512, 512, requires_grad=True)
torch_out = torch_model(x)
torch.onnx.export(torch_model, x, "model.onnx", export_params=True, opset_version=11, do_constant_folding=True, input_names = ['input'], output_names = ['output'], dynamic_axes = {'input' : {0: 'batch_size'}, 'output': {0: 'batch_size'}})
For a pretrained typical torch model, the code where torch_model =
is something like models.resnet50(pretrained=True)
but for custom model is required custom model class like ModelClass()
in the code. I don't know what to write or where to find the custom model class for the SimSwap 512 model.
There is more to this than just that model so you won't just be able to replace the inswapper_128 with this anyway. Your best bet is to create a new plugin for your UI using this instead of trying to change roop to work like you want it.