We can generate a million buildings. We have been able to for years. The hard part was always making a city that feels like it grew rather than like it printed.
Designing the exceptions
The trick is not more variation. It is intentional exception: the one crooked street, the building that broke the rule for a reason, the wear that implies a history. You author the rhythm, then let the system fill the measure.
A believable city is a set of rules with a few deliberate lies.
The generative tools got dramatically better at the fill. Our job got more interesting: we curate the exceptions and let the machine handle the multitude.