Skip to content

Multidiffusion creates corrupted images with different schedulers #3494

@Isotr0py

Description

@Isotr0py

Thanks for the great implement of StableDiffusionPanoramaPipeline.
However, I found that StableDiffusionPanoramaPipeline will create corrupted images when using some specific schedulers.

For example, if we use DPMSolverMultistepScheduler, a corrupted image will be generated.

import torch
from diffusers import StableDiffusionPanoramaPipeline
from diffusers import DPMSolverMultistepScheduler

seed = 33
model_ckpt = "stabilityai/stable-diffusion-2-base"
prompt = "a photo of the dolomites"

pipe = StableDiffusionPanoramaPipeline.from_pretrained(model_ckpt, torch_dtype=torch.float16).to("cuda")
pipe.scheduler = DPMSolverMultistepScheduler.from_config(pipe.scheduler.config)
pipe.to("cuda")
generator = torch.Generator(device="cuda").manual_seed(seed)
image = pipe(prompt, generator=generator, num_inference_steps=25,width=1024,height=512).images[0]
image.save("DPM++2M.png")
display(image)

DPM++_2M

But if we switch to EulerDiscreteScheduler, it can create a normal panorama image like DDIM scheduler.

import torch
from diffusers import StableDiffusionPanoramaPipeline
from diffusers import EulerDiscreteScheduler

seed = 33
model_ckpt = "stabilityai/stable-diffusion-2-base"
prompt = "a photo of the dolomites"

pipe = StableDiffusionPanoramaPipeline.from_pretrained(model_ckpt, torch_dtype=torch.float16).to("cuda")
pipe.scheduler = EulerDiscreteScheduler.from_config(pipe.scheduler.config)
pipe.to("cuda")
generator = torch.Generator(device="cuda").manual_seed(seed)
image = pipe(prompt, generator=generator, num_inference_steps=25,width=1024,height=512).images[0]
image.save("Euler.png")
display(image)

Euler

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions