├── .env.example ├── Dockerfile ├── Dockerfile.py310 ├── LICENSE ├── README.md ├── data ├── config.json ├── enhancing.sh ├── linking.sh └── prompts │ └── human │ └── negative │ └── universal-negative-prompt.txt └── docker-compose.yml /.env.example: -------------------------------------------------------------------------------- 1 | TZ=Etc/UTC 2 | PORT=7861 3 | VOLUME=data 4 | DOCKERFILE=Dockerfile 5 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:22.04 2 | 3 | MAINTAINER yftzeng "yftzeng@gmail.com" 4 | 5 | ENV TZ ${TZ} 6 | ENV TERM linux 7 | ENV APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE DontWarn 8 | ENV DEBIAN_FRONTEND noninteractive 9 | 10 | ARG TZ 11 | ARG BUILD_ARGS 12 | ARG RUN_ARGS 13 | ARG VOLUME 14 | ENV BUILD_ARGS ${BUILD_ARGS} 15 | ENV RUN_ARGS ${RUN_ARGS} 16 | ENV VOLUME ${VOLUME} 17 | 18 | ARG USERNAME=wow 19 | ARG USER_UID=1000 20 | ARG USER_GID=$USER_UID 21 | 22 | RUN \ 23 | if [ "$TZ" = "Asia/Taipei" ]; then sed -i '/^deb/{s/ [^ ]*/ http:\/\/free.nchc.org.tw\/ubuntu\//1}' /etc/apt/sources.list ;fi \ 24 | && apt-get update \ 25 | && apt-get dist-upgrade -yq --no-install-recommends \ 26 | && apt-get install -yq --no-install-recommends \ 27 | curl \ 28 | sudo \ 29 | git-core \ 30 | git-lfs \ 31 | python3 \ 32 | python3-pip \ 33 | python3-venv \ 34 | python3-opencv \ 35 | && groupadd --gid $USER_GID $USERNAME \ 36 | && useradd --uid $USER_UID --gid $USER_GID -m $USERNAME \ 37 | && echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME \ 38 | && chmod 0440 /etc/sudoers.d/$USERNAME \ 39 | && curl -sL https://raw.githubusercontent.com/AUTOMATIC1111/stable-diffusion-webui/master/webui.sh | sudo -u $USERNAME env COMMANDLINE_ARGS="${BUILD_ARGS}" bash \ 40 | && sudo -u $USERNAME python3 -m pip install xformers \ 41 | && sudo -u $USERNAME git clone https://github.com/Mikubill/sd-webui-controlnet.git /home/$USERNAME/stable-diffusion-webui/extensions/sd-webui-controlnet \ 42 | && sudo -u $USERNAME git clone https://huggingface.co/webui/ControlNet-modules-safetensors /home/$USERNAME/stable-diffusion-webui/models/ControlNet \ 43 | && sudo -u $USERNAME mkdir -p /home/$USERNAME/stable-diffusion-webui/extensions/sd-webui-controlnet/annotator/openpose \ 44 | && sudo -u $USERNAME curl -Lo /home/$USERNAME/stable-diffusion-webui/extensions/sd-webui-controlnet/annotator/openpose/body_pose_model.pth https://huggingface.co/lllyasviel/ControlNet/resolve/main/annotator/ckpts/body_pose_model.pth \ 45 | && sudo -u $USERNAME curl -Lo /home/$USERNAME/stable-diffusion-webui/extensions/sd-webui-controlnet/annotator/openpose/hand_pose_model.pth https://huggingface.co/lllyasviel/ControlNet/resolve/main/annotator/ckpts/hand_pose_model.pth 46 | 47 | COPY --chown=$USERNAME:$USERNAME ${VOLUME}/config.json /home/$USERNAME/stable-diffusion-webui/config.json 48 | 49 | RUN \ 50 | sed -i -e 's/"outputs\//"\/'${VOLUME}'\/outputs\//g' -e 's/\(.*outdir_save.*:\ \).*/\1"\/'${VOLUME}'\/outputs\/save"/' /home/$USERNAME/stable-diffusion-webui/config.json 51 | 52 | WORKDIR /home/$USERNAME/stable-diffusion-webui 53 | USER $USERNAME 54 | 55 | #ENTRYPOINT ["tail", "-f", "/dev/null"] 56 | CMD bash -c ". $HOME/stable-diffusion-webui/venv/bin/activate ; bash /${VOLUME}/linking.sh ; python3 -u webui.py ${RUN_ARGS}" 57 | -------------------------------------------------------------------------------- /Dockerfile.py310: -------------------------------------------------------------------------------- 1 | FROM ubuntu:22.04 2 | 3 | MAINTAINER yftzeng "yftzeng@gmail.com" 4 | 5 | ENV TZ ${TZ} 6 | ENV TERM linux 7 | ENV APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE DontWarn 8 | ENV DEBIAN_FRONTEND noninteractive 9 | 10 | ARG TZ 11 | ARG BUILD_ARGS 12 | ARG RUN_ARGS 13 | ARG VOLUME 14 | ENV BUILD_ARGS ${BUILD_ARGS} 15 | ENV RUN_ARGS ${RUN_ARGS} 16 | ENV VOLUME ${VOLUME} 17 | 18 | ARG USERNAME=wow 19 | ARG USER_UID=1000 20 | ARG USER_GID=$USER_UID 21 | 22 | RUN \ 23 | if [ "$TZ" = "Asia/Taipei" ]; then sed -i '/^deb/{s/ [^ ]*/ http:\/\/free.nchc.org.tw\/ubuntu\//1}' /etc/apt/sources.list ;fi \ 24 | && apt-get update \ 25 | && apt-get install -yq --no-install-recommends software-properties-common gpg-agent \ 26 | && add-apt-repository -y ppa:deadsnakes/ppa \ 27 | && apt-get dist-upgrade -yq --no-install-recommends \ 28 | && apt-get install -yq --no-install-recommends \ 29 | curl \ 30 | sudo \ 31 | git-core \ 32 | git-lfs \ 33 | python3.10 \ 34 | python3.10-venv \ 35 | libgl1 \ 36 | && groupadd --gid $USER_GID $USERNAME \ 37 | && useradd --uid $USER_UID --gid $USER_GID -m $USERNAME \ 38 | && echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME \ 39 | && chmod 0440 /etc/sudoers.d/$USERNAME \ 40 | && curl -sSL https://bootstrap.pypa.io/get-pip.py | python3.10 \ 41 | && sudo -u $USERNAME python3 -m pip install opencv-python opencv-contrib-python \ 42 | && curl -sSL https://raw.githubusercontent.com/AUTOMATIC1111/stable-diffusion-webui/master/webui.sh | sudo -u $USERNAME env COMMANDLINE_ARGS="${BUILD_ARGS}" bash \ 43 | && sudo -u $USERNAME python3 -m pip install xformers \ 44 | && sudo -u $USERNAME git clone https://github.com/Mikubill/sd-webui-controlnet.git /home/$USERNAME/stable-diffusion-webui/extensions/sd-webui-controlnet \ 45 | && sudo -u $USERNAME git clone https://huggingface.co/webui/ControlNet-modules-safetensors /home/$USERNAME/stable-diffusion-webui/models/ControlNet \ 46 | && sudo -u $USERNAME mkdir -p /home/$USERNAME/stable-diffusion-webui/extensions/sd-webui-controlnet/annotator/openpose \ 47 | && sudo -u $USERNAME curl -sSLo /home/$USERNAME/stable-diffusion-webui/extensions/sd-webui-controlnet/annotator/openpose/body_pose_model.pth https://huggingface.co/lllyasviel/ControlNet/resolve/main/annotator/ckpts/body_pose_model.pth \ 48 | && sudo -u $USERNAME curl -sSLo /home/$USERNAME/stable-diffusion-webui/extensions/sd-webui-controlnet/annotator/openpose/hand_pose_model.pth https://huggingface.co/lllyasviel/ControlNet/resolve/main/annotator/ckpts/hand_pose_model.pth 49 | 50 | COPY --chown=$USERNAME:$USERNAME ${VOLUME}/config.json /home/$USERNAME/stable-diffusion-webui/config.json 51 | 52 | RUN \ 53 | sed -i -e 's/"outputs\//"\/'${VOLUME}'\/outputs\//g' -e 's/\(.*outdir_save.*:\ \).*/\1"\/'${VOLUME}'\/outputs\/save"/' /home/$USERNAME/stable-diffusion-webui/config.json 54 | 55 | WORKDIR /home/$USERNAME/stable-diffusion-webui 56 | USER $USERNAME 57 | 58 | #ENTRYPOINT ["tail", "-f", "/dev/null"] 59 | CMD bash -c ". $HOME/stable-diffusion-webui/venv/bin/activate ; bash /${VOLUME}/linking.sh ; python3 -u webui.py ${RUN_ARGS}" 60 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 Yi-Feng Tzeng (ant) 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Stable Diffusion WebUI Docker 2 | 3 | Easily and quickly run [stable-diffsion-webui](https://github.com/AUTOMATIC1111/stable-diffusion-webui) with [ControlNet](https://github.com/Mikubill/sd-webui-controlnet) in Docker. 4 | 5 | ## Requirements 6 | 7 | * Docker 8 | * Docker Compose 9 | 10 | ## Setup 11 | 12 | ```bash 13 | $ cp .env.example .env 14 | ``` 15 | 16 | Edit your environment, 17 | 18 | ```bash 19 | $ cat .env 20 | 21 | TZ=Etc/UTC # timezone 22 | PORT=7861 # port mapping 23 | VOLUME=data # docker volume storage mount point, eg. ./data to /data 24 | DOCKERFILE=Dockerfile # Specify Dockerfile 25 | ``` 26 | 27 | If you modified the value of **VOLUME**, for example from **VOLUME=data** to **VOLUME=volume**, please follow these steps as well, 28 | 29 | ```bash 30 | $ cat .env 31 | 32 | ... 33 | VOLUME=volume # docker volume storage mount point, eg. ./data to /data 34 | ``` 35 | 36 | ```bash 37 | $ mv data volume 38 | ``` 39 | 40 | ## Pre-download models and etc. 41 | 42 | Here are some models for reference, 43 | 44 | ```bash 45 | $ cat data/enhancing.sh 46 | 47 | #!/usr/bin/env bash 48 | 49 | declare -A arr 50 | 51 | # models 52 | arr["https://huggingface.co/prompthero/openjourney/resolve/main/mdjrny-v4.safetensors"]="models/Stable-diffusion" 53 | arr+=(["https://huggingface.co/prompthero/openjourney-v2/resolve/main/openjourney-v2.ckpt"]="models/Stable-diffusion") 54 | arr+=(["https://huggingface.co/ckpt/anything-v4.5-vae-swapped/resolve/main/anything-v4.5-vae-swapped.safetensors"]="models/Stable-diffusion") 55 | arr+=(["https://huggingface.co/dreamlike-art/dreamlike-photoreal-2.0/resolve/main/dreamlike-photoreal-2.0.safetensors"]="models/Stable-diffusion") 56 | arr+=(["https://huggingface.co/nuigurumi/basil_mix/resolve/main/Basil_mix_fixed.safetensors"]="models/Stable-diffusion") 57 | arr+=(["https://huggingface.co/swl-models/chilloutmix-ni/resolve/main/chilloutmix-Ni-ema-fp32.safetensors"]="models/Stable-diffusion") 58 | # vae 59 | arr+=(["https://huggingface.co/stabilityai/sd-vae-ft-mse-original/resolve/main/vae-ft-mse-840000-ema-pruned.safetensors"]="models/VAE") 60 | # embeddings 61 | arr+=(["https://huggingface.co/datasets/gsdf/EasyNegative/resolve/main/EasyNegative.safetensors"]="embeddings") 62 | 63 | ... 64 | ``` 65 | 66 | Downloading ... 67 | 68 | ```bash 69 | $ cd data ; bash enhancing.sh 70 | ``` 71 | 72 | These models, and others. will be linked in Docker once the container is successfully running. 73 | 74 | ## Installation 75 | 76 | ```bash 77 | $ docker compose --profile cpu up -d # for CPU 78 | 79 | $ docker compose --profile gpu up -d # for GPU 80 | ``` 81 | 82 | Please wait while the process completes. 83 | 84 | If you want to track the progress, 85 | 86 | ```bash 87 | $ docker compose --profile cpu logs -f # for CPU 88 | 89 | $ docker compose --profile gpu logs -f # for GPU 90 | ``` 91 | 92 | ## Usage 93 | 94 | * Open your browser and navigate to **http://127.0.0.1:7861**. The default port specified in the **.env** file is **7861**. 95 | * The saved images will be located in the **data/outputs** directory. 96 | * Examples of prompts can be found in **data/prompts**. 97 | 98 | ## Restart, Stop or Deinstallation 99 | 100 | ```bash 101 | $ docker compose --profile cpu restart # for restart 102 | 103 | $ docker compose --profile cpu stop # for stop 104 | 105 | $ docker compose --profile cpu down # for deinstallation 106 | ``` 107 | 108 | ## FAQ 109 | 110 | ### Q: Error message : "RuntimeError: mat1 and mat2 shapes cannot be multiplied (77x1024 and 768x320)" 111 | 112 | ![RuntimeError: mat1 and mat2 shapes cannot be multiplied](https://live.staticflickr.com/65535/52720126599_9910f655de_b.jpg "Stable Diffusion checkpoint") 113 | 114 | When encountering the aforementioned error message, please select "**v1-5-pruned-emaonly.safetensors**" for the "**Stable Diffusion checkpoint**" to indicate that this operation is currently only supported by Stable Diffusion 1.5. 115 | 116 | ### Q: ERROR: Could not find a version that satisfies the requirement torch==1.13.1+cu117 117 | 118 | If you come across the issue outlined in [stable-diffusion-webui](https://github.com/AUTOMATIC1111/stable-diffusion-webui/issues/7166), a possible solution is to utilize Python 3.10, as described below: 119 | 120 | Edit your environment, change **DOCKERFILE=Dockerfile** to **DOCKERFILE=Dockerfile.py310**. 121 | 122 | ```bash 123 | $ cat .env 124 | 125 | TZ=Etc/UTC # timezone 126 | PORT=7861 # port mapping 127 | VOLUME=data # docker volume storage mount point, eg. ./data to /data 128 | DOCKERFILE=Dockerfile.py310 # Specify Dockerfile 129 | ``` 130 | 131 | The next operation is as usual. -------------------------------------------------------------------------------- /data/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "outdir_samples": "", 3 | "outdir_txt2img_samples": "outputs/txt2img-images", 4 | "outdir_img2img_samples": "outputs/img2img-images", 5 | "outdir_extras_samples": "outputs/extras-images", 6 | "outdir_txt2img_grids": "outputs/txt2img-grids", 7 | "outdir_img2img_grids": "outputs/img2img-grids", 8 | "outdir_save": "log/images" 9 | } 10 | -------------------------------------------------------------------------------- /data/enhancing.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | declare -A arr 4 | 5 | # models 6 | arr["https://huggingface.co/prompthero/openjourney/resolve/main/mdjrny-v4.safetensors"]="models/Stable-diffusion" 7 | arr+=(["https://huggingface.co/prompthero/openjourney-v2/resolve/main/openjourney-v2.ckpt"]="models/Stable-diffusion") 8 | arr+=(["https://huggingface.co/ckpt/anything-v4.5-vae-swapped/resolve/main/anything-v4.5-vae-swapped.safetensors"]="models/Stable-diffusion") 9 | arr+=(["https://huggingface.co/dreamlike-art/dreamlike-photoreal-2.0/resolve/main/dreamlike-photoreal-2.0.safetensors"]="models/Stable-diffusion") 10 | arr+=(["https://huggingface.co/nuigurumi/basil_mix/resolve/main/Basil_mix_fixed.safetensors"]="models/Stable-diffusion") 11 | arr+=(["https://huggingface.co/swl-models/chilloutmix-ni/resolve/main/chilloutmix-Ni-ema-fp32.safetensors"]="models/Stable-diffusion") 12 | # vae 13 | arr+=(["https://huggingface.co/stabilityai/sd-vae-ft-mse-original/resolve/main/vae-ft-mse-840000-ema-pruned.safetensors"]="models/VAE") 14 | # embeddings 15 | arr+=(["https://huggingface.co/datasets/gsdf/EasyNegative/resolve/main/EasyNegative.safetensors"]="embeddings") 16 | 17 | for key in ${!arr[@]}; do 18 | mkdir -p "${arr[${key}]}" 19 | download_to="${arr[${key}]}"/$(basename "${key}") 20 | if [ ! -f "$download_to" ]; then 21 | echo "Download ${key} to ${arr[${key}]}" 22 | curl -Lo "$download_to" "${key}" 23 | fi 24 | done 25 | -------------------------------------------------------------------------------- /data/linking.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | DIR=(models/Stable-diffusion models/Lora models/VAE embeddings) 4 | for D in ${DIR[@]} 5 | do 6 | mkdir -p $HOME/stable-diffusion-webui/$D 7 | cd $HOME/stable-diffusion-webui/$D 8 | ln -sf /${VOLUME}/$D/* . 9 | cd - 10 | done 11 | -------------------------------------------------------------------------------- /data/prompts/human/negative/universal-negative-prompt.txt: -------------------------------------------------------------------------------- 1 | (((deformed))), blurry, bad anatomy, disfigured, poorly drawn face, mutation, mutated, (extra_limb), (ugly), (poorly drawn hands), fused fingers, messy drawing, broken legs censor, censored, censor_bar, multiple breasts, (mutated hands and fingers:1.5), (long body :1.3), (mutation, poorly drawn :1.2), black-white, bad anatomy, liquid body, liquidtongue, disfigured, malformed, mutated, anatomical nonsense, text font ui, error, malformed hands, long neck, blurred, lowers, low res, bad anatomy, bad proportions, bad shadow, uncoordinated body, unnatural body, fused breasts, bad breasts, huge breasts, poorly drawn breasts, extra breasts, liquid breasts, heavy breasts, missingbreasts, huge haunch, huge thighs, huge calf, bad hands, fused hand, missing hand, disappearing arms, disappearing thigh, disappearing calf, disappearing legs, fusedears, bad ears, poorly drawn ears, extra ears, liquid ears, heavy ears, missing ears, fused animal ears, bad animal ears, poorly drawn animal ears, extra animal ears, liquidanimal ears, heavy animal ears, missing animal ears, text, ui, error, missing fingers, missing limb, fused fingers, one hand with more than 5 fingers, one hand with less than5 fingers, one hand with more than 5 digit, one hand with less than 5 digit, extra digit, fewer digits, fused digit, missing digit, bad digit, liquid digit, colorful tongue, blacktongue, cropped, watermark, username, blurry, JPEG artifacts, signature, 3D, 3D game, 3D game scene, 3D character, malformed feet, extra feet, bad feet, poorly drawnfeet, fused feet, missing feet, extra shoes, bad shoes, fused shoes, more than two shoes, poorly drawn shoes, bad gloves, poorly drawn gloves, fused gloves, bad cum, poorly drawn cum, fused cum, bad hairs, poorly drawn hairs, fused hairs, big muscles, ugly, bad face, fused face, poorly drawn face, cloned face, big face, long face, badeyes, fused eyes poorly drawn eyes, extra eyes, malformed limbs, more than 2 nipples, missing nipples, different nipples, fused nipples, bad nipples, poorly drawnnipples, black nipples, colorful nipples, gross proportions. short arm, (((missing arms))), missing thighs, missing calf, missing legs, mutation, duplicate, morbid, mutilated, poorly drawn hands, more than 1 left hand, more than 1 right hand, deformed, (blurry), disfigured, missing legs, extra arms, extra thighs, more than 2 thighs, extra calf,fused calf, extra legs, bad knee, extra knee, more than 2 legs, bad tails, bad mouth, fused mouth, poorly drawn mouth, bad tongue, tongue within mouth, too longtongue, black tongue, big mouth, cracked mouth, bad mouth, dirty face, dirty teeth, dirty pantie, fused pantie, poorly drawn pantie, fused cloth, poorly drawn cloth, badpantie, yellow teeth, thick lips, bad camel toe, colorful camel toe, bad asshole, poorly drawn asshole, fused asshole, missing asshole, bad anus, bad pussy, bad crotch, badcrotch seam, fused anus, fused pussy, fused anus, fused crotch, poorly drawn crotch, fused seam, poorly drawn anus, poorly drawn pussy, poorly drawn crotch, poorlydrawn crotch seam, bad thigh gap, missing thigh gap, fused thigh gap, liquid thigh gap, poorly drawn thigh gap, poorly drawn anus, bad collarbone, fused collarbone, missing collarbone, liquid collarbone, strong girl, obesity, worst quality, low quality, normal quality, liquid tentacles, bad tentacles, poorly drawn tentacles, split tentacles, fused tentacles, missing clit, bad clit, fused clit, colorful clit, black clit, liquid clit, QR code, bar code, censored, safety panties, safety knickers, beard, furry, pony, pubic hair, mosaic, futa, testis, (((deformed))), blurry, bad anatomy, disfigured, poorly drawn face, mutation, mutated, (extra_limb), (ugly), (poorly drawn hands), fused fingers, messy drawing, broken legs censor, censored, censor_bar, multiple breasts, (mutated hands and fingers:1.5), (long body :1.3), (mutation, poorly drawn :1.2), black-white, bad anatomy, liquid body, liquidtongue, disfigured, malformed, mutated, anatomical nonsense, text font ui, error, malformed hands, long neck, blurred, lowers, low res, bad anatomy, bad proportions, bad shadow, uncoordinated body, unnatural body, fused breasts, bad breasts, huge breasts, poorly drawn breasts, extra breasts, liquid breasts, heavy breasts, missingbreasts, huge haunch, huge thighs, huge calf, bad hands, fused hand, missing hand, disappearing arms, disappearing thigh, disappearing calf, disappearing legs, fusedears, bad ears, poorly drawn ears, extra ears, liquid ears, heavy ears, missing ears, fused animal ears, bad animal ears, poorly drawn animal ears, extra animal ears, liquidanimal ears, heavy animal ears, missing animal ears, text, ui, error, missing fingers, missing limb, fused fingers, one hand with more than 5 fingers, one hand with less than5 fingers, one hand with more than 5 digit, one hand with less than 5 digit, extra digit, fewer digits, fused digit, missing digit, bad digit, liquid digit, colorful tongue, blacktongue, cropped, watermark, username, blurry, JPEG artifacts, signature, 3D, 3D game, 3D game scene, 3D character, malformed feet, extra feet, bad feet, poorly drawnfeet, fused feet, missing feet, extra shoes, bad shoes, fused shoes, more than two shoes, poorly drawn shoes, bad gloves, poorly drawn gloves, fused gloves, bad cum, poorly drawn cum, fused cum, bad hairs, poorly drawn hairs, fused hairs, big muscles, ugly, bad face, fused face, poorly drawn face, cloned face, big face, long face, badeyes, fused eyes poorly drawn eyes, extra eyes, malformed limbs, more than 2 nipples, missing nipples, different nipples, fused nipples, bad nipples, poorly drawnnipples, black nipples, colorful nipples, gross proportions. short arm, (((missing arms))), missing thighs, missing calf, missing legs, mutation, duplicate, morbid, mutilated, poorly drawn hands, more than 1 left hand, more than 1 right hand, deformed, (blurry), disfigured, missing legs, extra arms, extra thighs, more than 2 thighs, extra calf,fused calf, extra legs, bad knee, extra knee, more than 2 legs, bad tails, bad mouth, fused mouth, poorly drawn mouth, bad tongue, tongue within mouth, too longtongue, black tongue, big mouth, cracked mouth, bad mouth, dirty face, dirty teeth, dirty pantie, fused pantie, poorly drawn pantie, fused cloth, poorly drawn cloth, badpantie, yellow teeth, thick lips, bad camel toe, colorful camel toe, bad asshole, poorly drawn asshole, fused asshole, missing asshole, bad anus, bad pussy, bad crotch, badcrotch seam, fused anus, fused pussy, fused anus, fused crotch, poorly drawn crotch, fused seam, poorly drawn anus, poorly drawn pussy, poorly drawn crotch, poorlydrawn crotch seam, bad thigh gap, missing thigh gap, fused thigh gap, liquid thigh gap, poorly drawn thigh gap, poorly drawn anus, bad collarbone, fused collarbone, missing collarbone, liquid collarbone, strong girl, obesity, worst quality, low quality, normal quality, liquid tentacles, bad tentacles, poorly drawn tentacles, split tentacles, fused tentacles, missing clit, bad clit, fused clit, colorful clit, black clit, liquid clit, QR code, bar code, censored, safety panties, safety knickers, beard, furry, pony, pubic hair, mosaic, futa, testis 2 | -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | 3 | x-base: &base 4 | ports: 5 | - "${PORT:-7861}:${PORT:-7861}" 6 | volumes: 7 | - &volume "./${VOLUME:-data}:/${VOLUME:-data}" 8 | 9 | services: 10 | automatic1111-gpu: &gpu 11 | <<: *base 12 | profiles: ["gpu"] 13 | build: 14 | context: . 15 | dockerfile: ${DOCKERFILE:-Dockerfile} 16 | args: 17 | TZ: ${TZ} 18 | BUILD_ARGS: --medvram --allow-code --enable-insecure-extension-access --api --listen --port ${PORT} --xformers --exit 19 | RUN_ARGS: --medvram --allow-code --enable-insecure-extension-access --api --listen --port ${PORT} --xformers 20 | VOLUME: ${VOLUME:-data} 21 | deploy: 22 | resources: 23 | reservations: 24 | devices: 25 | - driver: nvidia 26 | device_ids: ['0'] 27 | capabilities: [gpu] 28 | 29 | automatic1111-cpu: 30 | <<: *gpu 31 | profiles: ["cpu"] 32 | build: 33 | context: . 34 | dockerfile: ${DOCKERFILE:-Dockerfile} 35 | args: 36 | TZ: ${TZ} 37 | BUILD_ARGS: --lowvram --precision full --no-half --allow-code --enable-insecure-extension-access --api --listen --port ${PORT} --exit --skip-torch-cuda-test 38 | RUN_ARGS: --lowvram --precision full --no-half --allow-code --enable-insecure-extension-access --api --listen --port ${PORT} 39 | VOLUME: ${VOLUME:-data} 40 | deploy: {} 41 | --------------------------------------------------------------------------------