Spaces:
Runtime error
Runtime error
| title: Real-Time Latent Consistency Model Image-to-Image ControlNet | |
| emoji: 🖼️🖼️ | |
| colorFrom: gray | |
| colorTo: indigo | |
| sdk: docker | |
| pinned: false | |
| suggested_hardware: a10g-small | |
| disable_embedding: true | |
| # Real-Time Latent Consistency Model | |
| This demo showcases [Latent Consistency Model (LCM)](https://latent-consistency-models.github.io/) using [Diffusers](https://huggingface.co/docs/diffusers/using-diffusers/lcm) with a MJPEG stream server. You can read more about LCM + LoRAs with diffusers [here](https://huggingface.co/blog/lcm_lora). | |
| You need a webcam to run this demo. 🤗 | |
| See a collecting with live demos [here](https://huggingface.co/collections/latent-consistency/latent-consistency-model-demos-654e90c52adb0688a0acbe6f) | |
| ## Running Locally | |
| You need CUDA and Python 3.10, Node > 19, Mac with an M1/M2/M3 chip or Intel Arc GPU | |
| ## Install | |
| ```bash | |
| uv venv --python=3.10 | |
| source .venv/bin/activate | |
| uv pip install -r server/requirements.txt | |
| cd frontend && npm install && npm run build && cd .. | |
| python server/main.py --reload --pipeline img2imgSDTurbo | |
| ``` | |
| Don't forget to fuild the frontend!!! | |
| ```bash | |
| cd frontend && npm install && npm run build && cd .. | |
| ``` | |
| # Pipelines | |
| You can build your own pipeline following examples here [here](pipelines), | |
| # LCM | |
| ### Image to Image | |
| ```bash | |
| python server/main.py --reload --pipeline img2img | |
| ``` | |
| # LCM | |
| ### Text to Image | |
| ```bash | |
| python server/main.py --reload --pipeline txt2img | |
| ``` | |
| ### Image to Image ControlNet Canny | |
| ```bash | |
| python server/main.py --reload --pipeline controlnet | |
| ``` | |
| # LCM + LoRa | |
| 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) | |
| ### Image to Image ControlNet Canny LoRa | |
| ```bash | |
| python server/main.py --reload --pipeline controlnetLoraSD15 | |
| ``` | |
| or SDXL, note that SDXL is slower than SD15 since the inference runs on 1024x1024 images | |
| ```bash | |
| python server/main.py --reload --pipeline controlnetLoraSDXL | |
| ``` | |
| ### Text to Image | |
| ```bash | |
| python server/main.py --reload --pipeline txt2imgLora | |
| ``` | |
| ```bash | |
| python server/main.py --reload --pipeline txt2imgLoraSDXL | |
| ``` | |
| # Available Pipelines | |
| #### [LCM](https://huggingface.co/SimianLuo/LCM_Dreamshaper_v7) | |
| `img2img` | |
| `txt2img` | |
| `controlnet` | |
| `txt2imgLora` | |
| `controlnetLoraSD15` | |
| #### [SD15](https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0) | |
| `controlnetLoraSDXL` | |
| `txt2imgLoraSDXL` | |
| #### [SDXL Turbo](https://huggingface.co/stabilityai/sd-xl-turbo) | |
| `img2imgSDXLTurbo` | |
| `controlnetSDXLTurbo` | |
| #### [SDTurbo](https://huggingface.co/stabilityai/sd-turbo) | |
| `img2imgSDTurbo` | |
| `controlnetSDTurbo` | |
| #### [Segmind-Vega](https://huggingface.co/segmind/Segmind-Vega) | |
| `controlnetSegmindVegaRT` | |
| `img2imgSegmindVegaRT` | |
| ### Setting environment variables | |
| * `--host`: Host address (default: 0.0.0.0) | |
| * `--port`: Port number (default: 7860) | |
| * `--reload`: Reload code on change | |
| * `--max-queue-size`: Maximum queue size (optional) | |
| * `--timeout`: Timeout period (optional) | |
| * `--safety-checker`: Enable Safety Checker (optional) | |
| * `--torch-compile`: Use Torch Compile | |
| * `--use-taesd` / `--no-taesd`: Use Tiny Autoencoder | |
| * `--pipeline`: Pipeline to use (default: "txt2img") | |
| * `--ssl-certfile`: SSL Certificate File (optional) | |
| * `--ssl-keyfile`: SSL Key File (optional) | |
| * `--debug`: Print Inference time | |
| * `--compel`: Compel option | |
| * `--pruna`: Enable Pruna | |
| If you run using `bash build-run.sh` you can set `PIPELINE` variables to choose the pipeline you want to run | |
| ```bash | |
| PIPELINE=txt2imgLoraSDXL bash build-run.sh | |
| ``` | |
| and setting environment variables | |
| ```bash | |
| TIMEOUT=120 SAFETY_CHECKER=True MAX_QUEUE_SIZE=4 python server/main.py --reload --pipeline txt2imgLoraSDXL | |
| ``` | |
| 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) | |
| ```bash | |
| openssl req -newkey rsa:4096 -nodes -keyout key.pem -x509 -days 365 -out certificate.pem | |
| python server/main.py --reload --ssl-certfile=certificate.pem --ssl-keyfile=key.pem | |
| ``` | |
| ## Docker | |
| You need NVIDIA Container Toolkit for Docker, defaults to `controlnet`` | |
| ```bash | |
| docker build -t lcm-live . | |
| docker run -ti -p 7860:7860 --gpus all lcm-live | |
| ``` | |
| reuse models data from host to avoid downloading them again, you can change `~/.cache/huggingface` to any other directory, but if you use hugingface-cli locally, you can share the same cache | |
| ```bash | |
| docker run -ti -p 7860:7860 -e HF_HOME=/data -v ~/.cache/huggingface:/data --gpus all lcm-live | |
| ``` | |
| or with environment variables | |
| ```bash | |
| docker run -ti -e PIPELINE=txt2imgLoraSDXL -p 7860:7860 --gpus all lcm-live | |
| ``` | |
| # Demo on Hugging Face | |
| * [radames/Real-Time-Latent-Consistency-Model](https://huggingface.co/spaces/radames/Real-Time-Latent-Consistency-Model) | |
| * [radames/Real-Time-SD-Turbo](https://huggingface.co/spaces/radames/Real-Time-SD-Turbo) | |
| * [latent-consistency/Real-Time-LCM-ControlNet-Lora-SD1.5](https://huggingface.co/spaces/latent-consistency/Real-Time-LCM-ControlNet-Lora-SD1.5) | |
| * [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) | |
| * [radames/Real-Time-Latent-Consistency-Model-Text-To-Image](https://huggingface.co/spaces/radames/Real-Time-Latent-Consistency-Model-Text-To-Image) | |
| https://github.com/radames/Real-Time-Latent-Consistency-Model/assets/102277/c4003ac5-e7ff-44c0-97d3-464bb659de70 | |