diff --git a/invokeai/app/invocations/latent.py b/invokeai/app/invocations/latent.py index cbd39fdb5f..da0e6c0354 100644 --- a/invokeai/app/invocations/latent.py +++ b/invokeai/app/invocations/latent.py @@ -54,16 +54,16 @@ class NoiseOutput(BaseInvocationOutput): # TODO: this seems like a hack scheduler_map = dict( - ddim=(diffusers.DDIMScheduler, dict()), - dpmpp_2=(diffusers.DPMSolverMultistepScheduler, dict()), - k_dpm_2=(diffusers.KDPM2DiscreteScheduler, dict()), - k_dpm_2_a=(diffusers.KDPM2AncestralDiscreteScheduler, dict()), - k_dpmpp_2=(diffusers.DPMSolverMultistepScheduler, dict()), - k_euler=(diffusers.EulerDiscreteScheduler, dict()), - k_euler_a=(diffusers.EulerAncestralDiscreteScheduler, dict()), - k_heun=(diffusers.HeunDiscreteScheduler, dict()), - k_lms=(diffusers.LMSDiscreteScheduler, dict()), - plms=(diffusers.PNDMScheduler, dict()), + ddim=(diffusers.DDIMScheduler, dict(cpu_only=False)), + dpmpp_2=(diffusers.DPMSolverMultistepScheduler, dict(cpu_only=False)), + k_dpm_2=(diffusers.KDPM2DiscreteScheduler, dict(cpu_only=False)), + k_dpm_2_a=(diffusers.KDPM2AncestralDiscreteScheduler, dict(cpu_only=False)), + k_dpmpp_2=(diffusers.DPMSolverMultistepScheduler, dict(cpu_only=False)), + k_euler=(diffusers.EulerDiscreteScheduler, dict(cpu_only=False)), + k_euler_a=(diffusers.EulerAncestralDiscreteScheduler, dict(cpu_only=False)), + k_heun=(diffusers.HeunDiscreteScheduler, dict(cpu_only=False)), + k_lms=(diffusers.LMSDiscreteScheduler, dict(cpu_only=False)), + plms=(diffusers.PNDMScheduler, dict(cpu_only=False)), unipc=(diffusers.UniPCMultistepScheduler, dict(cpu_only=True)) ) diff --git a/invokeai/backend/generate.py b/invokeai/backend/generate.py index 237f609b2f..c64c0e3320 100644 --- a/invokeai/backend/generate.py +++ b/invokeai/backend/generate.py @@ -1049,19 +1049,19 @@ class Generate: # See https://github.com/huggingface/diffusers/issues/277#issuecomment-1371428672 scheduler_map = dict( - ddim=(diffusers.DDIMScheduler, dict()), - dpmpp_2=(diffusers.DPMSolverMultistepScheduler, dict()), - k_dpm_2=(diffusers.KDPM2DiscreteScheduler, dict()), - k_dpm_2_a=(diffusers.KDPM2AncestralDiscreteScheduler, dict()), + ddim=(diffusers.DDIMScheduler, dict(cpu_only=False)), + dpmpp_2=(diffusers.DPMSolverMultistepScheduler, dict(cpu_only=False)), + k_dpm_2=(diffusers.KDPM2DiscreteScheduler, dict(cpu_only=False)), + k_dpm_2_a=(diffusers.KDPM2AncestralDiscreteScheduler, dict(cpu_only=False)), # DPMSolverMultistepScheduler is technically not `k_` anything, as it is neither # the k-diffusers implementation nor included in EDM (Karras 2022), but we can # provide an alias for compatibility. - k_dpmpp_2=(diffusers.DPMSolverMultistepScheduler, dict()), - k_euler=(diffusers.EulerDiscreteScheduler, dict()), - k_euler_a=(diffusers.EulerAncestralDiscreteScheduler, dict()), - k_heun=(diffusers.HeunDiscreteScheduler, dict()), - k_lms=(diffusers.LMSDiscreteScheduler, dict()), - plms=(diffusers.PNDMScheduler, dict()), + k_dpmpp_2=(diffusers.DPMSolverMultistepScheduler, dict(cpu_only=False)), + k_euler=(diffusers.EulerDiscreteScheduler, dict(cpu_only=False)), + k_euler_a=(diffusers.EulerAncestralDiscreteScheduler, dict(cpu_only=False)), + k_heun=(diffusers.HeunDiscreteScheduler, dict(cpu_only=False)), + k_lms=(diffusers.LMSDiscreteScheduler, dict(cpu_only=False)), + plms=(diffusers.PNDMScheduler, dict(cpu_only=False)), unipc=(diffusers.UniPCMultistepScheduler, dict(cpu_only=True)) ) diff --git a/invokeai/backend/generator/base.py b/invokeai/backend/generator/base.py index f286ad0ad7..33a625de30 100644 --- a/invokeai/backend/generator/base.py +++ b/invokeai/backend/generator/base.py @@ -72,16 +72,16 @@ class InvokeAIGeneratorOutput: # old code that calls Generate will continue to work. class InvokeAIGenerator(metaclass=ABCMeta): scheduler_map = dict( - ddim=(diffusers.DDIMScheduler, dict()), - dpmpp_2=(diffusers.DPMSolverMultistepScheduler, dict()), - k_dpm_2=(diffusers.KDPM2DiscreteScheduler, dict()), - k_dpm_2_a=(diffusers.KDPM2AncestralDiscreteScheduler, dict()), - k_dpmpp_2=(diffusers.DPMSolverMultistepScheduler, dict()), - k_euler=(diffusers.EulerDiscreteScheduler, dict()), - k_euler_a=(diffusers.EulerAncestralDiscreteScheduler, dict()), - k_heun=(diffusers.HeunDiscreteScheduler, dict()), - k_lms=(diffusers.LMSDiscreteScheduler, dict()), - plms=(diffusers.PNDMScheduler, dict()), + ddim=(diffusers.DDIMScheduler, dict(cpu_only=False)), + dpmpp_2=(diffusers.DPMSolverMultistepScheduler, dict(cpu_only=False)), + k_dpm_2=(diffusers.KDPM2DiscreteScheduler, dict(cpu_only=False)), + k_dpm_2_a=(diffusers.KDPM2AncestralDiscreteScheduler, dict(cpu_only=False)), + k_dpmpp_2=(diffusers.DPMSolverMultistepScheduler, dict(cpu_only=False)), + k_euler=(diffusers.EulerDiscreteScheduler, dict(cpu_only=False)), + k_euler_a=(diffusers.EulerAncestralDiscreteScheduler, dict(cpu_only=False)), + k_heun=(diffusers.HeunDiscreteScheduler, dict(cpu_only=False)), + k_lms=(diffusers.LMSDiscreteScheduler, dict(cpu_only=False)), + plms=(diffusers.PNDMScheduler, dict(cpu_only=False)), unipc=(diffusers.UniPCMultistepScheduler, dict(cpu_only=True)) )