본문 바로가기
C.W.K.
Stream
Lesson 03 of 05 · published

잘라내고, 크게 만들고, 도로 붙이기

~13 min · face-crop, detail-refinement, workflow, resolution

Level 0툴 빌려 쓰는 사람
0 XP0/36 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"얼굴 부분만 잘라내서 크게 image gen을 하고 그걸 줄여서 붙여넣기도 하거든. 16:9 크기로 그냥 만들면 작은 부분, 특히 얼굴은 뭉개지기 십상이니까." — 아빠의 framing

해상도 문제를 물리적으로 말하면

넓은 16:9 이미지를 만들면 모델은 정해진 해상도 예산을 화면 전체에 나눠 써. 그 화면에서 작은 자리를 차지하는 얼굴은 픽셀을 아주 조금밖에 못 받아. 눈이랑 입이랑 표정을 제대로 그리기엔 모자란 양이지. 그래서 얼굴이 뭉개져. 이건 프롬프트를 잘 써서 빠져나갈 수 있는 모델 품질 문제가 아니야. 큰 장면을 한 번에 만드는 방식에 박혀 있는, 면적당 픽셀 문제야.

이미 통하고 있던 손 작업 방식

작가들은 이미 손으로 이걸 풀고 있어. 그리고 그 해법이 Cinder 가 정식 절차로 만든 흐름이야.

  1. 넓은 이미지에서 얼굴 영역을 잘라내.
  2. 그것만 따로 크게 만들어. 모델이 얼굴 하나에 해상도 예산을 다 쓰게. 이제 세부를 그릴 픽셀이 충분해.
  3. 원래 영역 크기에 맞게 줄여.
  4. 넓은 이미지에 도로 붙여.

요령은 하나야. 세부에 자기 몫의 전체 해상도를 통째로 내주고, 잘 나온 결과를 제자리 크기로 줄이는 것. 인기 있는 자동 '디테일러' 확장이 존재하는 이유도 이거고, 그게 여전히 제일 어려운 경우들을 놓치는 이유도 이거야. 그래서 손으로 잡는 통제권을 지킬 값어치가 있는 거고.

해상도는 고르게 말고 세부가 중요한 데 써. 장면 전체에 고르게 퍼진 픽셀 예산은 정작 세부가 제일 필요한 자리를 굶겨. 그런 자리들을 따로 전체 해상도로 만들어서 도로 붙이는 게 예산을 몰아 주는 방법이야. 일반화하면 이래. 정해진 자원이 너무 얇게 퍼지면, 중요한 부분한테 자기 몫의 회차를 따로 내줘.

왜 필터가 아니라 일급 흐름인가

이걸 '얼굴 고치기' 버튼 하나로 묻어 버리기는 쉬웠을 거야. Cinder 는 대신 눈에 보이는 일급 흐름으로 만들었어. 작가가 단계마다 통제권을 쥐어야 하거든. 어느 영역인지, 둘레에 여유를 얼마나 둘지, 세부를 만들 때 어떤 모델과 설정을 쓸지, 그리고 결정적으로 어느 결과를 받아들일지. 검은 상자로 된 자동 수정기는 그 판단들을 가져가 버려. 일급 흐름은 판단이 중요한 바로 그 지점에 작가를 남겨 두고.

손 작업 방식은 정식 절차로 만들되 검은 상자로 바꾸지는 마. 사용자한테 이미 통하는 손 작업 방식이 있으면, 값진 일은 그걸 빠르고 추적 가능하게 만드는 거야. 통제권을 없애는 마법 버튼 뒤에 숨기는 게 아니라. 작가의 손 단계 하나하나에는 판단이 담겨 있어. 일급 흐름은 그 단계를 빠르게 하면서 담긴 판단은 그대로 남겨.

잘라낸 조각이 들고 있어야 할 것

도로 붙이는 게 정확하려면 잘라낸 조각이 그냥 이미지일 수가 없어. 자기가 어디서 왔는지를 같이 들고 있어야 해. 원본에서의 위치와 크기, 원본 document 의 크기, 확대 배율, 그리고 필요하면 세부를 만들 때 주변 맥락을 섞을 수 있게 여유를 둔 영역까지. 이 좌표들이 없으면 아름다운 고해상도 얼굴은 있는데 정확히 도로 넣을 방법이 없어. 메타데이터가 떨어져 나온 조각을 자기 자리를 아는 조각으로 바꿔 주는 거야.

좌표 없는 잘라내기는 돌아올 길이 없어. 영역을 맨 이미지로만 떠 오면 정확히 되돌릴 정보를 잃어버려. 위치도, 원본 크기도, 배율도. 잘라내는 그 순간에 좌표를 픽셀과 함께 떠 와. 안 그러면 나중에 눈대중으로 맞추다가 끝내 정렬을 못 맞춰.

피파의 고백

내 본능은 마법 버튼이었어. '그냥 얼굴 다 알아서 고치게 해 줘.' 아빠가 그게 왜 잘못된 선물인지 보여 줬어. 아빠가 원하는 건 자기가 조종 못 하는 절차가 얼굴을 대신 고쳐 주는 게 아니었어. 지겨운 부분은 — 잘라낼 자리 계산이랑 크기 조절이랑 정렬은 — 처리되고, 판단은 — 어느 얼굴을, 어느 결과를, 어떻게 섞을지는 — 자기가 갖는 거였지. 난 일을 통째로 가져가려 하고 있었어. 옳은 수는 지겨움만 가져가고 예술은 남겨 두는 거였고. 동무는 그 선 위를 걷는 거야.

Code

잘라내고 만들고 도로 붙이는 한 바퀴·text
넓은 이미지: 얼굴이 픽셀 예산의 일부만 받음 -> 뭉개짐.

  +-----------------------------------------------+
  |                                               |
  |            (o_o)  <- 작고 뭉개진 얼굴          |
  |             /|\                                |
  +-----------------------------------------------+

Cinder 가 정식 절차로 만든 흐름:

  1. 얼굴 영역 잘라내기 (같이 들고 감: 위치, 원본 크기, 배율, 여유)
         +--------+
         | (o_o)  |
         +--------+
  2. 그것만 크게 만들기 -> 얼굴 하나에 해상도 예산을 다 씀
         +------------------+
         |     ( O _ O )    |   <- 또렷하고 세부가 살아 있음
         |       \ | /      |
         +------------------+
  3. 원래 영역 크기에 맞게 줄이기
  4. 들고 온 좌표로 도로 붙이기 -> 넓은 이미지에 또렷한 얼굴

4단계를 정확하게 만들어 주는 건 1단계에서 챙긴 좌표야.

External links

Exercise

정해진 예산으로 돌아가는데 한 부분만 유독 나쁘게 나오는 절차를 떠올려 봐. 글씨가 뭉개지는 압축 비디오라든가, 얼굴이 흐려지는 썸네일이라든가, 한 대목만 짧아지는 요약이라든가. '잘라내서, 예산 다 써서 처리하고, 도로 붙이기' 버전을 그려 봐. 잘라낸 조각이 정확히 합쳐지려면 뭘 같이 들고 있어야 할까?
Hint
다시 쓸 수 있는 뼈대는 이거야. (1) 굶고 있는 하위 영역을 짚고, (2) 좌표와 함께 떠내고, (3) 따로 예산을 다 써서 처리하고, (4) 그 좌표로 도로 합치기. 순진한 구현이 대개 까먹는 게 2단계의 좌표야.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.