Skip to content

Improve SD XL - #3968

Merged
patrickvonplaten merged 7 commits into
mainfrom
improve_sd_xl
Jul 6, 2023
Merged

Improve SD XL#3968
patrickvonplaten merged 7 commits into
mainfrom
improve_sd_xl

Conversation

@patrickvonplaten

@patrickvonplatenpatrickvonplaten commented Jul 6, 2023

Copy link
Copy Markdown
Contributor

What does this PR do?

This PR makes sure diffusers Stable Diffusion XL can generate images of any size. We also make sure that both single file format and diffusers format can be loaded.

Diffusers format:

fromdiffusersimportStableDiffusionXLPipeline, StableDiffusionXLImg2ImgPipelineimporttorchuse_refiner=Truepipe=StableDiffusionXLPipeline.from_pretrained("stabilityai/stable-diffusion-xl-base-0.9", torch_dtype=torch.float16, variant="fp16", use_safetensors=True)
pipe.to("cuda")
ifuse_refiner:
refiner=StableDiffusionXLImg2ImgPipeline.from_pretrained("stabilityai/stable-diffusion-xl-refiner-0.9", torch_dtype=torch.float16, use_safetensors=True, variant="fp16")
refiner.to("cuda")
prompt="Astronaut in a jungle, cold color palette, muted colors, detailed, 8k"image=pipe(prompt=prompt, output_type="latent"ifuse_refinerelse"pil").images[0]
ifuse_refiner:
image=refiner(prompt=prompt, image=image[None, :]).images[0]

Single File Format:

fromdiffusersimportStableDiffusionXLPipeline, StableDiffusionXLImg2ImgPipelineimporttorchuse_refiner=Truepipe=StableDiffusionXLPipeline.from_single_file("https://huggingface.co/stabilityai/stable-diffusion-xl-base-0.9/blob/main/sd_xl_base_0.9.safetensors", torch_dtype=torch.float16, use_safetensors=True)
pipe.to("cuda")
ifuse_refiner:
refiner=StableDiffusionXLImg2ImgPipeline.from_single_file("https://huggingface.co/stabilityai/stable-diffusion-xl-refiner-0.9/blob/main/sd_xl_refiner_0.9.safetensors", torch_dtype=torch.float16, use_safetensors=True)
refiner.to("cuda")
prompt="Astronaut in a jungle, cold color palette, muted colors, detailed, 8k"image=pipe(prompt=prompt, output_type="latent"ifuse_refinerelse"pil").images[0]
ifuse_refiner:
image=refiner(prompt=prompt, image=image[None, :]).images[0]

Before submitting

Who can review?

Anyone in the community is free to review the PR once the tests have passed. Feel free to tag
members/contributors who may be interested in your PR.

steps_offset=1,
timestep_spacing="leading",
)
scheduler = EulerDiscreteScheduler.from_config(scheduler_dict)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we pass a scheduler in? i would like to be able to convert it and attach DDIM, as that's a better sampler for SDXL even though it's divergent from their upstream impl.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like the idea of being able to customize the scheduler. I like Euler, but I usually customize the settings of the scheduler.

Comment on lines -634 to +635
original_size: Tuple[int, int] = (1024, 1024),
original_size: Tuple[int, int] = None,
crops_coords_top_left: Tuple[int, int] = (0, 0),
target_size: Tuple[int, int] = (1024, 1024),
target_size: Tuple[int, int] = None,

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why is this now defaulting to None? can you explain a bit?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It will then later be set to the passed height and width this makes sure we generate correct outputs for different input sizes than 1024

@bghirabghira left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thank you for fixing the CKPT converter.

@patrickvonplatenpatrickvonplaten changed the title improve sd xlImprove SD XLJul 6, 2023
@patrickvonplaten
patrickvonplaten merged commit 187ea53 into mainJul 6, 2023
@patrickvonplaten
patrickvonplaten deleted the improve_sd_xl branch July 6, 2023 16:11
@Mark-divinci

Copy link
Copy Markdown

i want to increase the batch_size to get larger throughput,but i got linear growth of latency.if i run some incorrect settings?

yoonseokjin pushed a commit to yoonseokjin/diffusers that referenced this pull request Dec 25, 2023
* improve sd xl
* correct more
* finish
* make style
* fix more
AmericanPresidentJimmyCarter pushed a commit to AmericanPresidentJimmyCarter/diffusers that referenced this pull request Apr 26, 2024
* improve sd xl
* correct more
* finish
* make style
* fix more
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@patrickvonplaten@Mark-divinci@JemiloII@bghira