license: mit | |
tags: | |
- image-to-image | |
# InstructPix2Pix: Learning to Follow Image Editing Instructions | |
GitHub: https://github.com/timothybrooks/instruct-pix2pix | |
<img src='https://instruct-pix2pix.timothybrooks.com/teaser.jpg'/> | |
## Example | |
To use `InstructPix2Pix`, install `diffusers` using `main` for now. The pipeline will be available in the next release | |
```bash | |
pip install diffusers accelerate safetensors transformers | |
``` | |
```python | |
import PIL | |
import requests | |
import torch | |
from diffusers import StableDiffusionInstructPix2PixPipeline, EulerAncestralDiscreteScheduler | |
model_id = "timbrooks/instruct-pix2pix" | |
pipe = StableDiffusionInstructPix2PixPipeline.from_pretrained(model_id, torch_dtype=torch.float16, safety_checker=None) | |
pipe.to("cuda") | |
pipe.scheduler = EulerAncestralDiscreteScheduler.from_config(pipe.scheduler.config) | |
url = "https://raw.githubusercontent.com/timothybrooks/instruct-pix2pix/main/imgs/example.jpg" | |
def download_image(url): | |
image = PIL.Image.open(requests.get(url, stream=True).raw) | |
image = PIL.ImageOps.exif_transpose(image) | |
image = image.convert("RGB") | |
return image | |
image = download_image(URL) | |
prompt = "turn him into cyborg" | |
images = pipe(prompt, image=image, num_inference_steps=10, image_guidance_scale=1).images | |
images[0] | |
``` |