Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
chenpangpang
ComfyUI
Commits
644a3ae5
"...git@developer.sourcefind.cn:wangsen/paddle_dbnet.git" did not exist on "4b214948224a3b2c98681b151e58d69fe6787317"
Commit
644a3ae5
authored
Apr 20, 2024
by
comfyanonymous
Browse files
Implement Align Your Steps as a AlignYourStepsScheduler node.
parent
133dc335
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
46 additions
and
0 deletions
+46
-0
comfy_extras/nodes_align_your_steps.py
comfy_extras/nodes_align_your_steps.py
+45
-0
nodes.py
nodes.py
+1
-0
No files found.
comfy_extras/nodes_align_your_steps.py
0 → 100644
View file @
644a3ae5
#from: https://research.nvidia.com/labs/toronto-ai/AlignYourSteps/howto.html
import
numpy
as
np
import
torch
def
loglinear_interp
(
t_steps
,
num_steps
):
"""
Performs log-linear interpolation of a given array of decreasing numbers.
"""
xs
=
np
.
linspace
(
0
,
1
,
len
(
t_steps
))
ys
=
np
.
log
(
t_steps
[::
-
1
])
new_xs
=
np
.
linspace
(
0
,
1
,
num_steps
)
new_ys
=
np
.
interp
(
new_xs
,
xs
,
ys
)
interped_ys
=
np
.
exp
(
new_ys
)[::
-
1
].
copy
()
return
interped_ys
NOISE_LEVELS
=
{
"SD1"
:
[
14.6146412293
,
6.4745760956
,
3.8636745985
,
2.6946151520
,
1.8841921177
,
1.3943805092
,
0.9642583904
,
0.6523686016
,
0.3977456272
,
0.1515232662
,
0.0291671582
],
"SDXL"
:[
14.6146412293
,
6.3184485287
,
3.7681790315
,
2.1811480769
,
1.3405244945
,
0.8620721141
,
0.5550693289
,
0.3798540708
,
0.2332364134
,
0.1114188177
,
0.0291671582
],
"SVD"
:
[
700.00
,
54.5
,
15.886
,
7.977
,
4.248
,
1.789
,
0.981
,
0.403
,
0.173
,
0.034
,
0.002
]}
class
AlignYourStepsScheduler
:
@
classmethod
def
INPUT_TYPES
(
s
):
return
{
"required"
:
{
"model_type"
:
([
"SD1"
,
"SDXL"
,
"SVD"
],
),
"steps"
:
(
"INT"
,
{
"default"
:
10
,
"min"
:
10
,
"max"
:
10000
}),
}
}
RETURN_TYPES
=
(
"SIGMAS"
,)
CATEGORY
=
"sampling/custom_sampling/schedulers"
FUNCTION
=
"get_sigmas"
def
get_sigmas
(
self
,
model_type
,
steps
):
sigmas
=
NOISE_LEVELS
[
model_type
][:]
if
(
steps
+
1
)
!=
len
(
sigmas
):
sigmas
=
loglinear_interp
(
sigmas
,
steps
+
1
)
sigmas
[
-
1
]
=
0
return
(
torch
.
FloatTensor
(
sigmas
),
)
NODE_CLASS_MAPPINGS
=
{
"AlignYourStepsScheduler"
:
AlignYourStepsScheduler
,
}
nodes.py
View file @
644a3ae5
...
@@ -1943,6 +1943,7 @@ def init_custom_nodes():
...
@@ -1943,6 +1943,7 @@ def init_custom_nodes():
"nodes_ip2p.py"
,
"nodes_ip2p.py"
,
"nodes_model_merging_model_specific.py"
,
"nodes_model_merging_model_specific.py"
,
"nodes_pag.py"
,
"nodes_pag.py"
,
"nodes_align_your_steps.py"
,
]
]
import_failed
=
[]
import_failed
=
[]
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment