| 
									
										
										
										
											2022-09-05 19:51:22 +02:00
										 |  |  | #!/bin/bash
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-10-01 12:57:53 +02:00
										 |  |  | set -Eeuo pipefail | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-10-30 10:01:18 +01:00
										 |  |  | # TODO: move all mkdir -p ? | 
					
						
							| 
									
										
										
										
											2022-10-30 09:42:30 +01:00
										 |  |  | mkdir -p /data/config/auto/scripts/ | 
					
						
							| 
									
										
										
										
											2023-01-19 06:37:53 +01:00
										 |  |  | # mount scripts individually | 
					
						
							|  |  |  | cp -vrTs /data/config/auto/scripts/ "${ROOT}/scripts/" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-10-14 22:42:34 +02:00
										 |  |  | cp -n /docker/config.json /data/config/auto/config.json | 
					
						
							|  |  |  | jq '. * input' /data/config/auto/config.json /docker/config.json | sponge /data/config/auto/config.json | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-10-17 18:55:16 +02:00
										 |  |  | if [ ! -f /data/config/auto/ui-config.json ]; then | 
					
						
							|  |  |  |   echo '{}' >/data/config/auto/ui-config.json | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-10-01 12:57:53 +02:00
										 |  |  | declare -A MOUNTS | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | MOUNTS["/root/.cache"]="/data/.cache" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # main | 
					
						
							|  |  |  | MOUNTS["${ROOT}/models/Stable-diffusion"]="/data/StableDiffusion" | 
					
						
							| 
									
										
										
										
											2022-11-05 09:51:30 +01:00
										 |  |  | MOUNTS["${ROOT}/models/VAE"]="/data/VAE" | 
					
						
							| 
									
										
										
										
											2022-10-01 12:57:53 +02:00
										 |  |  | MOUNTS["${ROOT}/models/Codeformer"]="/data/Codeformer" | 
					
						
							|  |  |  | MOUNTS["${ROOT}/models/GFPGAN"]="/data/GFPGAN" | 
					
						
							|  |  |  | MOUNTS["${ROOT}/models/ESRGAN"]="/data/ESRGAN" | 
					
						
							|  |  |  | MOUNTS["${ROOT}/models/BSRGAN"]="/data/BSRGAN" | 
					
						
							|  |  |  | MOUNTS["${ROOT}/models/RealESRGAN"]="/data/RealESRGAN" | 
					
						
							|  |  |  | MOUNTS["${ROOT}/models/SwinIR"]="/data/SwinIR" | 
					
						
							| 
									
										
										
										
											2022-10-04 19:56:38 +02:00
										 |  |  | MOUNTS["${ROOT}/models/ScuNET"]="/data/ScuNET" | 
					
						
							| 
									
										
										
										
											2022-10-01 12:57:53 +02:00
										 |  |  | MOUNTS["${ROOT}/models/LDSR"]="/data/LDSR" | 
					
						
							| 
									
										
										
										
											2022-10-11 20:00:58 +02:00
										 |  |  | MOUNTS["${ROOT}/models/hypernetworks"]="/data/Hypernetworks" | 
					
						
							| 
									
										
										
										
											2022-12-17 12:22:45 +01:00
										 |  |  | MOUNTS["${ROOT}/models/torch_deepdanbooru"]="/data/Deepdanbooru" | 
					
						
							|  |  |  | MOUNTS["${ROOT}/models/BLIP"]="/data/BLIP" | 
					
						
							| 
									
										
										
										
											2022-12-12 09:25:44 +01:00
										 |  |  | MOUNTS["${ROOT}/models/midas"]="/data/MiDaS" | 
					
						
							| 
									
										
										
										
											2023-01-24 19:17:34 +01:00
										 |  |  | MOUNTS["${ROOT}/models/Lora"]="/data/Lora" | 
					
						
							| 
									
										
										
										
											2022-10-01 12:57:53 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | MOUNTS["${ROOT}/embeddings"]="/data/embeddings" | 
					
						
							| 
									
										
										
										
											2022-10-14 22:42:34 +02:00
										 |  |  | MOUNTS["${ROOT}/config.json"]="/data/config/auto/config.json" | 
					
						
							| 
									
										
										
										
											2022-10-17 18:55:16 +02:00
										 |  |  | MOUNTS["${ROOT}/ui-config.json"]="/data/config/auto/ui-config.json" | 
					
						
							| 
									
										
										
										
											2022-10-01 12:57:53 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | # extra hacks | 
					
						
							|  |  |  | MOUNTS["${ROOT}/repositories/CodeFormer/weights/facelib"]="/data/.cache" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | for to_path in "${!MOUNTS[@]}"; do | 
					
						
							|  |  |  |   set -Eeuo pipefail | 
					
						
							|  |  |  |   from_path="${MOUNTS[${to_path}]}" | 
					
						
							|  |  |  |   rm -rf "${to_path}" | 
					
						
							| 
									
										
										
										
											2022-10-15 08:08:36 +02:00
										 |  |  |   if [ ! -f "$from_path" ]; then | 
					
						
							| 
									
										
										
										
											2022-10-14 22:42:34 +02:00
										 |  |  |     mkdir -vp "$from_path" | 
					
						
							|  |  |  |   fi | 
					
						
							| 
									
										
										
										
											2022-10-04 19:56:38 +02:00
										 |  |  |   mkdir -vp "$(dirname "${to_path}")" | 
					
						
							| 
									
										
										
										
											2022-10-01 12:57:53 +02:00
										 |  |  |   ln -sT "${from_path}" "${to_path}" | 
					
						
							|  |  |  |   echo Mounted $(basename "${from_path}") | 
					
						
							| 
									
										
										
										
											2022-09-05 19:51:22 +02:00
										 |  |  | done | 
					
						
							| 
									
										
										
										
											2022-10-11 18:18:52 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-01-24 23:11:15 +01:00
										 |  |  | sync_bidirectional() { | 
					
						
							| 
									
										
										
										
											2023-01-24 23:25:07 +01:00
										 |  |  |   mkdir -p /data/config/auto/extensions "${ROOT}/extensions" | 
					
						
							| 
									
										
										
										
											2023-01-24 23:11:15 +01:00
										 |  |  |   rsync -cau /data/config/auto/extensions/ "${ROOT}/extensions" | 
					
						
							|  |  |  |   rsync -cau "${ROOT}/extensions/" /data/config/auto/extensions | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | sync_extensions() { | 
					
						
							|  |  |  |   # I don't have any better ideas: | 
					
						
							|  |  |  |   while true; do | 
					
						
							|  |  |  |     set -Eeuo pipefail | 
					
						
							|  |  |  |     sync_bidirectional | 
					
						
							|  |  |  |     sleep 2s | 
					
						
							|  |  |  |   done | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | sync_bidirectional | 
					
						
							|  |  |  | sync_extensions & | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-10-30 10:01:18 +01:00
										 |  |  | if [ -f "/data/config/auto/startup.sh" ]; then | 
					
						
							|  |  |  |   pushd ${ROOT} | 
					
						
							|  |  |  |   . /data/config/auto/startup.sh | 
					
						
							|  |  |  |   popd | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | exec "$@" |