Liu Song’s Projects


~/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."),