Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
S
Stable Diffusion Webui
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
novelai-storage
Stable Diffusion Webui
Commits
a5f66b50
Commit
a5f66b50
authored
Jul 18, 2024
by
v0xie
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feature: beta scheduler
parent
b2453d28
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
13 additions
and
0 deletions
+13
-0
modules/sd_schedulers.py
modules/sd_schedulers.py
+13
-0
No files found.
modules/sd_schedulers.py
View file @
a5f66b50
...
...
@@ -2,6 +2,7 @@ import dataclasses
import
torch
import
k_diffusion
import
numpy
as
np
from
scipy
import
stats
from
modules
import
shared
...
...
@@ -115,6 +116,17 @@ def ddim_scheduler(n, sigma_min, sigma_max, inner_model, device):
return
torch
.
FloatTensor
(
sigs
)
.
to
(
device
)
def
beta_scheduler
(
n
,
sigma_min
,
sigma_max
,
inner_model
,
device
):
# From "Beta Sampling is All You Need" [arXiv:2407.12173] (Lee et. al, 2024) """
alpha
=
0.6
beta
=
0.6
timesteps
=
1
-
np
.
linspace
(
0
,
1
,
n
)
timesteps
=
[
stats
.
beta
.
ppf
(
x
,
alpha
,
beta
)
for
x
in
timesteps
]
sigmas
=
[
sigma_min
+
((
x
)
*
(
sigma_max
-
sigma_min
))
for
x
in
timesteps
]
+
[
0.0
]
sigmas
=
torch
.
FloatTensor
(
sigmas
)
.
to
(
device
)
return
sigmas
schedulers
=
[
Scheduler
(
'automatic'
,
'Automatic'
,
None
),
Scheduler
(
'uniform'
,
'Uniform'
,
uniform
,
need_inner_model
=
True
),
...
...
@@ -127,6 +139,7 @@ schedulers = [
Scheduler
(
'simple'
,
'Simple'
,
simple_scheduler
,
need_inner_model
=
True
),
Scheduler
(
'normal'
,
'Normal'
,
normal_scheduler
,
need_inner_model
=
True
),
Scheduler
(
'ddim'
,
'DDIM'
,
ddim_scheduler
,
need_inner_model
=
True
),
Scheduler
(
'beta'
,
'Beta'
,
beta_scheduler
,
need_inner_model
=
True
),
]
schedulers_map
=
{
**
{
x
.
name
:
x
for
x
in
schedulers
},
**
{
x
.
label
:
x
for
x
in
schedulers
}}
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