Spaces:
Running
on
A100
Running
on
A100
folder renaming
Browse files- Dockerfile +1 -1
- README.md +3 -3
- app.py → app-img2img.py +6 -2
- {public → img2img}/index.html +0 -0
- public/tailwind.config.js → tailwind.config.js +0 -0
Dockerfile
CHANGED
@@ -36,4 +36,4 @@ WORKDIR $HOME/app
|
|
36 |
# Copy the current directory contents into the container at $HOME/app setting the owner to the user
|
37 |
COPY --chown=user . $HOME/app
|
38 |
|
39 |
-
CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"]
|
|
|
36 |
# Copy the current directory contents into the container at $HOME/app setting the owner to the user
|
37 |
COPY --chown=user . $HOME/app
|
38 |
|
39 |
+
CMD ["uvicorn", "app-img2img:app", "--host", "0.0.0.0", "--port", "7860"]
|
README.md
CHANGED
@@ -24,18 +24,18 @@ You need CUDA and Python
|
|
24 |
python -m venv venv
|
25 |
source venv/bin/activate
|
26 |
pip install -r requirements.txt
|
27 |
-
uvicorn "app:app" --host 0.0.0.0 --port 7860 --reload
|
28 |
```
|
29 |
or with environment variables
|
30 |
```bash
|
31 |
-
TIMEOUT=120 SAFETY_CHECKER=True MAX_QUEUE_SIZE=4 uvicorn "app:app" --host 0.0.0.0 --port 7860 --reload
|
32 |
```
|
33 |
|
34 |
If you're running locally and want to test it on Mobile Safari, the webserver needs to be served over HTTPS.
|
35 |
|
36 |
```bash
|
37 |
openssl req -newkey rsa:4096 -nodes -keyout key.pem -x509 -days 365 -out certificate.pem
|
38 |
-
uvicorn "app:app" --host 0.0.0.0 --port 7860 --reload --log-level info --ssl-certfile=certificate.pem --ssl-keyfile=key.pem
|
39 |
```
|
40 |
## Docker
|
41 |
You need NVIDIA Container Toolkit for Docker
|
|
|
24 |
python -m venv venv
|
25 |
source venv/bin/activate
|
26 |
pip install -r requirements.txt
|
27 |
+
uvicorn "app-img2img:app" --host 0.0.0.0 --port 7860 --reload
|
28 |
```
|
29 |
or with environment variables
|
30 |
```bash
|
31 |
+
TIMEOUT=120 SAFETY_CHECKER=True MAX_QUEUE_SIZE=4 uvicorn "app-img2img:app" --host 0.0.0.0 --port 7860 --reload
|
32 |
```
|
33 |
|
34 |
If you're running locally and want to test it on Mobile Safari, the webserver needs to be served over HTTPS.
|
35 |
|
36 |
```bash
|
37 |
openssl req -newkey rsa:4096 -nodes -keyout key.pem -x509 -days 365 -out certificate.pem
|
38 |
+
uvicorn "app-img2img:app" --host 0.0.0.0 --port 7860 --reload --log-level info --ssl-certfile=certificate.pem --ssl-keyfile=key.pem
|
39 |
```
|
40 |
## Docker
|
41 |
You need NVIDIA Container Toolkit for Docker
|
app.py → app-img2img.py
RENAMED
@@ -32,6 +32,7 @@ if SAFETY_CHECKER == "True":
|
|
32 |
"SimianLuo/LCM_Dreamshaper_v7",
|
33 |
custom_pipeline="latent_consistency_img2img.py",
|
34 |
custom_revision="main",
|
|
|
35 |
)
|
36 |
else:
|
37 |
pipe = DiffusionPipeline.from_pretrained(
|
@@ -39,17 +40,20 @@ else:
|
|
39 |
safety_checker=None,
|
40 |
custom_pipeline="latent_consistency_img2img.py",
|
41 |
custom_revision="main",
|
|
|
42 |
)
|
43 |
#TODO try to use tiny VAE
|
44 |
# pipe.vae = AutoencoderTiny.from_pretrained(
|
45 |
# "madebyollin/taesd", torch_dtype=torch.float16, use_safetensors=True
|
46 |
# )
|
47 |
pipe.set_progress_bar_config(disable=True)
|
48 |
-
pipe.to(torch_device="cuda", torch_dtype=torch.
|
49 |
pipe.unet.to(memory_format=torch.channels_last)
|
50 |
pipe.unet = torch.compile(pipe.unet, mode="reduce-overhead", fullgraph=True)
|
51 |
user_queue_map = {}
|
52 |
|
|
|
|
|
53 |
|
54 |
def predict(input_image, prompt, guidance_scale=8.0, strength=0.5, seed=2159232):
|
55 |
generator = torch.manual_seed(seed)
|
@@ -210,4 +214,4 @@ async def handle_websocket_data(websocket: WebSocket, user_id: uuid.UUID):
|
|
210 |
traceback.print_exc()
|
211 |
|
212 |
|
213 |
-
app.mount("/", StaticFiles(directory="
|
|
|
32 |
"SimianLuo/LCM_Dreamshaper_v7",
|
33 |
custom_pipeline="latent_consistency_img2img.py",
|
34 |
custom_revision="main",
|
35 |
+
torch_dtype=torch.float32
|
36 |
)
|
37 |
else:
|
38 |
pipe = DiffusionPipeline.from_pretrained(
|
|
|
40 |
safety_checker=None,
|
41 |
custom_pipeline="latent_consistency_img2img.py",
|
42 |
custom_revision="main",
|
43 |
+
torch_dtype=torch.float32
|
44 |
)
|
45 |
#TODO try to use tiny VAE
|
46 |
# pipe.vae = AutoencoderTiny.from_pretrained(
|
47 |
# "madebyollin/taesd", torch_dtype=torch.float16, use_safetensors=True
|
48 |
# )
|
49 |
pipe.set_progress_bar_config(disable=True)
|
50 |
+
pipe.to(torch_device="cuda", torch_dtype=torch.float32)
|
51 |
pipe.unet.to(memory_format=torch.channels_last)
|
52 |
pipe.unet = torch.compile(pipe.unet, mode="reduce-overhead", fullgraph=True)
|
53 |
user_queue_map = {}
|
54 |
|
55 |
+
# for torch.compile
|
56 |
+
pipe(prompt="warmup", image=[Image.new("RGB", (512, 512))])
|
57 |
|
58 |
def predict(input_image, prompt, guidance_scale=8.0, strength=0.5, seed=2159232):
|
59 |
generator = torch.manual_seed(seed)
|
|
|
214 |
traceback.print_exc()
|
215 |
|
216 |
|
217 |
+
app.mount("/", StaticFiles(directory="img2img", html=True), name="public")
|
{public → img2img}/index.html
RENAMED
File without changes
|
public/tailwind.config.js → tailwind.config.js
RENAMED
File without changes
|