Skip to content

Commit 84a6f21

Browse files
Merge pull request #4358 from bamarillo/master
[API][Feature] Add Skip endpoint
2 parents 4b22ec4 + 7f63980 commit 84a6f21

File tree

2 files changed

+11
-11
lines changed

2 files changed

+11
-11
lines changed

modules/api/api.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ def __init__(self, app: FastAPI, queue_lock: Lock):
7272
self.app.add_api_route("/sdapi/v1/progress", self.progressapi, methods=["GET"], response_model=ProgressResponse)
7373
self.app.add_api_route("/sdapi/v1/interrogate", self.interrogateapi, methods=["POST"])
7474
self.app.add_api_route("/sdapi/v1/interrupt", self.interruptapi, methods=["POST"])
75+
self.app.add_api_route("/sdapi/v1/skip", self.skip, methods=["POST"])
7576
self.app.add_api_route("/sdapi/v1/options", self.get_config, methods=["GET"], response_model=OptionsModel)
7677
self.app.add_api_route("/sdapi/v1/options", self.set_config, methods=["POST"])
7778
self.app.add_api_route("/sdapi/v1/cmd-flags", self.get_cmd_flags, methods=["GET"], response_model=FlagsModel)
@@ -237,6 +238,9 @@ def interruptapi(self):
237238

238239
return {}
239240

241+
def skip(self):
242+
shared.state.skip()
243+
240244
def get_config(self):
241245
options = {}
242246
for key in shared.opts.data.keys():
@@ -248,14 +252,10 @@ def get_config(self):
248252

249253
return options
250254

251-
def set_config(self, req: OptionsModel):
252-
# currently req has all options fields even if you send a dict like { "send_seed": false }, which means it will
253-
# overwrite all options with default values.
254-
raise RuntimeError('Setting options via API is not supported')
255-
256-
reqDict = vars(req)
257-
for o in reqDict:
258-
setattr(shared.opts, o, reqDict[o])
255+
def set_config(self, req: Dict[str, Any]):
256+
257+
for o in req:
258+
setattr(shared.opts, o, req[o])
259259

260260
shared.opts.save(shared.config_filename)
261261
return

modules/api/models.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -176,9 +176,9 @@ class InterrogateResponse(BaseModel):
176176
caption: str = Field(default=None, title="Caption", description="The generated caption for the image.")
177177

178178
fields = {}
179-
for key, value in opts.data.items():
180-
metadata = opts.data_labels.get(key)
181-
optType = opts.typemap.get(type(value), type(value))
179+
for key, metadata in opts.data_labels.items():
180+
value = opts.data.get(key)
181+
optType = opts.typemap.get(type(metadata.default), type(value))
182182

183183
if (metadata is not None):
184184
fields.update({key: (Optional[optType], Field(

0 commit comments

Comments
 (0)