diff --git a/demo.py b/demo.py index 259a07a..a4371ad 100644 --- a/demo.py +++ b/demo.py @@ -39,13 +39,14 @@ def main(args): device=args.device ) image = engine( - prompt=args.prompt, - init_image=None if args.init_image is None else cv2.imread(args.init_image), - mask=None if args.mask is None else cv2.imread(args.mask, 0), - strength=args.strength, - num_inference_steps=args.num_inference_steps, - guidance_scale=args.guidance_scale, - eta=args.eta + prompt = args.prompt, + init_image = None if args.init_image is None else cv2.imread(args.init_image), + mask = None if args.mask is None else cv2.imread(args.mask, 0), + strength = args.strength, + num_inference_steps = args.num_inference_steps, + guidance_scale = args.guidance_scale, + eta = args.eta, + unprompt = args.unprompt ) cv2.imwrite(args.output, image) @@ -79,5 +80,7 @@ def main(args): parser.add_argument("--mask", type=str, default=None, help="mask of the region to inpaint on the initial image") # output name parser.add_argument("--output", type=str, default="output.png", help="output image name") + # unprompt + parser.add_argument("--unprompt", type=str, default="", help="negative prompt") args = parser.parse_args() main(args) diff --git a/stable_diffusion_engine.py b/stable_diffusion_engine.py index 98fc88d..3e6468d 100644 --- a/stable_diffusion_engine.py +++ b/stable_diffusion_engine.py @@ -106,7 +106,8 @@ def __call__( strength = 0.5, num_inference_steps = 32, guidance_scale = 7.5, - eta = 0.0 + eta = 0.0, + unprompt = "" ): # extract condition tokens = self.tokenizer( @@ -122,7 +123,7 @@ def __call__( # do classifier free guidance if guidance_scale > 1.0: tokens_uncond = self.tokenizer( - "", + unprompt, padding="max_length", max_length=self.tokenizer.model_max_length, truncation=True