
🔍 ControlNet이란?
ControlNet은 AI 그림 생성 시, 기존 이미지의 일부 구조를 그대로 유지하면서 그림을 그릴 수 있게 해주는 확장 기능입니다.
일반적인 텍스트 프롬프트만으로는 정확한 구도나 포즈를 만들어내기 어려운 경우,
ControlNet을 통해 선, 포즈, 깊이, 스타일 등을 보조 입력으로 추가해 더욱 정밀한 결과를 얻을 수 있습니다.
●Stable Diffusion WebUI reforge 설치 방법
https://memorywalker.tistory.com/1
[2025]Stable Diffusion ReForge 설치 방법 (Python 3.11 + Xformers + SageAttention)
한동안 Stable Diffusion 을 사용해서 많은 그림을 그려왔는데 Stable Diffusion에도 기본이되는WEBUI가 있는 반면 FLUX 모델을 불러서 읽을 수 있는 FORGE 모델과 많은 분들 노력 끝에나온 REFORGE라는 최적화
memorywalker.tistory.com
오늘은 reforge 포함어 있는 확장프로그램인 ControlNet에 대해 적어볼까 합니다.
일반적인 Stable Diffusion 인경우 ControlNet은 따로 Extensions에서 install로 따로 받으시거나
cmd에서 git으로 저장소에서 받아오셔야 됩니다.


그리고 reforge의 ControlNet 내부에 저장이 되어있기 때문에 모델 설치 하실 때
C:\stable-diffusion-webui-reForge\models\ControlNet 폴더에 넣어주시면 됩니다.
lllyasviel/sd_control_collection at d1b278d0d1103a3a7c4f7c2c327d236b082a75b1
Detected Pickle imports (3) "torch._utils._rebuild_tensor_v2", "torch.HalfStorage", "collections.OrderedDict" What is a pickle import?
huggingface.co
●컨틀롤 넷에 종류
| 1 | ✅ Canny | 윤곽선 기반, 오늘 할 예정 |
| 2 | ⏳ OpenPose | 인체 포즈 기반, img2img용으로도 |
| 3 | ⏳ Depth | 공간감 유지, ZOE/MI-DAS 지원 |
| 4 | ⏳ Lineart | 스케치 그림 변환용 |
| 5 | ⏳ Reference | 스타일/배치 유지 |
⚠ ControlNet에는 버전 호환이 중요합니다!
ControlNet에서 사용하는 모델 파일들은 Stable Diffusion의 버전과 맞아야 제대로 작동합니다.
- SD 1.5 전용 ControlNet 모델은 control_sd15_xxx 형식
- SDXL 전용 모델은 diffusers_xl_, t2i-adapter_xl_ 등의 형식
버전을 맞추지 않으면 **모델 로딩은 되더라도 이미지 생성 중 오류(TypeError 등)**가 발생할 수 있으니 주의가 필요합니다.
오늘 테스트할 Canny에 대해 적도록 하겠습니다.
●컨트롤 넷은 Stable Diffusion의 경우 아래 그림 처럼 옵션이 나옵니다..

V표시 체크를 하면 컨트롤넷이 활성화가 됩니다. 위를 체크하게 되면 아래 enable는 자동으로 체크가 됩니다.
1. 원하는 포즈의 이미지를 불러옵니다.
2. 원하는 모델을 설정해줍니다. 오늘은 canny를 하기 위해 canny 체크를 해줬습니다.
3. 체크한 모델 종류의 모델 드롭다운 형태로 적용이 됩니다. 4. 드롭다운을 하신 후 자신이 쓸 모델(canny)을 설정합니다.
모델 적용버튼을 눌러줍니다.

●allow preview를 눌러주면 적용한 이미지의 형태를 보실 수 있습니다.
적용이 끝나면....
tx2img 프롬프트란에 이미지 그리기를 하시면 그 포즈가 적용이 됩니다.
2가지의 프롬프트로 각각 모델을 불러 테스트 해봤습니다.
●첫번째 프롬프트
a female warrior in leather armor, standing with one hand on her sword hilt, fantasy background, cinematic lighting
● 두번째 프롬프트
anime-style girl standing in a cherry blossom park, one hand on her hip, smiling, soft pastel colors
전 CANNY에 관한 모델은 이렇게 4개를 받아놨는데요. 그중에 3가지만 해봤습니다. 하나는 full모델에 들어가 있기 대문에 생략했습니다.





컨트롤 넷을 적용해서 프롬프트로 제네레이션(실행)을 누르면 아래처럼 컨트롤 넷에서 설정한 동작 표시가 되어있는 걸 보실 수 있습니다. 아래는 t2i-adapter_diffusers_xl_canny.safetensors를 이용했지만 손을 허리에 두는 모션 재현을 못했네요. 그에 반해 애니메이션 스타일은 적용이 되었습니다. 이처럼 적용이 잘 안 될 때는 Control Weight의 값을 조금 높여 보시면 서 테스트 해보시면 됩니다.


