radames commited on
Commit
242d59e
1 Parent(s): 76336af

update readme

Browse files
Files changed (2) hide show
  1. README.md +68 -30
  2. server/config.py +0 -5
README.md CHANGED
@@ -27,38 +27,39 @@ You need CUDA and Python 3.10, Node > 19, Mac with an M1/M2/M3 chip or Intel Arc
27
  ```bash
28
  python -m venv venv
29
  source venv/bin/activate
30
- pip3 install -r requirements.txt
31
  cd frontend && npm install && npm run build && cd ..
32
- # fastest pipeline
33
- python run.py --reload --pipeline img2imgSD21Turbo
34
  ```
35
 
36
- # Pipelines
37
- You can build your own pipeline following examples here [here](pipelines),
38
- don't forget to fuild the frontend first
39
  ```bash
40
  cd frontend && npm install && npm run build && cd ..
41
  ```
42
 
 
 
 
 
43
  # LCM
44
  ### Image to Image
45
 
46
  ```bash
47
- python run.py --reload --pipeline img2img
48
  ```
49
 
50
  # LCM
51
  ### Text to Image
52
 
53
  ```bash
54
- python run.py --reload --pipeline txt2img
55
  ```
56
 
57
  ### Image to Image ControlNet Canny
58
 
59
-
60
  ```bash
61
- python run.py --reload --pipeline controlnet
62
  ```
63
 
64
 
