Skip to content

Commit 55e810e

Browse files
committed
Add dpmpp_3 schedulers
1 parent 86a92bb commit 55e810e

File tree

5 files changed

+31
-11
lines changed

5 files changed

+31
-11
lines changed

invokeai/backend/stable_diffusion/schedulers/schedulers.py

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,10 @@
4343
"dpmpp_2m_k",
4444
"dpmpp_2m_sde",
4545
"dpmpp_2m_sde_k",
46+
"dpmpp_3s",
47+
"dpmpp_3s_k",
48+
"dpmpp_3m",
49+
"dpmpp_3m_k",
4650
"dpmpp_sde",
4751
"dpmpp_sde_k",
4852
"unipc",
@@ -68,12 +72,16 @@
6872
"kdpm_2_k": (KDPM2DiscreteScheduler, {"use_karras_sigmas": True}),
6973
"kdpm_2_a": (KDPM2AncestralDiscreteScheduler, {"use_karras_sigmas": False}),
7074
"kdpm_2_a_k": (KDPM2AncestralDiscreteScheduler, {"use_karras_sigmas": True}),
71-
"dpmpp_2s": (DPMSolverSinglestepScheduler, {"use_karras_sigmas": False}),
72-
"dpmpp_2s_k": (DPMSolverSinglestepScheduler, {"use_karras_sigmas": True}),
73-
"dpmpp_2m": (DPMSolverMultistepScheduler, {"use_karras_sigmas": False}),
74-
"dpmpp_2m_k": (DPMSolverMultistepScheduler, {"use_karras_sigmas": True}),
75-
"dpmpp_2m_sde": (DPMSolverMultistepScheduler, {"use_karras_sigmas": False, "algorithm_type": "sde-dpmsolver++"}),
76-
"dpmpp_2m_sde_k": (DPMSolverMultistepScheduler, {"use_karras_sigmas": True, "algorithm_type": "sde-dpmsolver++"}),
75+
"dpmpp_2s": (DPMSolverSinglestepScheduler, {"use_karras_sigmas": False, "solver_order": 2}),
76+
"dpmpp_2s_k": (DPMSolverSinglestepScheduler, {"use_karras_sigmas": True, "solver_order": 2}),
77+
"dpmpp_2m": (DPMSolverMultistepScheduler, {"use_karras_sigmas": False, "solver_order": 2}),
78+
"dpmpp_2m_k": (DPMSolverMultistepScheduler, {"use_karras_sigmas": True, "solver_order": 2}),
79+
"dpmpp_2m_sde": (DPMSolverMultistepScheduler, {"use_karras_sigmas": False, "solver_order": 2, "algorithm_type": "sde-dpmsolver++"}),
80+
"dpmpp_2m_sde_k": (DPMSolverMultistepScheduler, {"use_karras_sigmas": True, "solver_order": 2, "algorithm_type": "sde-dpmsolver++"}),
81+
"dpmpp_3s": (DPMSolverSinglestepScheduler, {"use_karras_sigmas": False, "solver_order": 3}),
82+
"dpmpp_3s_k": (DPMSolverSinglestepScheduler, {"use_karras_sigmas": True, "solver_order": 3}),
83+
"dpmpp_3m": (DPMSolverMultistepScheduler, {"use_karras_sigmas": False, "solver_order": 3}),
84+
"dpmpp_3m_k": (DPMSolverMultistepScheduler, {"use_karras_sigmas": True, "solver_order": 3}),
7785
"dpmpp_sde": (DPMSolverSDEScheduler, {"use_karras_sigmas": False, "noise_sampler_seed": 0}),
7886
"dpmpp_sde_k": (DPMSolverSDEScheduler, {"use_karras_sigmas": True, "noise_sampler_seed": 0}),
7987
"unipc": (UniPCMultistepScheduler, {"use_karras_sigmas": False, "cpu_only": True}),

