/Real-Time-Latent-Consistency-Model

Demo showcasing ~real-time Latent Consistency Model pipeline with Diffusers and a MJPEG stream server

Primary LanguageHTMLApache License 2.0Apache-2.0

title emoji colorFrom colorTo sdk pinned suggested_hardware
Real-Time Latent Consistency Model Image-to-Image ControlNet
🖼️🖼️
gray
indigo
docker
false
a10g-small

Real-Time Latent Consistency Model

This demo showcases Latent Consistency Model (LCM) using Diffusers with a MJPEG stream server.

You need a webcam to run this demo. 🤗

See a collecting with live demos here

Running Locally

You need CUDA and Python 3.10, Mac with an M1/M2/M3 chip or Intel Arc GPU

TIMEOUT: limit user session timeout
SAFETY_CHECKER: disabled if you want NSFW filter off
MAX_QUEUE_SIZE: limit number of users on current app instance
TORCH_COMPILE: enable if you want to use torch compile for faster inference works well on A100 GPUs

Install

python -m venv venv
source venv/bin/activate
pip3 install -r requirements.txt

LCM

Image to Image

uvicorn "app-img2img:app" --host 0.0.0.0 --port 7860 --reload

Image to Image ControlNet Canny

Based pipeline from taabata

uvicorn "app-controlnet:app" --host 0.0.0.0 --port 7860 --reload

Text to Image

uvicorn "app-txt2img:app" --host 0.0.0.0 --port 7860 --reload

LCM + LoRa

Using LCM-LoRA, giving it the super power of doing inference in as little as 4 steps. Learn more here or technical report

Image to Image ControlNet Canny LoRa

uvicorn "app-controlnetlora:app" --host 0.0.0.0 --port 7860 --reload

Text to Image

uvicorn "app-txt2imglora:app" --host 0.0.0.0 --port 7860 --reload

Setting environment variables

TIMEOUT=120 SAFETY_CHECKER=True MAX_QUEUE_SIZE=4 uvicorn "app-img2img:app" --host 0.0.0.0 --port 7860 --reload

If you're running locally and want to test it on Mobile Safari, the webserver needs to be served over HTTPS.

openssl req -newkey rsa:4096 -nodes -keyout key.pem -x509 -days 365 -out certificate.pem
uvicorn "app-img2img:app" --host 0.0.0.0 --port 7860 --reload --log-level info --ssl-certfile=certificate.pem --ssl-keyfile=key.pem

Docker

You need NVIDIA Container Toolkit for Docker

docker build -t lcm-live .
docker run -ti -p 7860:7860 --gpus all lcm-live

or with environment variables

docker run -ti -e TIMEOUT=0 -e SAFETY_CHECKER=False -p 7860:7860 --gpus all lcm-live

Demo on Hugging Face

https://huggingface.co/spaces/radames/Real-Time-Latent-Consistency-Model

lcm-real.mp4