Views
No views yet
1from diffusers import StableDiffusionInstructPix2PixPipeline, EulerAncestralDiscreteScheduler
2import torch
3import requests
4from io import BytesIO
5
6model_name = "paint-by-inpaint/general-base"
7
8diffusion_steps = 50
9device = "cuda"
10image_url = "https://paint-by-inpaint-demo.hf.space/file=/tmp/gradio/99cd3a15aa9bdd3220b4063ebc3ac05e07a611b8/messi.jpeg"
11image = Image.open(BytesIO(requests.get(image_url).content)).resize((512, 512))
12
13pipe = StableDiffusionInstructPix2PixPipeline.from_pretrained(model_name, torch_dtype=torch.float16, safety_checker=None).to(device)
14pipe.scheduler = EulerAncestralDiscreteScheduler.from_config(pipe.scheduler.config)
15
16# Generate the modified image
17out_images = pipe(
18 "Add a royal silver crown",
19 image=image,
20 guidance_scale=7,
21 image_guidance_scale=1.5,
22 num_inference_steps=diffusion_steps,
23 num_images_per_prompt=1
24).images
251@article{wasserman2024paint,
2 title={Paint by Inpaint: Learning to Add Image Objects by Removing Them First},
3 author={Wasserman, Navve and Rotstein, Noam and Ganz, Roy and Kimmel, Ron},
4 journal={arXiv preprint arXiv:2404.18212},
5 year={2024}
6}
7