ValueError: height and width have to be divisible by 8 but are 1000 and 1330.

Stable Diffusionでは、生成する画像の高さと幅が8の倍数である必要があります。指定されたサイズ(1000×1330)はこの条件を満たしていないため、エラーが発生しています。

以下は、指定したサイズに最も近い8の倍数を計算する例です。この例では、生成する画像のサイズを800×1328に調整しています。

python
import torch from diffusers import StableDiffusionPipeline # モデルのID model_id = "CompVis/stable-diffusion-v1-4" # モデルの読み込み pipeline = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16) pipeline = pipeline.to("cpu") # または "cuda" などのデバイス # テキストプロンプトから画像を生成 prompt = "A fantasy landscape with mountains and a river" # 生成する画像のサイズを指定(8の倍数に調整) height = 1000 width = 1330 adjusted_height = (height // 8) * 8 adjusted_width = (width // 8) * 8 print(f"Adjusted size: height={adjusted_height}, width={adjusted_width}") # 画像を生成 result = pipeline(prompt, height=adjusted_height, width=adjusted_width) # 生成された画像を取り出す generated_image = result.images[0] # 生成された画像を保存 generated_image.save("generated_image.jpg")

説明:

  1. サイズの調整:

    python
    adjusted_height = (height // 8) * 8 adjusted_width = (width // 8) * 8

    heightwidthを8で割った商に8を掛けることで、最も近い8の倍数に調整しています。この例では、高さを800、幅を1328に調整しています。

  2. 画像の生成:

    python
    result = pipeline(prompt, height=adjusted_height, width=adjusted_width)

    調整されたサイズを使用して画像を生成します。

  3. 画像の保存:

    python
    generated_image.save("generated_image.jpg")

    生成された画像を保存します。

このコードを実行すると、指定されたサイズに最も近い8の倍数のサイズで画像が生成され、保存されます。

未分類

Posted by ぼっち