diff --git a/invokeai/backend/stable_diffusion/schedulers/schedulers.py b/invokeai/backend/stable_diffusion/schedulers/schedulers.py index d5d445a79c..fad99dac9c 100644 --- a/invokeai/backend/stable_diffusion/schedulers/schedulers.py +++ b/invokeai/backend/stable_diffusion/schedulers/schedulers.py @@ -20,6 +20,9 @@ from diffusers import ( ) from diffusers.schedulers.scheduling_utils import SchedulerMixin +# TODO: add dpmpp_3s/dpmpp_3s_k when fix released +# https://github.com/huggingface/diffusers/issues/9007 + SCHEDULER_NAME_VALUES = Literal[ "ddim", "ddpm", @@ -43,8 +46,6 @@ SCHEDULER_NAME_VALUES = Literal[ "dpmpp_2m_k", "dpmpp_2m_sde", "dpmpp_2m_sde_k", - "dpmpp_3s", - "dpmpp_3s_k", "dpmpp_3m", "dpmpp_3m_k", "dpmpp_sde", @@ -78,8 +79,6 @@ SCHEDULER_MAP: dict[SCHEDULER_NAME_VALUES, tuple[Type[SchedulerMixin], dict[str, "dpmpp_2m_k": (DPMSolverMultistepScheduler, {"use_karras_sigmas": True, "solver_order": 2}), "dpmpp_2m_sde": (DPMSolverMultistepScheduler, {"use_karras_sigmas": False, "solver_order": 2, "algorithm_type": "sde-dpmsolver++"}), "dpmpp_2m_sde_k": (DPMSolverMultistepScheduler, {"use_karras_sigmas": True, "solver_order": 2, "algorithm_type": "sde-dpmsolver++"}), - "dpmpp_3s": (DPMSolverSinglestepScheduler, {"use_karras_sigmas": False, "solver_order": 3}), - "dpmpp_3s_k": (DPMSolverSinglestepScheduler, {"use_karras_sigmas": True, "solver_order": 3}), "dpmpp_3m": (DPMSolverMultistepScheduler, {"use_karras_sigmas": False, "solver_order": 3}), "dpmpp_3m_k": (DPMSolverMultistepScheduler, {"use_karras_sigmas": True, "solver_order": 3}), "dpmpp_sde": (DPMSolverSDEScheduler, {"use_karras_sigmas": False, "noise_sampler_seed": 0}), diff --git a/invokeai/frontend/web/src/features/nodes/types/common.ts b/invokeai/frontend/web/src/features/nodes/types/common.ts index 76f769f8e7..c84b2dae62 100644 --- a/invokeai/frontend/web/src/features/nodes/types/common.ts +++ b/invokeai/frontend/web/src/features/nodes/types/common.ts @@ -32,7 +32,6 @@ export const zSchedulerField = z.enum([ 'ddpm', 'dpmpp_2s', 'dpmpp_2m', - 'dpmpp_3s', 'dpmpp_3m', 'dpmpp_2m_sde', 'dpmpp_sde', @@ -45,7 +44,6 @@ export const zSchedulerField = z.enum([ 'deis_k', 'dpmpp_2s_k', 'dpmpp_2m_k', - 'dpmpp_3s_k', 'dpmpp_3m_k', 'dpmpp_2m_sde_k', 'dpmpp_sde_k', diff --git a/invokeai/frontend/web/src/features/nodes/types/v2/common.ts b/invokeai/frontend/web/src/features/nodes/types/v2/common.ts index 59da18f706..490eaf1f19 100644 --- a/invokeai/frontend/web/src/features/nodes/types/v2/common.ts +++ b/invokeai/frontend/web/src/features/nodes/types/v2/common.ts @@ -23,7 +23,6 @@ export const zSchedulerField = z.enum([ 'ddpm', 'dpmpp_2s', 'dpmpp_2m', - 'dpmpp_3s', 'dpmpp_3m', 'dpmpp_2m_sde', 'dpmpp_sde', @@ -36,7 +35,6 @@ export const zSchedulerField = z.enum([ 'deis_k', 'dpmpp_2s_k', 'dpmpp_2m_k', - 'dpmpp_3s_k', 'dpmpp_3m_k', 'dpmpp_2m_sde_k', 'dpmpp_sde_k', diff --git a/invokeai/frontend/web/src/features/parameters/types/constants.ts b/invokeai/frontend/web/src/features/parameters/types/constants.ts index 45ffa76786..ee7d4bf781 100644 --- a/invokeai/frontend/web/src/features/parameters/types/constants.ts +++ b/invokeai/frontend/web/src/features/parameters/types/constants.ts @@ -59,7 +59,6 @@ export const SCHEDULER_OPTIONS: ComboboxOption[] = [ { value: 'dpmpp_sde', label: 'DPM++ SDE' }, { value: 'dpmpp_2s', label: 'DPM++ 2S' }, { value: 'dpmpp_2m', label: 'DPM++ 2M' }, - { value: 'dpmpp_3s', label: 'DPM++ 3S' }, { value: 'dpmpp_3m', label: 'DPM++ 3M' }, { value: 'dpmpp_2m_sde', label: 'DPM++ 2M SDE' }, { value: 'heun', label: 'Heun' }, @@ -72,7 +71,6 @@ export const SCHEDULER_OPTIONS: ComboboxOption[] = [ { value: 'dpmpp_sde_k', label: 'DPM++ SDE Karras' }, { value: 'dpmpp_2s_k', label: 'DPM++ 2S Karras' }, { value: 'dpmpp_2m_k', label: 'DPM++ 2M Karras' }, - { value: 'dpmpp_3s_k', label: 'DPM++ 3S Karras' }, { value: 'dpmpp_3m_k', label: 'DPM++ 3M Karras' }, { value: 'dpmpp_2m_sde_k', label: 'DPM++ 2M SDE Karras' }, { value: 'heun_k', label: 'Heun Karras' }, diff --git a/invokeai/frontend/web/src/services/api/schema.ts b/invokeai/frontend/web/src/services/api/schema.ts index de2f841f40..eebd5dad59 100644 --- a/invokeai/frontend/web/src/services/api/schema.ts +++ b/invokeai/frontend/web/src/services/api/schema.ts @@ -3553,7 +3553,7 @@ export type components = { * @default euler * @enum {string} */ - scheduler?: "ddim" | "ddpm" | "deis" | "deis_k" | "lms" | "lms_k" | "pndm" | "heun" | "heun_k" | "euler" | "euler_k" | "euler_a" | "kdpm_2" | "kdpm_2_k" | "kdpm_2_a" | "kdpm_2_a_k" | "dpmpp_2s" | "dpmpp_2s_k" | "dpmpp_2m" | "dpmpp_2m_k" | "dpmpp_2m_sde" | "dpmpp_2m_sde_k" | "dpmpp_sde" | "dpmpp_sde_k" | "unipc" | "unipc_k" | "lcm" | "tcd" | "dpmpp_3s" | "dpmpp_3s_k" | "dpmpp_3m" | "dpmpp_3m_k"; + scheduler?: "ddim" | "ddpm" | "deis" | "deis_k" | "lms" | "lms_k" | "pndm" | "heun" | "heun_k" | "euler" | "euler_k" | "euler_a" | "kdpm_2" | "kdpm_2_k" | "kdpm_2_a" | "kdpm_2_a_k" | "dpmpp_2s" | "dpmpp_2s_k" | "dpmpp_2m" | "dpmpp_2m_k" | "dpmpp_2m_sde" | "dpmpp_2m_sde_k" | "dpmpp_sde" | "dpmpp_sde_k" | "unipc" | "unipc_k" | "lcm" | "tcd" | "dpmpp_3m" | "dpmpp_3m_k"; /** * UNet * @description UNet (scheduler, LoRAs) @@ -8553,7 +8553,7 @@ export type components = { * Scheduler * @description Default scheduler for this model */ - scheduler?: ("ddim" | "ddpm" | "deis" | "deis_k" | "lms" | "lms_k" | "pndm" | "heun" | "heun_k" | "euler" | "euler_k" | "euler_a" | "kdpm_2" | "kdpm_2_k" | "kdpm_2_a" | "kdpm_2_a_k" | "dpmpp_2s" | "dpmpp_2s_k" | "dpmpp_2m" | "dpmpp_2m_k" | "dpmpp_2m_sde" | "dpmpp_2m_sde_k" | "dpmpp_sde" | "dpmpp_sde_k" | "unipc" | "unipc_k" | "lcm" | "tcd" | "dpmpp_3s" | "dpmpp_3s_k" | "dpmpp_3m" | "dpmpp_3m_k") | null; + scheduler?: ("ddim" | "ddpm" | "deis" | "deis_k" | "lms" | "lms_k" | "pndm" | "heun" | "heun_k" | "euler" | "euler_k" | "euler_a" | "kdpm_2" | "kdpm_2_k" | "kdpm_2_a" | "kdpm_2_a_k" | "dpmpp_2s" | "dpmpp_2s_k" | "dpmpp_2m" | "dpmpp_2m_k" | "dpmpp_2m_sde" | "dpmpp_2m_sde_k" | "dpmpp_sde" | "dpmpp_sde_k" | "unipc" | "unipc_k" | "lcm" | "tcd" | "dpmpp_3m" | "dpmpp_3m_k") | null; /** * Steps * @description Default number of steps for this model @@ -11467,7 +11467,7 @@ export type components = { * @default euler * @enum {string} */ - scheduler?: "ddim" | "ddpm" | "deis" | "deis_k" | "lms" | "lms_k" | "pndm" | "heun" | "heun_k" | "euler" | "euler_k" | "euler_a" | "kdpm_2" | "kdpm_2_k" | "kdpm_2_a" | "kdpm_2_a_k" | "dpmpp_2s" | "dpmpp_2s_k" | "dpmpp_2m" | "dpmpp_2m_k" | "dpmpp_2m_sde" | "dpmpp_2m_sde_k" | "dpmpp_sde" | "dpmpp_sde_k" | "unipc" | "unipc_k" | "lcm" | "tcd" | "dpmpp_3s" | "dpmpp_3s_k" | "dpmpp_3m" | "dpmpp_3m_k"; + scheduler?: "ddim" | "ddpm" | "deis" | "deis_k" | "lms" | "lms_k" | "pndm" | "heun" | "heun_k" | "euler" | "euler_k" | "euler_a" | "kdpm_2" | "kdpm_2_k" | "kdpm_2_a" | "kdpm_2_a_k" | "dpmpp_2s" | "dpmpp_2s_k" | "dpmpp_2m" | "dpmpp_2m_k" | "dpmpp_2m_sde" | "dpmpp_2m_sde_k" | "dpmpp_sde" | "dpmpp_sde_k" | "unipc" | "unipc_k" | "lcm" | "tcd" | "dpmpp_3m" | "dpmpp_3m_k"; /** * type * @default scheduler @@ -11483,7 +11483,7 @@ export type components = { * @description Scheduler to use during inference * @enum {string} */ - scheduler: "ddim" | "ddpm" | "deis" | "deis_k" | "lms" | "lms_k" | "pndm" | "heun" | "heun_k" | "euler" | "euler_k" | "euler_a" | "kdpm_2" | "kdpm_2_k" | "kdpm_2_a" | "kdpm_2_a_k" | "dpmpp_2s" | "dpmpp_2s_k" | "dpmpp_2m" | "dpmpp_2m_k" | "dpmpp_2m_sde" | "dpmpp_2m_sde_k" | "dpmpp_sde" | "dpmpp_sde_k" | "unipc" | "unipc_k" | "lcm" | "tcd" | "dpmpp_3s" | "dpmpp_3s_k" | "dpmpp_3m" | "dpmpp_3m_k"; + scheduler: "ddim" | "ddpm" | "deis" | "deis_k" | "lms" | "lms_k" | "pndm" | "heun" | "heun_k" | "euler" | "euler_k" | "euler_a" | "kdpm_2" | "kdpm_2_k" | "kdpm_2_a" | "kdpm_2_a_k" | "dpmpp_2s" | "dpmpp_2s_k" | "dpmpp_2m" | "dpmpp_2m_k" | "dpmpp_2m_sde" | "dpmpp_2m_sde_k" | "dpmpp_sde" | "dpmpp_sde_k" | "unipc" | "unipc_k" | "lcm" | "tcd" | "dpmpp_3m" | "dpmpp_3m_k"; /** * type * @default scheduler_output @@ -13261,7 +13261,7 @@ export type components = { * @default euler * @enum {string} */ - scheduler?: "ddim" | "ddpm" | "deis" | "deis_k" | "lms" | "lms_k" | "pndm" | "heun" | "heun_k" | "euler" | "euler_k" | "euler_a" | "kdpm_2" | "kdpm_2_k" | "kdpm_2_a" | "kdpm_2_a_k" | "dpmpp_2s" | "dpmpp_2s_k" | "dpmpp_2m" | "dpmpp_2m_k" | "dpmpp_2m_sde" | "dpmpp_2m_sde_k" | "dpmpp_sde" | "dpmpp_sde_k" | "unipc" | "unipc_k" | "lcm" | "tcd" | "dpmpp_3s" | "dpmpp_3s_k" | "dpmpp_3m" | "dpmpp_3m_k"; + scheduler?: "ddim" | "ddpm" | "deis" | "deis_k" | "lms" | "lms_k" | "pndm" | "heun" | "heun_k" | "euler" | "euler_k" | "euler_a" | "kdpm_2" | "kdpm_2_k" | "kdpm_2_a" | "kdpm_2_a_k" | "dpmpp_2s" | "dpmpp_2s_k" | "dpmpp_2m" | "dpmpp_2m_k" | "dpmpp_2m_sde" | "dpmpp_2m_sde_k" | "dpmpp_sde" | "dpmpp_sde_k" | "unipc" | "unipc_k" | "lcm" | "tcd" | "dpmpp_3m" | "dpmpp_3m_k"; /** * UNet * @description UNet (scheduler, LoRAs)