심볼릭 링크(symbolic link)는 Stable Diffusion을 쓸 때 디스크 용량을 크게 아낄 수 있는 방법입니다. 모델 체크포인트나 출력 이미지 폴더를 한 곳에 모아 두고, 여러 설치본이 이를 공유하도록 연결하는 방식입니다. WebUI를 여러 버전 설치해 본 적이 있다면, 같은 모델 파일이 폴더마다 중복돼 수십 기가바이트씩 잡아먹는 문제를 한 번쯤 겪어 보셨을 것입니다.
심볼릭 링크란 무엇인가
심볼릭 링크는 실제 파일이나 폴더가 있는 위치를 가리키는 “바로가기”에 가깝습니다. 윈도우의 바로가기 아이콘과 비슷하지만, 운영체제와 프로그램이 링크를 진짜 경로처럼 취급한다는 점이 다릅니다. 즉 프로그램은 자기 폴더 안에 파일이 있다고 인식하지만, 실제 데이터는 다른 한 곳에만 존재합니다.
덕분에 같은 파일을 여러 번 복사하지 않고도 여러 위치에서 동시에 사용할 수 있습니다. 원본은 하나, 그 원본을 가리키는 링크는 여러 개인 구조입니다.
Stable Diffusion에서 왜 유용한가
Stable Diffusion은 다루는 파일이 무겁습니다. 체크포인트(ckpt·safetensors) 한 개가 2~7GB, LoRA·VAE·ControlNet 모델까지 더하면 모델 폴더 하나가 수십 기가바이트에 이르기도 합니다. WebUI를 버전별로 여러 개 설치하면 이 무거운 폴더가 설치본마다 중복됩니다.
용량이 큰 폴더를 별도의 공용 디렉터리에 한 번만 두고, 각 설치본은 심볼릭 링크로 연결하면 다음과 같은 이점이 있습니다.
- 중복 제거: 무거운 모델을 한 벌만 저장해 디스크 용량을 크게 절약합니다.
- 모델 공유: 여러 WebUI 버전이 같은 모델 폴더를 함께 사용합니다.
- 관리 일원화: 새 모델을 공용 폴더 한 곳에만 넣으면 모든 설치본에 반영됩니다.
공유 대상으로 자주 쓰는 폴더는 다음과 같습니다.
models폴더: 체크포인트(ckpt·safetensors) 등 모델 파일embeddings폴더: 임베딩(Textual Inversion) 파일outputs폴더: 생성된 이미지 결과물
리눅스·맥에서 ln -s 사용하기
리눅스와 맥에서는 ln -s 명령으로 심볼릭 링크를 만듭니다. 기본 형식은 ln -s 원본경로 링크이름입니다. 먼저 공용 폴더로 데이터를 옮긴 뒤, 원래 자리에 링크를 만드는 순서로 진행합니다.
# 1) 모델 폴더를 공용 디렉터리로 이동
mv models/ ../_DATA/
# 2) 원래 자리에 링크 생성 (원본경로 링크이름)
ln -s ../_DATA/models/ models
ln -s ../_DATA/outputs/ outputs
이렇게 하면 WebUI는 자기 폴더 안에 models가 그대로 있는 것처럼 동작하지만, 실제 파일은 ../_DATA/models/ 한 곳에만 존재합니다. 다른 버전의 WebUI에서도 동일하게 같은 공용 폴더를 가리키도록 링크를 만들면 모델이 공유됩니다.
링크가 잘 걸렸는지는 ls -al로 확인할 수 있습니다. 심볼릭 링크는 목록에서 models -> ../_DATA/models/처럼 화살표로 가리키는 대상이 함께 표시됩니다.
윈도우에서 mklink 사용하기
윈도우에서는 mklink 명령을 사용합니다. 폴더(디렉터리) 링크는 /D 옵션을 붙이며, 형식은 mklink /D 링크이름 원본경로로 리눅스와 인자 순서가 반대라는 점에 주의합니다. 관리자 권한 명령 프롬프트에서 실행해야 합니다.
:: 형식: mklink /D 링크이름 원본경로
mklink /D models D:_DATAmodels
mklink /D outputs D:_DATAoutputs
실행 위치는 WebUI 폴더(예: stable-diffusion-webui) 안이어야 하며, 미리 원래 models 폴더를 옮기거나 비워 둔 상태여야 합니다. 같은 이름의 폴더가 이미 있으면 링크 생성이 실패합니다.
주의할 점
- 원본을 옮기면 링크가 깨집니다: 링크는 경로만 가리키므로, 원본 폴더를 이동·이름 변경하면 연결이 끊깁니다. 이때는 링크를 지우고 다시 만들어야 합니다.
- 상대 경로와 절대 경로: 상대 경로(
../_DATA/...)는 링크가 만들어진 위치 기준입니다. 폴더 구조가 바뀔 수 있다면 절대 경로로 거는 편이 안전합니다. - 삭제 시 원본 확인: 심볼릭 링크 자체를 지우는 것은 안전하지만, 링크를 통해 내부 파일을 지우면 원본이 삭제됩니다.
- 백업 도구 동작: 일부 백업·동기화 프로그램은 링크를 실제 폴더로 따라가 중복 백업할 수 있으니 설정을 확인하세요.
자주 묻는 질문(FAQ)
심볼릭 링크와 일반 바로가기는 같은가요?
다릅니다. 윈도우의 바로가기(.lnk)는 탐색기에서만 동작하는 파일이지만, 심볼릭 링크는 운영체제 차원에서 실제 경로처럼 인식됩니다. 그래서 WebUI 같은 프로그램이 링크를 정상 폴더로 읽어 들일 수 있습니다.
링크를 잘못 만들었으면 어떻게 지우나요?
리눅스·맥에서는 rm 링크이름으로, 윈도우에서는 폴더 링크를 rmdir 링크이름으로 삭제합니다. 링크만 제거되고 원본 데이터는 그대로 남으니, 안심하고 지운 뒤 다시 만들면 됩니다.
여러 WebUI가 같은 모델을 동시에 써도 되나요?
네. 모델 파일은 읽기 위주로 사용되므로 여러 설치본이 같은 공용 폴더를 가리켜도 문제없습니다. 새 모델을 추가할 때 공용 폴더 한 곳에만 넣으면 모든 버전에서 바로 인식됩니다.
정리
심볼릭 링크는 무거운 모델 폴더를 한 곳에 모으고 여러 Stable Diffusion 설치본이 이를 공유하게 해, 디스크 용량을 아끼면서 모델 관리를 일원화하는 가장 간단한 방법입니다. 리눅스·맥은 ln -s, 윈도우는 mklink /D로 만들 수 있으며, 원본을 옮기면 링크가 깨진다는 점만 기억하면 여러 버전 환경을 훨씬 깔끔하게 운용할 수 있습니다.



💬 댓글 0