invokeai/frontend/web/src/features/nodes/types/common.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ export const zSchedulerField = z.enum([
3232
'ddpm',
3333
'dpmpp_2s',
3434
'dpmpp_2m',
35+
'dpmpp_3s',
36+
'dpmpp_3m',
3537
'dpmpp_2m_sde',
3638
'dpmpp_sde',
3739
'heun',
@@ -43,6 +45,8 @@ export const zSchedulerField = z.enum([
4345
'deis_k',
4446
'dpmpp_2s_k',
4547
'dpmpp_2m_k',
48+
'dpmpp_3s_k',
49+
'dpmpp_3m_k',
4650
'dpmpp_2m_sde_k',
4751
'dpmpp_sde_k',
4852
'heun_k',

invokeai/frontend/web/src/features/nodes/types/v2/common.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ export const zSchedulerField = z.enum([
2323
'ddpm',
2424
'dpmpp_2s',
2525
'dpmpp_2m',
26+
'dpmpp_3s',
27+
'dpmpp_3m',
2628
'dpmpp_2m_sde',
2729
'dpmpp_sde',
2830
'heun',
@@ -34,6 +36,8 @@ export const zSchedulerField = z.enum([
3436
'deis_k',
3537
'dpmpp_2s_k',
3638
'dpmpp_2m_k',
39+
'dpmpp_3s_k',
40+
'dpmpp_3m_k',
3741
'dpmpp_2m_sde_k',
3842
'dpmpp_sde_k',
3943
'heun_k',

invokeai/frontend/web/src/features/parameters/types/constants.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,8 @@ export const SCHEDULER_OPTIONS: ComboboxOption[] = [
5959
{ value: 'dpmpp_sde', label: 'DPM++ SDE' },
6060
{ value: 'dpmpp_2s', label: 'DPM++ 2S' },
6161
{ value: 'dpmpp_2m', label: 'DPM++ 2M' },
62+
{ value: 'dpmpp_3s', label: 'DPM++ 3S' },
63+
{ value: 'dpmpp_3m', label: 'DPM++ 3M' },
6264
{ value: 'dpmpp_2m_sde', label: 'DPM++ 2M SDE' },
6365
{ value: 'heun', label: 'Heun' },
6466
{ value: 'kdpm_2', label: 'KDPM 2' },
@@ -70,6 +72,8 @@ export const SCHEDULER_OPTIONS: ComboboxOption[] = [
7072
{ value: 'dpmpp_sde_k', label: 'DPM++ SDE Karras' },
7173
{ value: 'dpmpp_2s_k', label: 'DPM++ 2S Karras' },
7274
{ value: 'dpmpp_2m_k', label: 'DPM++ 2M Karras' },
75+
{ value: 'dpmpp_3s_k', label: 'DPM++ 3S Karras' },
76+
{ value: 'dpmpp_3m_k', label: 'DPM++ 3M Karras' },
7377
{ value: 'dpmpp_2m_sde_k', label: 'DPM++ 2M SDE Karras' },
7478
{ value: 'heun_k', label: 'Heun Karras' },
7579
{ value: 'kdpm_2_k', label: 'KDPM 2 Karras' },

invokeai/frontend/web/src/services/api/schema.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3553,7 +3553,7 @@ export type components = {
35533553
* @default euler
35543554
* @enum {string}
35553555
*/
3556-
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";
3556+
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";
35573557
/**
35583558
* UNet
35593559
* @description UNet (scheduler, LoRAs)
@@ -8553,7 +8553,7 @@ export type components = {
85538553
* Scheduler
85548554
* @description Default scheduler for this model
85558555
*/
8556-
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") | null;
8556+
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;
85578557
/**
85588558
* Steps
85598559
* @description Default number of steps for this model
@@ -11467,7 +11467,7 @@ export type components = {
1146711467
* @default euler
1146811468
* @enum {string}
1146911469
*/
11470-
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";
11470+
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";
1147111471
/**
1147211472
* type
1147311473
* @default scheduler
@@ -11483,7 +11483,7 @@ export type components = {
1148311483
* @description Scheduler to use during inference
1148411484
* @enum {string}
1148511485
*/
11486-
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";
11486+
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";
1148711487
/**
1148811488
* type
1148911489
* @default scheduler_output
@@ -13261,7 +13261,7 @@ export type components = {
1326113261
* @default euler
1326213262
* @enum {string}
1326313263
*/
13264-
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";
13264+
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";
1326513265
/**
1326613266
* UNet
1326713267
* @description UNet (scheduler, LoRAs)

0 commit comments

Comments
 (0)