mirror of
https://github.com/leejet/stable-diffusion.cpp.git
synced 2026-10-27 07:14:04 +08:00
70 lines
2.2 KiB
Markdown
70 lines
2.2 KiB
Markdown
# Docker
|
|
|
|
## Run CLI
|
|
|
|
```shell
|
|
docker run --rm -v /path/to/models:/models -v /path/to/output/:/output ghcr.io/leejet/stable-diffusion.cpp:master [args...]
|
|
# For example
|
|
# docker run --rm -v ./models:/models -v ./build:/output ghcr.io/leejet/stable-diffusion.cpp:master -m /models/sd-v1-4.ckpt -p "a lovely cat" -v -o /output/output.png
|
|
```
|
|
|
|
## Run server
|
|
|
|
```shell
|
|
docker run --rm --init -v /path/to/models:/models -v /path/to/output/:/output -p "1234:1234" --entrypoint "/sd-server" ghcr.io/leejet/stable-diffusion.cpp:master [args...]
|
|
# For example
|
|
# docker run --rm --init -v ./models:/models -v ./build:/output -p "1234:1234" --entrypoint "/sd-server" ghcr.io/leejet/stable-diffusion.cpp:master -m /models/sd-v1-4.ckpt -p "a lovely cat" -v -o /output/output.png
|
|
```
|
|
|
|
## Building using Docker
|
|
|
|
```shell
|
|
docker build -f docker/Dockerfile -t sd .
|
|
```
|
|
|
|
## Building variants using Docker
|
|
|
|
### Vulkan:
|
|
|
|
```shell
|
|
docker build -f docker/Dockerfile.vulkan -t sd .
|
|
```
|
|
|
|
### ROCm (AMD GPU):
|
|
|
|
Defining one or multiple targets with `--build-arg AMDGPU_TARGETS` is strongly recommended.
|
|
Building the image will otherwise likely fail or build for a target that does not fit your
|
|
hardware.
|
|
|
|
```shell
|
|
# Build for one target
|
|
docker build -f docker/Dockerfile.rocm --build-arg "AMDGPU_TARGETS=gfx1100" -t sd .
|
|
# Build for multiple targets
|
|
docker build -f docker/Dockerfile.rocm --build-arg "AMDGPU_TARGETS=gfx1030;gfx1100" -t sd .
|
|
```
|
|
|
|
## Run locally built image's CLI
|
|
|
|
```shell
|
|
docker run --rm -v /path/to/models:/models -v /path/to/output/:/output sd [args...]
|
|
# For example
|
|
# docker run --rm -v ./models:/models -v ./build:/output sd -m /models/sd-v1-4.ckpt -p "a lovely cat" -v -o /output/output.png
|
|
```
|
|
|
|
### ROCm (AMD GPU)
|
|
|
|
The user that executes this command needs to be in the `video` group and have read and write
|
|
access to `/dev/dri` and `/dev/kfd`.
|
|
|
|
`--device` and `--group-add` allow the container access to the GPU.
|
|
|
|
```shell
|
|
docker run --rm --device=/dev/dri --device=/dev/kfd --group-add video \
|
|
-v /path/to/models:/models -v /path/to/output/:/output \
|
|
sd [args...]
|
|
# For example
|
|
# docker run --rm --device=/dev/dri --device=/dev/kfd --group-add video \
|
|
# -v ./models:/models -v ./build:/output \
|
|
# sd -m /models/sd-v1-4.ckpt -v -o /output/output.png \
|
|
# -p "a lovely cat"
|
|
``` |