From c6e72ffbd4a18cdfac1c80eab8246078934f0f4f Mon Sep 17 00:00:00 2001 From: camenduru <54370274+camenduru@users.noreply.github.com> Date: Tue, 27 Dec 2022 10:55:06 +0000 Subject: [PATCH 1/2] Device to use (e.g. cpu, cuda:0, cuda:1, etc.) --- scripts/convert_original_stable_diffusion_to_diffusers.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/scripts/convert_original_stable_diffusion_to_diffusers.py b/scripts/convert_original_stable_diffusion_to_diffusers.py index 0414a0e8ad6a..e93766a3493b 100644 --- a/scripts/convert_original_stable_diffusion_to_diffusers.py +++ b/scripts/convert_original_stable_diffusion_to_diffusers.py @@ -848,12 +848,16 @@ def convert_open_clip_checkpoint(checkpoint): ), ) parser.add_argument("--dump_path", default=None, type=str, required=True, help="Path to the output model.") + parser.add_argument("--device", type=str, help="Device to use (e.g. cpu, cuda:0, cuda:1, etc.)") args = parser.parse_args() image_size = args.image_size prediction_type = args.prediction_type - checkpoint = torch.load(args.checkpoint_path) + if args.device is None: + checkpoint = torch.load(args.checkpoint_path) + else: + checkpoint = torch.load(args.checkpoint_path, map_location=args.device) # Sometimes models don't have the global_step item if "global_step" in checkpoint: From ea6c517ed3fa80fc6396bab000b85b588c02aa75 Mon Sep 17 00:00:00 2001 From: camenduru <54370274+camenduru@users.noreply.github.com> Date: Tue, 27 Dec 2022 11:14:26 +0000 Subject: [PATCH 2/2] "cuda" if torch.cuda.is_available() else "cpu" --- scripts/convert_original_stable_diffusion_to_diffusers.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/convert_original_stable_diffusion_to_diffusers.py b/scripts/convert_original_stable_diffusion_to_diffusers.py index e93766a3493b..1f4204495482 100644 --- a/scripts/convert_original_stable_diffusion_to_diffusers.py +++ b/scripts/convert_original_stable_diffusion_to_diffusers.py @@ -855,7 +855,8 @@ def convert_open_clip_checkpoint(checkpoint): prediction_type = args.prediction_type if args.device is None: - checkpoint = torch.load(args.checkpoint_path) + device = "cuda" if torch.cuda.is_available() else "cpu" + checkpoint = torch.load(args.checkpoint_path, map_location=device) else: checkpoint = torch.load(args.checkpoint_path, map_location=args.device)