▣ControlNet 하단 옵션 상세 설명
⊙Control Weight (기본값: 1)
ControlNet이 전체 이미지에 영향을 미치는 강도
- 1.0: 포즈/윤곽 100% 반영
- 0.5: 중간 정도 영향력
- 0.0: ControlNet 영향 없음
🎯 팁:
테스트할 땐 1.0으로 시작해서 점점 낮춰보면 포즈 반영 정도 차이를 확인할 수 있습니다.
⊙Starting / Ending Control Step
ControlNet이 작동하는 시점(스텝 구간)을 조절
- 0 ~ 1: 전체 생성 과정에 걸쳐 ControlNet을 사용
- 0.2 ~ 0.8: 중간 부분에만 사용
- 예: Start=0.0, End=0.5 → 초기 형태만 따라가고 나중에 자유롭게 뭉개짐
🎯 팁:
0~1은 완전 제어,
0.2~0.6은 자유도 있는 스타일링
⊙Resolution (512)
ControlNet 프리프로세서가 입력 이미지를 분석할 때 사용하는 해상도
- 너무 높으면 메모리↑ 속도↓
- 너무 낮으면 윤곽 정확도↓
- 보통 512, 768, 1024 사이에서 실험
🎯 팁:
이미지 입력이 768x1024면 768 맞춰도 되고,
속도 아끼려면 512로도 충분함 (Canny 기준)
⊙Low Threshold / High Threshold (100 / 200)
Canny 윤곽선 추출 경곗값 설정
- 낮으면 더 많은 선이 잡힘 → 디테일↑, 노이즈↑
- 높으면 간단한 윤곽만 남음 → 심플함↑, 세부↓
| 50 / 150 | 디테일한 라인 (옷 주름 등도 잡힘) |
| 100 / 200 | 일반적인 윤곽선 |
| 150 / 250 | 매우 단순화된 윤곽만 남김 |
🎯 팁:
사람 실루엣만 쓰려면 150/250도 괜찮고,
옷 주름까지 살리려면 50/150 추천
⊙Control Mode
| Balanced | 프롬프트와 ControlNet 영향력 균형 적용 (기본 추천) |
| Prefer Prompt | 프롬프트 내용 우선 적용 (포즈 무시될 수 있음) |
| Prefer ControlNet | ControlNet이 포즈·구조 강제 적용 |
🎯 팁:
- 대부분은 Balanced 유지
- 특정 구조를 강제로 따라가게 하고 싶으면 Prefer ControlNet도 좋아
⊙Resize Mode
ControlNet 입력 이미지와 SD 출력 이미지 크기가 다를 때 어떻게 맞출지를 결정
| Just Resize | 입력 이미지를 그대로 늘림/줄임 (왜곡 생길 수 있음) |
| Crop and Resize | 입력 이미지를 중앙 기준으로 잘라서 비율 맞춤 |
| Resize and Fill | 입력 이미지를 늘리고 빈 여백을 채움 (배경 채워짐) |
🎯 팁:
- 사람 전신 포즈 → Crop and Resize 안정적
- 풍경이나 박스형 → Resize and Fill도 괜찮음
⊙Presets (프리셋 저장 기능)
- 설정값들을 저장해서 다음에 클릭 한 번으로 불러올 수 있는 기능
- 오른쪽 아이콘:
- 💾 : 저장
- 🗑 : 삭제
- 🔁 : 초기화
🎯 팁:
Canny / OpenPose / Depth 등 자주 쓰는 프리셋 만들어두면
테스트할 때 매우 빠름!
⊙정리
| Control Weight | 포즈 반영 강도 |
| Start/End Step | 포즈 반영 범위 (시점) |
| Resolution | 프리프로세서 처리용 해상도 |
| Thresholds | 윤곽선 디테일 조절 |
| Mode 설정 | 프롬프트 vs ControlNet 우선순위 |
| Resize 방식 | SD 출력 이미지와 포즈 이미지 비율 매칭 방법 |
오늘은 **Stable Diffusion(WebUI)**에서 지원하는 ControlNet 기능에 대해 간단히 살펴보고,
ControlNet에서 사용되는 다양한 방식 중 가장 기본적인 Canny 방식을 테스트해 봤습니다.
다음에 다른 가이드로 찾아뵙겠습니다.
'설치가이드,Installation Guide' 카테고리의 다른 글
| ControlNet으로 이미지 포즈를 그대로 적용 -openpose에 대해 알아보자 (0) | 2025.09.17 |
|---|---|
| cumfyui 작게 만들고 ai로 선명하게 키운다 업스케일 모델 적용 (0) | 2025.09.14 |
| cumfyui wan2.2 모델 설치와 영상 만들어보기 (0) | 2025.09.13 |
| cumfyui용 flux kontext로 이미지를 바꿔보자 워크플로 포함 (0) | 2025.09.13 |
| Python +triton+SageAttention 조금 더 빠른 이미지 생성 (0) | 2025.09.10 |