Skip to content

Commit 5cb567c

Browse files
committed
Add schedulers API endpoint
1 parent adadb4e commit 5cb567c

File tree

2 files changed

+20
-1
lines changed

2 files changed

+20
-1
lines changed

modules/api/api.py

+13-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
from secrets import compare_digest
1818

1919
import modules.shared as shared
20-
from modules import sd_samplers, deepbooru, sd_hijack, images, scripts, ui, postprocessing, errors, restart, shared_items, script_callbacks, infotext_utils, sd_models
20+
from modules import sd_samplers, deepbooru, sd_hijack, images, scripts, ui, postprocessing, errors, restart, shared_items, script_callbacks, infotext_utils, sd_models, sd_schedulers
2121
from modules.api import models
2222
from modules.shared import opts
2323
from modules.processing import StableDiffusionProcessingTxt2Img, StableDiffusionProcessingImg2Img, process_images
@@ -221,6 +221,7 @@ def __init__(self, app: FastAPI, queue_lock: Lock):
221221
self.add_api_route("/sdapi/v1/options", self.set_config, methods=["POST"])
222222
self.add_api_route("/sdapi/v1/cmd-flags", self.get_cmd_flags, methods=["GET"], response_model=models.FlagsModel)
223223
self.add_api_route("/sdapi/v1/samplers", self.get_samplers, methods=["GET"], response_model=list[models.SamplerItem])
224+
self.add_api_route("/sdapi/v1/schedulers", self.get_schedulers, methods=["GET"], response_model=list[models.SchedulerItem])
224225
self.add_api_route("/sdapi/v1/upscalers", self.get_upscalers, methods=["GET"], response_model=list[models.UpscalerItem])
225226
self.add_api_route("/sdapi/v1/latent-upscale-modes", self.get_latent_upscale_modes, methods=["GET"], response_model=list[models.LatentUpscalerModeItem])
226227
self.add_api_route("/sdapi/v1/sd-models", self.get_sd_models, methods=["GET"], response_model=list[models.SDModelItem])
@@ -683,6 +684,17 @@ def get_cmd_flags(self):
683684
def get_samplers(self):
684685
return [{"name": sampler[0], "aliases":sampler[2], "options":sampler[3]} for sampler in sd_samplers.all_samplers]
685686

687+
def get_schedulers(self):
688+
return [
689+
{
690+
"name": scheduler.name,
691+
"label": scheduler.label,
692+
"aliases": scheduler.aliases,
693+
"default_rho": scheduler.default_rho,
694+
"need_inner_model": scheduler.need_inner_model,
695+
}
696+
for scheduler in sd_schedulers.schedulers]
697+
686698
def get_upscalers(self):
687699
return [
688700
{

modules/api/models.py

+7
Original file line numberDiff line numberDiff line change
@@ -235,6 +235,13 @@ class SamplerItem(BaseModel):
235235
aliases: list[str] = Field(title="Aliases")
236236
options: dict[str, str] = Field(title="Options")
237237

238+
class SchedulerItem(BaseModel):
239+
name: str = Field(title="Name")
240+
label: str = Field(title="Label")
241+
aliases: Optional[list[str]] = Field(title="Aliases")
242+
default_rho: Optional[float] = Field(title="Default Rho")
243+
need_inner_model: Optional[bool] = Field(title="Needs Inner Model")
244+
238245
class UpscalerItem(BaseModel):
239246
name: str = Field(title="Name")
240247
model_name: Optional[str] = Field(title="Model Name")

0 commit comments

Comments
 (0)