Model-free RL doesn't mean you aren't training a model. It means that you aren't explicitly building a model of the environment's f(s,a)=(s',r) transition function, which methods like Dreamer do.
Q-learning only approximates the Q-value function, not the full state transition, so it is model-free.
Q-learning only approximates the Q-value function, not the full state transition, so it is model-free.