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")
説明:
-
サイズの調整:
python
adjusted_height = (height // 8) * 8 adjusted_width = (width // 8) * 8heightとwidthを8で割った商に8を掛けることで、最も近い8の倍数に調整しています。この例では、高さを800、幅を1328に調整しています。 -
画像の生成:
python
result = pipeline(prompt, height=adjusted_height, width=adjusted_width)調整されたサイズを使用して画像を生成します。
-
画像の保存:
python
generated_image.save("generated_image.jpg")生成された画像を保存します。
このコードを実行すると、指定されたサイズに最も近い8の倍数のサイズで画像が生成され、保存されます。

ディスカッション
コメント一覧
まだ、コメントがありません