I am not noticing anywhere that an Input is defined. You need something like
#define an input layer
input_layer = keras.Input(shape=(784,), name="my_input_layer")
#inform the model about its inputs
sequential_model_def(input_layer)
There’s a little more about this here: Tips for troubles with Sequential and Functional API syntax