Something like this?
class Model(nn.Module):
    def __init__(self):
        super(Model, self).__init__()
        self.layer = create_layer()
        self.flag = True

    def func_input1(self, x):
        return None

    def func_input2(self, x1, x2, x3):
        return None

    def forward(self, *inputs):
        if self.flag:
            x = self.func_input1(*inputs)
            self.flag = False
        else:
            x = self.func_input2(*inputs)
        return x

You can really code it however you want to. You can also pass multiple inputs and call methods inside forward.