"docs/vscode:/vscode.git/clone" did not exist on "7396d8f6818bbbbadedc0b034e60726dddee0b4e"
Unverified Commit 6f150263 authored by Nan Liu's avatar Nan Liu Committed by GitHub
Browse files

update composable diffusion for an updated diffuser library (#1697)

* update composable diffusion for an updated diffuser library

* fix style/quality for code

* Revert "fix style/quality for code"

This reverts commit 71f23497639fe69de00d93cf91edc31b08dcd7a4.

* update style

* reduce memory usage by computing score sequentially
parent a5edb981
......@@ -355,43 +355,45 @@ out = pipe(
import torch as th
import numpy as np
import torchvision.utils as tvu
from diffusers import DiffusionPipeline
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--prompt", type=str, default="mystical trees | A magical pond | dark",
help="use '|' as the delimiter to compose separate sentences.")
parser.add_argument("--steps", type=int, default=50)
parser.add_argument("--scale", type=float, default=7.5)
parser.add_argument("--weights", type=str, default="7.5 | 7.5 | -7.5")
parser.add_argument("--seed", type=int, default=2)
parser.add_argument("--model_path", type=str, default="CompVis/stable-diffusion-v1-4")
parser.add_argument("--num_images", type=int, default=1)
args = parser.parse_args()
has_cuda = th.cuda.is_available()
device = th.device('cpu' if not has_cuda else 'cuda')
prompt = args.prompt
scale = args.scale
steps = args.steps
pipe = DiffusionPipeline.from_pretrained(
"CompVis/stable-diffusion-v1-4",
use_auth_token=True,
args.model_path,
custom_pipeline="composable_stable_diffusion",
).to(device)
def dummy(images, **kwargs):
return images, False
pipe.safety_checker = dummy
images = []
generator = torch.Generator("cuda").manual_seed(0)
seed = 0
prompt = "a forest | a camel"
weights = " 1 | 1" # Equal weight to each prompt. Can be negative
pipe.safety_checker = None
images = []
for i in range(4):
res = pipe(
prompt,
guidance_scale=7.5,
num_inference_steps=50,
weights=weights,
generator=generator)
image = res.images[0]
images.append(image)
generator = th.Generator("cuda").manual_seed(args.seed)
for i in range(args.num_images):
image = pipe(prompt, guidance_scale=scale, num_inference_steps=steps,
weights=args.weights, generator=generator).images[0]
images.append(th.from_numpy(np.array(image)).permute(2, 0, 1) / 255.)
grid = tvu.make_grid(th.stack(images, dim=0), nrow=4, padding=0)
tvu.save_image(grid, f'{prompt}_{args.weights}' + '.png')
for i, img in enumerate(images):
img.save(f"./composable_diffusion/image_{i}.png")
```
### Imagic Stable Diffusion
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment