생성형 AI 심화

컨트롤넷ControlNet

밑그림으로 생성 이미지의 형태를 붙잡는 장치

핵심 정리
  • 컨트롤넷(ControlNet)은 이미지를 만들 때 형태를 그림으로 지정해 주는 장치예요. 말로 옮기기 어려운 구도와 자세를 밑그림으로 건네요.
  • 글만 주면 색과 분위기는 맞아도 무엇이 어디에 놓일지는 뽑을 때마다 달라져요. 컨트롤넷은 그 자리를 붙잡아 둬요.
  • 밑그림은 윤곽선, 뼈대 선, 멀고 가까움, 색 덩어리처럼 여러 종류가 있고, 고르는 종류에 따라 붙잡히는 것이 달라져요.
  • 원래 모델은 잠가 둔 채 곁가지 하나만 덧붙여 학습해요. 그래서 밑그림 종류를 갈아 끼우듯 바꿔 쓸 수 있어요.
  • 붙잡는 세기를 조절할 수 있어요. 세게 잡으면 밑그림대로, 느슨하게 잡으면 자유롭게 벗어나요.
목차

1비유로 이해하기

바지 앞에 세로로 곧게 선 줄 하나를 떠올려 보세요. 다리미로 한 번 눌러 두면 그 자리가 접히는 자리로 정해져요. 천의 색도, 무늬도, 두께도 그대로예요. 정해진 것은 어디가 접히느냐 하나뿐이에요.

세게 오래 눌러 두면 선이 칼같이 서서 어떻게 움직여도 그 자리로만 접혀요. 스치듯 살짝 대면 선이 흐릿해서 걸을 때마다 조금씩 밀려요. 잡을 자리도 하나가 아니에요. 바깥 테두리를 따라 잡을 수도 있고, 가운데 한 줄만 잡을 수도 있어요.

컨트롤넷은 그림을 만드는 자리에 이 선을 미리 잡아 두는 일이에요. 색과 재질과 분위기는 말로 주문하고, 무엇이 어디에 놓일지는 잡아 둔 선이 정해요.

2자세히 알아보기

말로는 자리를 정하기 어려워요

주문 문장은 무엇을 그릴지 정하는 데는 잘 통해요. 그런데 "왼쪽에서 빛이 들어오고, 창틀이 화면 오른쪽 위 삼분의 일 지점에 걸치고, 의자는 살짝 비스듬히" 같은 요구는 문장으로 옮기는 순간 뭉개져요. 같은 문장을 열 번 넣으면 열 번 다른 배치가 나와요.

뽑기 번호를 고정하면 같은 그림이 다시 나오기는 해요. 하지만 그건 그림 한 장을 붙잡아 두는 것이지 구도를 붙잡는 것이 아니에요. 문장을 한 글자만 고쳐도 화면 전체가 다시 흐트러져요.

컨트롤넷은 이 문제를 말로 풀지 않아요. 원하는 배치를 선으로 그려서 그대로 건네요. 문장은 문장대로 두고, 자리는 선으로 정하는 방식이에요.

건네는 것은 그림이 아니라 선 한 겹이에요

건네는 밑그림은 완성된 그림이 아니에요. 사진에서 경계선만 뽑아낸 선 그림, 관절 위치만 이어 놓은 뼈대 선, 화면 각 자리가 얼마나 멀리 있는지를 밝기로 표시한 농담 지도처럼 정보를 한 겹만 남긴 그림이에요.

한 겹만 남기는 데는 이유가 있어요. 참고 사진을 통째로 넣으면 색과 재질까지 따라와서 새로 만들 여지가 사라져요. 경계선만 남기면 형태는 지켜지면서 색과 질감 자리는 비어 있게 되고, 그 빈자리를 주문 문장이 채워요. 다림질로 잡는 것이 천이 아니라 접히는 자리 하나인 것과 같아요.

밑그림을 손으로 그릴 필요도 없어요. 참고 사진 한 장을 넣으면 선이나 뼈대를 뽑아 주는 도구가 따로 있어서, 그 결과를 그대로 씁니다. 물론 직접 선을 그어 넣어도 돼요.

원래 것은 그대로 두고 선만 얹어요

컨트롤넷은 이미지 생성 모델을 새로 만들지 않아요. 이미 학습을 끝낸 모델은 손대지 않고 잠가 둔 채, 그 옆에 같은 모양의 사본을 하나 두고 사본만 학습시켜요. 사본은 밑그림을 읽어서 "여기에 선이 있다"는 신호로 바꾸는 일을 배워요.

사본이 만든 신호는 원래 모델이 그림을 다듬는 중간중간에 더해져요. 처음에는 이 신호가 아무 영향도 주지 않게 눌러 두었다가, 학습이 진행되면서 조금씩 제 몫을 하도록 열어 줘요. 천의 짜임은 건드리지 않고 접히는 자리만 더하는 것과 같은 방식이에요.

이 구조 덕분에 밑그림 종류마다 곁가지를 따로 만들어 두고 필요할 때 갈아 끼울 수 있어요. 선을 붙잡는 곁가지와 자세를 붙잡는 곁가지를 각각 붙였다 떼고, 둘을 한꺼번에 붙이는 것도 돼요.

얼마나 세게, 어디까지 잡을지

밑그림을 얼마나 세게 따를지는 손잡이 하나로 조절해요. 세게 잡으면 선을 한 치도 벗어나지 않지만 그림이 뻣뻣해지고 선 바깥이 빈약해져요. 느슨하게 잡으면 자연스러워지는 대신 구도가 조금씩 밀려요. 다리미를 오래 누르느냐 스치듯 대느냐의 차이와 같아요.

언제부터 언제까지 붙잡을지도 정할 수 있어요. 그림은 흐릿한 덩어리에서 시작해 여러 단계를 거치며 또렷해지는데, 큰 배치는 앞 단계에서 정해지고 잔무늬는 뒤 단계에서 정해져요. 그래서 앞쪽 단계만 붙잡고 뒤쪽을 놓아 주면 구도는 지키면서 세부는 자유롭게 나와요.

무엇을 붙잡을지 고르는 일

같은 사진에서 뽑아도 어떤 밑그림을 쓰느냐에 따라 결과가 크게 갈려요. 경계선을 쓰면 원본의 외곽이 거의 그대로 남고, 뼈대 선만 쓰면 자세만 같고 나머지는 완전히 새로 나와요. 멀고 가까움만 쓰면 공간 배치만 남고 무엇을 놓을지는 주문 문장이 정해요.

그래서 "무엇을 지키고 무엇을 바꿀 것인가"를 먼저 정한 다음 밑그림 종류를 고르는 게 순서예요. 지킬 것을 너무 많이 넣으면 새로 만들 여지가 없어지고, 너무 적게 넣으면 붙잡은 보람이 없어져요.

3조금 더 정확하게

컨트롤넷은 이미지 생성 모델에 조건 입력을 하나 더 붙이는 구조예요. 학습을 마친 모델의 값은 고정해 두고, 앞부분을 복사해 만든 사본이 밑그림을 받아 특징으로 바꾼 뒤 그 결과를 원래 모델의 중간 단계마다 더해 줘요. 사본과 원래 모델을 잇는 연결은 처음에 아무것도 흘려보내지 않는 상태로 시작해서, 학습 초반에 원래 성능을 해치지 않아요.

다림질 비유가 어긋나는 지점도 있어요. 눌러 잡은 선은 그 자리로만 접히게 하는 물리적인 힘이지만, 컨트롤넷은 강제가 아니라 단계마다 힌트를 더해 주는 방식이에요. 그래서 세기를 낮추면 선을 넘어가고, 주문 문장과 밑그림이 서로 어긋나면 양쪽 다 어중간한 그림이 나오기도 해요. 선은 사람이 자리를 보고 잡지만 밑그림은 대개 참고 이미지에서 자동으로 뽑아낸다는 차이도 있어요.

4직접 해보기

5흔한 오해

  • 밑그림을 넣으면 그 그림에 색을 칠해 준다고 생각하기 쉽지만, 실제로는 그림을 처음부터 새로 만들면서 형태만 밑그림 쪽으로 끌어당겨요.

  • 컨트롤넷을 쓰면 모델을 다시 학습시키는 것이라고 여기기 쉽지만, 실제로는 원래 모델은 잠긴 채 그대로 있고 옆에 붙인 곁가지만 학습돼요.

  • 밑그림이 정밀할수록 결과가 좋다고 생각하기 쉽지만, 실제로는 선이 너무 촘촘하면 새로 만들 여지가 사라져 딱딱하고 어색한 그림이 나와요.

7한 줄 요약

그러니까컨트롤넷은 그림을 만들기 전에 접히는 자리를 다려 두는 것과 같아서, 색과 분위기는 말로 주문하고 형태는 잡아 둔 선으로 붙잡을 수 있어요.

잘못된 내용이나 더 좋은 비유가 있나요? 수정 제안 보내기 · 마지막 수정2026-09-02