fix generator/device mismatch in discrete schedulers and DiffusionGemma's canvas init
torch.randint/multinomial/rand need the generator and the sampled tensor
on the same device. A CPU generator (the portable default recommended
for reproducible pipeline calls) broke on any accelerator.