🦁

Stable Diffusion・Batchを使うときはgeneratorも同じ数つくらないといけない。

2024/03/29に公開

結論

使い回しも効かないので、generatorは、pipeの前にbatchの数だけ生成しましょう。

半日ハマって苦労しました。

たしかに、一つでもエラーでないけど、何故か各画像が荒ぶっていました。

generator = torch.Generator(device).manual_seed(seed)

よく調べたらバッチのときだけ問題が出たので、以下のように生成してpipeに渡したら解決しました。

for i in range(batch_size):
     generator = torch.Generator(device).manual_seed(seed)
     generators.append(generator)

Discussion