| 
									
										
										
										
											2022-08-27 12:38:12 +01:00
										 |  |  | # syntax=docker/dockerfile:1
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | FROM continuumio/miniconda3:4.12.0
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-09-03 17:36:19 +02:00
										 |  |  | SHELL ["/bin/bash", "-ceuxo", "pipefail"]
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-08-27 12:38:12 +01:00
										 |  |  | RUN conda install python=3.8.5 && conda clean -a -y
 | 
					
						
							|  |  |  | RUN conda install pytorch==1.11.0 torchvision==0.12.0 cudatoolkit=11.3 -c pytorch && conda clean -a -y
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-09-03 17:36:19 +02:00
										 |  |  | RUN apt-get update && apt install fonts-dejavu-core rsync -y && apt-get clean
 | 
					
						
							| 
									
										
										
										
											2022-09-02 09:55:36 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-09-03 17:36:19 +02:00
										 |  |  | RUN <<EOF
 | 
					
						
							| 
									
										
										
										
											2022-09-07 19:45:03 +02:00
										 |  |  | git clone https://github.com/sd-webui/stable-diffusion-webui.git stable-diffusion
 | 
					
						
							| 
									
										
										
										
											2022-09-03 17:36:19 +02:00
										 |  |  | cd stable-diffusion
 | 
					
						
							| 
									
										
										
										
											2022-09-07 19:45:03 +02:00
										 |  |  | git reset --hard 2b1ac8daf7ea82c6c56eabab7e80ec1c33106a98
 | 
					
						
							| 
									
										
										
										
											2022-09-03 17:36:19 +02:00
										 |  |  | conda env update --file environment.yaml -n base
 | 
					
						
							|  |  |  | conda clean -a -y
 | 
					
						
							|  |  |  | EOF
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # new dependency, should be added to the environment.yaml
 | 
					
						
							|  |  |  | RUN pip install -U --no-cache-dir pyperclip
 | 
					
						
							| 
									
										
										
										
											2022-08-27 12:38:12 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-08-28 13:35:40 +02:00
										 |  |  | # Note: don't update the sha of previous versions because the install will take forever
 | 
					
						
							|  |  |  | # instead, update the repo state in a later step
 | 
					
						
							| 
									
										
										
										
											2022-09-08 17:56:15 +02:00
										 |  |  | ARG WEBUI_SHA=0dffc3918d596ad36a32ac56ecf4d523f490ae5e | 
					
						
							| 
									
										
										
										
											2022-09-04 09:12:07 +02:00
										 |  |  | RUN cd stable-diffusion && git pull && git reset --hard ${WEBUI_SHA} && \
 | 
					
						
							| 
									
										
										
										
											2022-09-04 08:46:14 +02:00
										 |  |  |   conda env update --file environment.yaml --name base && conda clean -a -y
 | 
					
						
							| 
									
										
										
										
											2022-09-03 17:36:19 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-09-02 09:55:36 +02:00
										 |  |  | # Textual inversion
 | 
					
						
							| 
									
										
										
										
											2022-08-31 18:17:44 +02:00
										 |  |  | RUN <<EOF
 | 
					
						
							|  |  |  | git clone https://github.com/hlky/sd-enable-textual-inversion.git &&
 | 
					
						
							|  |  |  | cd /sd-enable-textual-inversion && git reset --hard 08f9b5046552d17cf7327b30a98410222741b070 &&
 | 
					
						
							| 
									
										
										
										
											2022-09-02 09:55:36 +02:00
										 |  |  | rsync -a /sd-enable-textual-inversion/ /stable-diffusion/ &&
 | 
					
						
							|  |  |  | rm -rf /sd-enable-textual-inversion
 | 
					
						
							| 
									
										
										
										
											2022-08-31 18:17:44 +02:00
										 |  |  | EOF
 | 
					
						
							| 
									
										
										
										
											2022-08-28 13:35:40 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-09-02 09:55:36 +02:00
										 |  |  | # Latent diffusion
 | 
					
						
							|  |  |  | RUN <<EOF
 | 
					
						
							|  |  |  | git clone https://github.com/devilismyfriend/latent-diffusion &&
 | 
					
						
							|  |  |  | cd /latent-diffusion &&
 | 
					
						
							| 
									
										
										
										
											2022-09-03 13:15:25 +02:00
										 |  |  | git reset --hard 6d61fc03f15273a457950f2cdc10dddf53ba6809 &&
 | 
					
						
							| 
									
										
										
										
											2022-09-02 09:55:36 +02:00
										 |  |  | # hacks all the way down
 | 
					
						
							|  |  |  | mv ldm ldm_latent &&
 | 
					
						
							|  |  |  | sed -i -- 's/from ldm/from ldm_latent/g' *.py
 | 
					
						
							|  |  |  | # dont forget to update the yaml!!
 | 
					
						
							|  |  |  | EOF
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-08-28 19:09:15 +02:00
										 |  |  | # add info
 | 
					
						
							| 
									
										
										
										
											2022-09-02 09:55:36 +02:00
										 |  |  | COPY . /docker/
 | 
					
						
							| 
									
										
										
										
											2022-09-07 19:45:03 +02:00
										 |  |  | RUN python /docker/info.py /stable-diffusion/frontend/frontend.py && chmod +x /docker/mount.sh
 | 
					
						
							| 
									
										
										
										
											2022-08-28 19:09:15 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-08-27 12:38:12 +01:00
										 |  |  | WORKDIR /stable-diffusion
 | 
					
						
							| 
									
										
										
										
											2022-09-02 09:55:36 +02:00
										 |  |  | ENV TRANSFORMERS_CACHE=/cache/transformers TORCH_HOME=/cache/torch CLI_ARGS=""
 | 
					
						
							| 
									
										
										
										
											2022-08-27 12:38:12 +01:00
										 |  |  | EXPOSE 7860
 | 
					
						
							| 
									
										
										
										
											2022-09-02 09:55:36 +02:00
										 |  |  | # run, -u to not buffer stdout / stderr
 | 
					
						
							| 
									
										
										
										
											2022-09-03 13:15:25 +02:00
										 |  |  | CMD /docker/mount.sh && python3 -u scripts/webui.py --outdir /output --ckpt /models/model.ckpt --ldsr-dir /latent-diffusion ${CLI_ARGS}
 |