@@ -67,39 +68,73 @@ python run.py --reload --pipeline controlnet
67
  Using LCM-LoRA, giving it the super power of doing inference in as little as 4 steps. [Learn more here](https://huggingface.co/blog/lcm_lora) or [technical report](https://huggingface.co/papers/2311.05556)
68
 
69
 
70
-
71
  ### Image to Image ControlNet Canny LoRa
72
 
73
  ```bash
74
- python run.py --reload --pipeline controlnetLoraSD15
75
  ```
76
  or SDXL, note that SDXL is slower than SD15 since the inference runs on 1024x1024 images
77
 
78
  ```bash
79
- python run.py --reload --pipeline controlnetLoraSDXL
80
  ```
81
 
82
  ### Text to Image
83
 
84
  ```bash
85
- python run.py --reload --pipeline txt2imgLora
86
  ```
87
 
88
- or
89
-
90
  ```bash
91
- python run.py --reload --pipeline txt2imgLoraSDXL
92
  ```
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
93
 
94
 
95
  ### Setting environment variables
96
 
97
 
98
- `TIMEOUT`: limit user session timeout
99
- `SAFETY_CHECKER`: disabled if you want NSFW filter off
100
- `MAX_QUEUE_SIZE`: limit number of users on current app instance
101
- `TORCH_COMPILE`: enable if you want to use torch compile for faster inference works well on A100 GPUs
102
- `USE_TAESD`: enable if you want to use Autoencoder Tiny
 
 
 
 
 
 
 
 
 
 
103
 
104
  If you run using `bash build-run.sh` you can set `PIPELINE` variables to choose the pipeline you want to run
105
 
@@ -110,14 +145,14 @@ PIPELINE=txt2imgLoraSDXL bash build-run.sh
110
  and setting environment variables
111
 
112
  ```bash
113
- TIMEOUT=120 SAFETY_CHECKER=True MAX_QUEUE_SIZE=4 python run.py --reload --pipeline txt2imgLoraSDXL
114
  ```
115
 
116
  If you're running locally and want to test it on Mobile Safari, the webserver needs to be served over HTTPS, or follow this instruction on my [comment](https://github.com/radames/Real-Time-Latent-Consistency-Model/issues/17#issuecomment-1811957196)
117
 
118
  ```bash
119
  openssl req -newkey rsa:4096 -nodes -keyout key.pem -x509 -days 365 -out certificate.pem
120
- python run.py --reload --ssl-certfile=certificate.pem --ssl-keyfile=key.pem
121
  ```
122
 
123
  ## Docker
@@ -141,15 +176,18 @@ or with environment variables
141
  ```bash
142
  docker run -ti -e PIPELINE=txt2imgLoraSDXL -p 7860:7860 --gpus all lcm-live
143
  ```
144
- # Development Mode
145
-
146
 
147
- ```bash
148
- python run.py --reload
149
- ```
150
 
151
  # Demo on Hugging Face
152
 
153
- https://huggingface.co/spaces/radames/Real-Time-Latent-Consistency-Model
 
 
 
 
 
 
 
 
154
 
155
  https://github.com/radames/Real-Time-Latent-Consistency-Model/assets/102277/c4003ac5-e7ff-44c0-97d3-464bb659de70
 
27
  ```bash
28
  python -m venv venv
29
  source venv/bin/activate
30
+ pip3 install -r server/requirements.txt
31
  cd frontend && npm install && npm run build && cd ..
32
+ python server/main.py --reload --pipeline img2imgSDTurbo
 
33
  ```
34
 
35
+ Don't forget to fuild the frontend!!!
36
+
 
37
  ```bash
38
  cd frontend && npm install && npm run build && cd ..
39
  ```
40
 
41
+ # Pipelines
42
+ You can build your own pipeline following examples here [here](pipelines),
43
+
44
+
45
  # LCM
46
  ### Image to Image
47
 
48
  ```bash
49
+ python server/main.py --reload --pipeline img2img
50
  ```
51
 
52
  # LCM
53
  ### Text to Image
54
 
55
  ```bash
56
+ python server/main.py --reload --pipeline txt2img
57
  ```
58
 
59
  ### Image to Image ControlNet Canny
60
 
 
61
  ```bash
62
+ python server/main.py --reload --pipeline controlnet
63
  ```
64
 
65
 
 
68
  Using LCM-LoRA, giving it the super power of doing inference in as little as 4 steps. [Learn more here](https://huggingface.co/blog/lcm_lora) or [technical report](https://huggingface.co/papers/2311.05556)
69
 
70
 
 
71
  ### Image to Image ControlNet Canny LoRa
72
 
73
  ```bash
74
+ python server/main.py --reload --pipeline controlnetLoraSD15
75
  ```
76
  or SDXL, note that SDXL is slower than SD15 since the inference runs on 1024x1024 images
77
 
78
  ```bash
79
+ python server/main.py --reload --pipeline controlnetLoraSDXL
80
  ```
81
 
82
  ### Text to Image
83
 
84
  ```bash
85
+ python server/main.py --reload --pipeline txt2imgLora
86
  ```
87
 
 
 
88
  ```bash
89
+ python server/main.py --reload --pipeline txt2imgLoraSDXL
90
  ```
91
+ # Available Pipelines
92
+
93
+ #### [LCM](https://huggingface.co/SimianLuo/LCM_Dreamshaper_v7)
94
+
95
+ `img2img`
96
+ `txt2img`
97
+ `controlnet`
98
+ `txt2imgLora`
99
+ `controlnetLoraSD15`
100
+
101
+ #### [SD15](https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0)
102
+ `controlnetLoraSDXL`
103
+ `txt2imgLoraSDXL`
104
+
105
+ #### [SDXL Turbo](https://huggingface.co/stabilityai/sd-xl-turbo)
106
+
107
+ `img2imgSDXLTurbo`
108
+ `controlnetSDXLTurbo`
109
+
110
+
111
+ #### [SDTurbo](https://huggingface.co/stabilityai/sd-turbo)
112
+ `img2imgSDTurbo`
113
+ `controlnetSDTurbo`
114
+
115
+ #### [Segmind-Vega](https://huggingface.co/segmind/Segmind-Vega)
116
+ `controlnetSegmindVegaRT`
117
+ `img2imgSegmindVegaRT`
118
 
119
 
120
  ### Setting environment variables
121
 
122
 
123
+ * `--host`: Host address (default: 0.0.0.0)
124
+ * `--port`: Port number (default: 7860)
125
+ * `--reload`: Reload code on change
126
+ * `--max-queue-size`: Maximum queue size (optional)
127
+ * `--timeout`: Timeout period (optional)
128
+ * `--safety-checker`: Enable Safety Checker (optional)
129
+ * `--torch-compile`: Use Torch Compile
130
+ * `--use-taesd` / `--no-taesd`: Use Tiny Autoencoder
131
+ * `--pipeline`: Pipeline to use (default: "txt2img")
132
+ * `--ssl-certfile`: SSL Certificate File (optional)
133
+ * `--ssl-keyfile`: SSL Key File (optional)
134
+ * `--debug`: Print Inference time
135
+ * `--compel`: Compel option
136
+ * `--sfast`: Enable Stable Fast
137
+ * `--oneflow`: Enable OneFlow
138
 
139
  If you run using `bash build-run.sh` you can set `PIPELINE` variables to choose the pipeline you want to run
140
 
 
145
  and setting environment variables
146
 
147
  ```bash
148
+ TIMEOUT=120 SAFETY_CHECKER=True MAX_QUEUE_SIZE=4 python server/main.py --reload --pipeline txt2imgLoraSDXL
149
  ```
150
 
151
  If you're running locally and want to test it on Mobile Safari, the webserver needs to be served over HTTPS, or follow this instruction on my [comment](https://github.com/radames/Real-Time-Latent-Consistency-Model/issues/17#issuecomment-1811957196)
152
 
153
  ```bash
154
  openssl req -newkey rsa:4096 -nodes -keyout key.pem -x509 -days 365 -out certificate.pem
155
+ python server/main.py --reload --ssl-certfile=certificate.pem --ssl-keyfile=key.pem
156
  ```
157
 
158
  ## Docker
 
176
  ```bash
177
  docker run -ti -e PIPELINE=txt2imgLoraSDXL -p 7860:7860 --gpus all lcm-live
178
  ```
 
 
179
 
 
 
 
180
 
181
  # Demo on Hugging Face
182
 
183
+
184
+ * [radames/Real-Time-Latent-Consistency-Model](https://huggingface.co/spaces/radames/Real-Time-Latent-Consistency-Model)
185
+ * [radames/Real-Time-SD-Turbo](https://huggingface.co/spaces/radames/Real-Time-SD-Turbo)
186
+ * [latent-consistency/Real-Time-LCM-ControlNet-Lora-SD1.5](https://huggingface.co/spaces/latent-consistency/Real-Time-LCM-ControlNet-Lora-SD1.5)
187
+ * [latent-consistency/Real-Time-LCM-Text-to-Image-Lora-SD1.5](https://huggingface.co/spaces/latent-consistency/Real-Time-LCM-Text-to-Image-Lora-SD1.5)
188
+ * [radames/Real-Time-Latent-Consistency-Model-Text-To-Image](https://huggingface.co/spaces/radames/Real-Time-Latent-Consistency-Model-Text-To-Image)
189
+
190
+
191
+
192
 
193
  https://github.com/radames/Real-Time-Latent-Consistency-Model/assets/102277/c4003ac5-e7ff-44c0-97d3-464bb659de70
server/config.py CHANGED
@@ -7,7 +7,6 @@ class Args(NamedTuple):
7
  host: str
8
  port: int
9
  reload: bool
10
- mode: str
11
  max_queue_size: int
12
  timeout: float
13
  safety_checker: bool
@@ -35,15 +34,11 @@ TORCH_COMPILE = os.environ.get("TORCH_COMPILE", None) == "True"
35
  USE_TAESD = os.environ.get("USE_TAESD", "True") == "True"
36
  default_host = os.getenv("HOST", "0.0.0.0")
37
  default_port = int(os.getenv("PORT", "7860"))
38
- default_mode = os.getenv("MODE", "default")
39
 
40
  parser = argparse.ArgumentParser(description="Run the app")
41
  parser.add_argument("--host", type=str, default=default_host, help="Host address")
42
  parser.add_argument("--port", type=int, default=default_port, help="Port number")
43
  parser.add_argument("--reload", action="store_true", help="Reload code on change")
44
- parser.add_argument(
45
- "--mode", type=str, default=default_mode, help="App Inferece Mode: txt2img, img2img"
46
- )
47
  parser.add_argument(
48
  "--max-queue-size",
49
  dest="max_queue_size",
 
7
  host: str
8
  port: int
9
  reload: bool
 
10
  max_queue_size: int
11
  timeout: float
12
  safety_checker: bool
 
34
  USE_TAESD = os.environ.get("USE_TAESD", "True") == "True"
35
  default_host = os.getenv("HOST", "0.0.0.0")
36
  default_port = int(os.getenv("PORT", "7860"))
 
37
 
38
  parser = argparse.ArgumentParser(description="Run the app")
39
  parser.add_argument("--host", type=str, default=default_host, help="Host address")
40
  parser.add_argument("--port", type=int, default=default_port, help="Port number")
41
  parser.add_argument("--reload", action="store_true", help="Reload code on change")
 
 
 
42
  parser.add_argument(
43
  "--max-queue-size",
44
  dest="max_queue_size",