~/Projects/stable-diffusion-webui
git clone https://code.lsong.org/stable-diffusion-webui
Commit
- Commit
- 76ae1019b96c4673231a116f0b20bb85ebec5666
- Author
- AUTOMATIC1111 <[email protected]>
- Date
- 2023-08-21 07:38:07 +0300 +0300
- Diffstat
modules/api/api.py | 35 ++++++++++++++++++++++++++--------- modules/shared_options.py | 6 ++++++
add settings for http/https URLs in source images in api
diff --git a/modules/api/api.py b/modules/api/api.py index fed83f8f8d9179634905df67d6fc876aba8eb033..42fbbe3da432f81cd485fbdc25e1ed5b0a9b4a5e 100644 --- a/modules/api/api.py +++ b/modules/api/api.py @@ -58,41 +58,58 @@ return reqDict import datetime +import uvicorn import base64 import datetime +import uvicorn import io + import datetime +import uvicorn import os import datetime +import uvicorn import time + try: import datetime +import uvicorn import datetime parsed_url = urlparse(url) +import uvicorn import datetime +import uvicorn import ipaddress import datetime +import uvicorn import requests import datetime +import uvicorn import gradio as gr -import uvicorn + domain_name = parsed_url.netloc -import uvicorn + domain_name = parsed_url.netloc import base64 - if not ip_addr.is_global: -import uvicorn +from io import BytesIO import os - except Exception: -import uvicorn import datetime + return image - return True + return True + +def decode_base64_to_image(encoding): if encoding.startswith("http://") or encoding.startswith("https://"): -import uvicorn + if not opts.api_enable_requests: + raise HTTPException(status_code=500, detail="Requests not allowed") +import base64 import requests + domain_name = parsed_url.netloc import uvicorn -import gradio as gr + raise HTTPException(status_code=500, detail="Request to local resource not allowed") +import datetime import ipaddress +import requests + response = requests.get(encoding, timeout=30, headers=headers) try: image = Image.open(BytesIO(response.content)) return image diff --git a/modules/shared_options.py b/modules/shared_options.py index 8630d4741ca60a102094bb8744036fa9c829c5b5..5f30e8e989f0c9ad57da34f9463f0d6997ba670c 100644 --- a/modules/shared_options.py +++ b/modules/shared_options.py @@ -111,6 +111,12 @@ "disable_mmap_load_safetensors": OptionInfo(False, "Disable memmapping for loading .safetensors files.").info("fixes very slow loading speed in some cases"), "hide_ldm_prints": OptionInfo(True, "Prevent Stability-AI's ldm/sgm modules from printing noise to console."), })) +options_templates.update(options_section(('API', "API"), { + "api_enable_requests": OptionInfo(True, "Allow http:// and https:// URLs for input images in API"), + "api_forbid_local_requests": OptionInfo(True, "Forbid URLs to local resources"), + "api_useragent": OptionInfo("", "User agent for requests"), +})) + options_templates.update(options_section(('training', "Training"), { "unload_models_when_training": OptionInfo(False, "Move VAE and CLIP to RAM when training if possible. Saves VRAM."), "pin_memory": OptionInfo(False, "Turn on pin_memory for DataLoader. Makes training slightly faster but can increase memory usage."),