콘텐츠 대표 이미지 - 사진이 그림이 되는 마법, 스타일 변환(Style Transfer)의 진짜 원리

사진이 그림이 되는 마법, 스타일 변환(Style Transfer)의 진짜 원리

"내 셀카를 고흐가 그렸다면?" 그 궁금증을 수학으로 풀어낸 이야기

0. 들어가며 — 우리 다 한 번쯤 해봤잖아

야, 솔직히 말해봐. 한 번쯤 해봤지?

앱에 셀카 하나 올려놓고 "고흐 스타일" 버튼 누르고,
3초 뒤에 나온 소용돌이치는 별밤 셀카 보면서 "오 이거 프사각인데?" 하고 저장했던 거.

2016년쯤 Prisma라는 앱이 터졌을 때 인스타가 온통 유화로 도배됐던 거 기억나?
그때 사람들이 다 이랬어. "이거 어떻게 하는 거지? 사람이 그려주나?"

당연히 사람이 그려주는 거 아니고, 필터도 아니야.
포토샵의 '유화 효과' 같은 거랑은 근본이 완전히 달라.

오늘은 그 스타일 변환(Neural Style Transfer)이 도대체 무슨 짓을 하는 건지,
친구한테 카페에서 설명하듯이 처음부터 끝까지 다 뜯어볼 거야.

스포일러 요약: 컴퓨터는 "그림을 그리는" 게 아니야.
노이즈 이미지 하나 띄워놓고, 점수가 좋아지는 방향으로 픽셀을 계속 조금씩 흔들어대는 것뿐이야.
근데 그 '점수'를 어떻게 정의하느냐가 이 분야 전체의 핵심이지.

스타일 변환의 기본 구조 콘텐츠 이미지 "무엇이 있는가" 스타일 이미지 "어떻게 칠했는가" 결과 이미지 구조 + 질감 최종 이미지 = 콘텐츠 손실 + 스타일 손실 최소화

1. 먼저, "스타일"이 대체 뭔데?

이게 제일 중요한 질문이야. 여기서 막히면 뒤에 아무것도 이해가 안 돼.

그림을 볼 때 우리는 두 가지를 동시에 봐. 근데 뇌가 너무 빨라서 구분을 못 할 뿐이야.

① 콘텐츠(Content) — "무엇이 그려져 있나"

사람 얼굴, 나무, 건물, 강아지. 객체의 정체성과 배치야.
고흐가 그리든 사진으로 찍든, 사이프러스 나무는 사이프러스 나무잖아.
이건 공간적 구조 정보라고 부를 수 있어.

② 스타일(Style) — "어떻게 칠해져 있나"

붓 터치의 굵기, 색 팔레트, 질감의 거칠기, 선의 흐름, 대비의 강도.
여기서 핵심은 이거야.

스타일은 "어디에 있는지"와 무관한 정보다.
고흐의 소용돌이 붓질은 그림 왼쪽 위에 있든 오른쪽 아래에 있든 똑같이 '고흐스러움'이야.
즉 스타일 = 위치 정보를 제거한 통계적 특성이지.

이 한 줄이 2015년 논문 하나를 만들었고, 그게 오늘날 모든 AI 그림 필터의 조상이 됐어.

비유로 이해하기 🍜

라면을 생각해봐.

콘텐츠 = 면, 계란, 파, 국물 — 무슨 재료가 어떤 순서로 들어갔나
스타일 = 맵기, 짠기, 기름짐, 감칠맛 — 전체적으로 어떤 맛이 나나

맛(스타일)은 "3시 방향 국물이 맵다"처럼 위치로 말하지 않잖아?
전체를 섞어서 평균 낸 특성이지. 스타일도 똑같아.

2. 출발점 — 2015년, 독일에서 터진 논문 한 편

2015년 8월, 독일 튀빙겐 대학의 Leon Gatys, Alexander Ecker, Matthias Bethge 세 사람이
"A Neural Algorithm of Artistic Style"이라는 논문을 arXiv에 올렸어.

분량도 짧고, 새로운 신경망을 만든 것도 아니야.
이미 있던 VGG-19라는 이미지 분류용 신경망을 그대로 갖다 쓴 것뿐이었어.

근데 그 발상이 미쳤지. 이런 거였거든.

"이미지 분류하려고 학습시킨 신경망이 있는데,
얘가 중간 층에서 뽑아내는 특징(feature)을 뜯어보면
콘텐츠와 스타일이 이미 분리되어 있는 것 같은데?"

왜 하필 '분류' 신경망을 썼을까

이게 은근 감동 포인트야.

VGG-19는 원래 ImageNet이라는 1400만 장짜리 사진 데이터셋으로
"이건 고양이, 저건 자동차" 맞추는 훈련을 받은 모델이야.
그림 그리는 거랑은 1도 상관없어.

근데 고양이를 정확히 맞추려면 신경망이 뭘 배워야 할까?

1단계 — 선, 모서리, 색 경계 같은 아주 기초적인 패턴
2단계 — 무늬, 질감, 반복 패턴
3단계 — 눈, 코, 귀 같은 부분 형태
4단계 — "고양이 얼굴"이라는 전체 개념

즉, 신경망은 층을 올라갈수록 "디테일"을 버리고 "의미"를 챙긴다는 거야.
그리고 Gatys는 여기서 무릎을 쳤어.

"낮은 층 = 질감(스타일), 높은 층 = 의미(콘텐츠)잖아!"

CNN은 층이 깊어질수록 무엇을 보는가 conv1 선·모서리 conv2~3 질감·무늬 conv4 부분 형태 conv5 객체 개념 스타일은 주로 얕은 층에서 추출 콘텐츠는 깊은 층에서 추출

3. 콘텐츠 손실 — "형태가 안 망가지게 붙잡아두기"

자, 이제 실제 계산으로 들어가보자. 어렵지 않아, 진짜로.

우리가 만들고 싶은 결과 이미지를 X라고 하자.
처음엔 X가 그냥 랜덤 노이즈야. TV 지지직 화면 같은 거.
(구현에 따라 콘텐츠 이미지를 복사해서 시작하기도 해. 이게 더 빠르고 안정적이야.)

그리고 원본 사진을 C라고 하자.

방법: 같은 층에서 뽑은 특징을 비교

X와 C를 둘 다 VGG에 통과시켜.
그리고 예를 들어 conv4_2 층에서 나온 특징 맵(feature map)을 꺼내.

L_content = (1/2) × Σ (F_X[i,j] - F_C[i,j])²

그냥 두 특징 맵의 픽셀별 차이를 제곱해서 다 더한 것이야.
중학교 수학 수준이지? 이게 진짜 전부야.

여기서 포인트 ⚡

왜 원본 픽셀을 비교하지 않고 특징 맵을 비교할까?

픽셀을 그대로 비교하면 결과물이 원본 사진과 완전히 똑같아져야만 손실이 0이 돼.
그럼 스타일을 입힐 여지가 없잖아.

근데 깊은 층의 특징 맵은 "여기에 얼굴이 있다", "여기에 나무가 있다" 수준의 정보만 담고 있어.
그래서 색이 바뀌고 붓질이 들어가도 손실이 크게 늘지 않아.
즉, "구조는 지키되 표현은 자유롭게" 할 수 있는 거지.

실제로 얕은 층(conv1_1)으로 콘텐츠 손실을 계산하면?
결과가 원본 사진이랑 거의 똑같이 나와. 스타일이 안 먹혀.

반대로 너무 깊은 층(conv5_2)을 쓰면?
형태가 뭉개져서 "이게 사람이었나...?" 싶은 추상화가 나와.

그래서 대부분 conv4_2를 써. 경험적으로 균형이 제일 좋거든.

4. 스타일 손실 — 그람 행렬(Gram Matrix)이라는 마법

여기가 이 글의 하이라이트야. 집중!

아까 말했지. 스타일 = 위치와 무관한 통계라고.
그럼 위치 정보를 어떻게 날려버릴까?

특징 맵의 구조부터 이해하기

어떤 conv 층을 통과하면 결과물이 이렇게 생겨.

크기: (채널 수 C) × (높이 H) × (너비 W)

예를 들어 conv3_1이면 256 × 56 × 56 정도.

채널 하나하나가 "특정 패턴 감지기"야.
17번 채널은 "45도 대각선"에 반응하고,
83번 채널은 "빨간 소용돌이"에 반응하고,
201번 채널은 "거친 붓 질감"에 반응하는 식.

그람 행렬: 채널끼리의 '동시 출현' 통계

그람 행렬은 이걸 계산해.

G[i][j] = Σ_k ( F[i][k] × F[j][k] )

F: 특징 맵을 (C × HW)로 펼친 행렬
i, j: 채널 번호
k: 공간 위치 (0 ~ HW-1)

말로 풀면 이래.

"i번 채널과 j번 채널이 얼마나 자주 같이 활성화되는가?"

여기서 핵심은 k(위치)에 대해 전부 더해버린다는 거야.
더해버리는 순간 "어디서 일어났는지"는 완전히 증발해.
남는 건 "이 이미지 전체에서 어떤 패턴 조합이 얼마나 강한가"뿐.

실전 예시로 감 잡기 🎨

고흐의 <별이 빛나는 밤>을 넣었다고 치자.

• "곡선 소용돌이" 채널 → 강하게 활성
• "파란색" 채널 → 강하게 활성
• "굵은 붓 터치" 채널 → 강하게 활성

그람 행렬은 이 셋이 동시에 자주 켜진다는 걸 기록해.
즉 "굵은 파란 소용돌이 붓질"이라는 조합이 이 그림의 정체성인 거지.

그리고 이 조합은 캔버스 어느 위치에서 일어났는지는 중요하지 않아.
그게 바로 우리가 '스타일'이라고 부르는 것의 수학적 정의야.

스타일 손실 공식

E_layer = (1 / (4 × N² × M²)) × Σ (G_X[i,j] - G_S[i,j])²

L_style = Σ_layers ( w_layer × E_layer )

N: 채널 수, M: H×W, w: 층별 가중치

스타일은 여러 층을 한꺼번에 사용해.
보통 conv1_1, conv2_1, conv3_1, conv4_1, conv5_1 다섯 개를 쓰지.

왜 여러 개냐고?
얕은 층은 미세한 붓결을, 깊은 층은 큰 덩어리 패턴을 담당하거든.
다 합쳐야 "고흐다움"이 완성돼.

그람 행렬: 위치를 지우고 관계만 남기기 특징 맵 (C × H × W) 위치 정보가 살아있음 펼치기 C × HW 행 = 채널 / 열 = 위치 F · Fᵀ 그람 행렬 (C × C) 위치 정보 완전 소거 G[i][j] = i번 채널과 j번 채널의 동시 활성 강도 "굵은 붓 + 파란색 + 소용돌이"가 자주 함께 등장 → 고흐다움 어디서 등장했는지는 기록하지 않는다

5. 최적화 — 이미지를 '학습'시킨다는 발상

보통 딥러닝은 모델의 가중치를 학습시키잖아.
근데 Gatys 방식은 완전히 뒤집혀 있어.

모델은 얼려두고(freeze), 이미지 픽셀 자체를 학습시킨다.

VGG의 가중치는 하나도 안 건드려. 그냥 '측정 도구'로만 써.
대신 결과 이미지 X의 모든 픽셀값이 학습 파라미터가 돼.

전체 손실 함수

L_total = α × L_content + β × L_style

그리고 이걸 최소화하는 방향으로 X를 계속 업데이트해.

for step in range(500~2000):
    features = VGG(X)
    loss = α*content_loss + β*style_loss
    gradient = ∂loss / ∂X      ← 이미지에 대한 기울기!
    X = X - learning_rate * gradient

500번쯤 반복하면 노이즈였던 X가 서서히 그림이 돼.
진짜로 화면에서 그림이 자라나는 걸 볼 수 있어. 이거 처음 보면 좀 소름 돋아.

α와 β의 비율이 전부다

α : β 비율결과
1 : 10³ (스타일 약함)거의 원본 사진. 색감만 살짝 바뀜
1 : 10⁴사진 형태 유지 + 은은한 붓 터치. 가장 실용적
1 : 10⁵확실한 회화 느낌. 프사 각
1 : 10⁶ 이상형태 붕괴. 추상 텍스처 덩어리

앱에서 "강도" 슬라이더 움직이는 게 사실상 이 비율 조절하는 거야.

옵티마이저 잡담 🔧

원논문은 L-BFGS를 썼어. 2차 정보를 쓰는 준-뉴턴 방식이라 수렴이 빨라.
근데 메모리를 많이 먹어서, 요즘 구현체들은 Adam을 쓰는 경우가 많아.
Adam은 반복 횟수가 더 필요하지만 안정적이고 GPU 메모리에 친절하지.

6. 문제 발생 — "한 장에 3분이요?"

Gatys 방식은 아름다웠지만 치명적인 단점이 있었어.

이미지 한 장 만드는 데 최적화를 처음부터 다시 돌려야 해.

2015년 GPU 기준으로 512px 이미지 한 장에 몇 분이 걸렸어.
실시간? 앱? 동영상? 꿈도 못 꾸지.

해결책 ① Fast Style Transfer (2016, Johnson et al.)

스탠퍼드의 Justin Johnson이 낸 아이디어가 기가 막혔어.

"매번 최적화하지 말고, 최적화 결과를 흉내내는 신경망을 따로 학습시키자."

구조는 이래.

변환 네트워크(Transform Net) — 이미지 넣으면 스타일 입힌 이미지가 바로 나오는 CNN
손실 네트워크(Loss Net) — VGG. 얘는 채점만 함, 학습 안 함

COCO 데이터셋 8만 장으로 변환 네트워크를 며칠 학습시켜놓으면,
이후엔 이미지 한 번 통과(1 forward pass)로 끝. 수십 밀리초.

여기서 Perceptual Loss(지각 손실)라는 개념이 정립돼.
"픽셀이 같은가"가 아니라 "사람 눈에 비슷하게 보이는가"를 손실로 쓰는 거지.
이 개념은 이후 초해상도(Super Resolution), 이미지 복원 등 온갖 분야로 퍼져나가.

단점? 스타일 하나당 모델 하나를 학습시켜야 했어.
고흐용 모델, 뭉크용 모델, 우키요에용 모델... 앱 용량이 터지지.

해결책 ② AdaIN (2017, Huang & Belongie)

이건 진짜 우아해. 발상이 너무 단순해서 허무할 정도야.

AdaIN(x, y) = σ(y) × ( (x - μ(x)) / σ(x) ) + μ(y)

x: 콘텐츠 특징
y: 스타일 특징
μ: 채널별 평균, σ: 채널별 표준편차

해석하면 이래.

1) 콘텐츠 특징을 정규화해서 원래 통계를 지워버려
2) 거기에 스타일 이미지의 평균과 분산을 덮어씌워

"어? 그람 행렬 안 써도 돼요?"

응. 놀랍게도 채널별 평균과 분산만 맞춰도 스타일이 거의 전달돼.

이론적으로도 근거가 있어. 그람 행렬 매칭과 평균·분산 매칭은
수학적으로 거의 동등한 효과를 낸다는 게 나중에 증명됐거든.

그리고 이 방식은 학습 안 된 새로운 스타일도 즉석에서 적용 가능해.
Arbitrary Style Transfer(임의 스타일 변환)의 시작점이야.

스타일 변환 기술의 진화 Gatys 2015 최적화 기반 수 분 / 장 Johnson 2016 피드포워드 수십 ms / 장 AdaIN 2017 임의 스타일 모델 1개로 전부 확산모델 2022~ 텍스트 제어 "~풍으로" 한 마디 느리지만 자유롭게 → 빠르지만 고정 → 빠르고 자유롭게

7. 요즘은? 확산 모델(Diffusion)의 시대

2022년 이후 판도가 완전히 바뀌었어.
Stable Diffusion, Midjourney 같은 확산 모델이 등장하면서
"스타일 변환"이라는 개념 자체가 확장됐거든.

확산 모델의 기본 원리 (초간단 버전)

확산 모델은 이렇게 훈련돼.

1단계 (순방향): 깨끗한 이미지에 노이즈를 조금씩 계속 넣어서 완전 지지직으로 만들어.
2단계 (역방향): "이 노이즈 낀 이미지에서 노이즈만 콕 집어내봐"를 수억 번 훈련시켜.

그럼 나중엔 순수 노이즈에서 시작해서 노이즈를 걷어내는 방식으로 이미지를 생성할 수 있게 돼.

여기에 스타일을 어떻게 넣나

① img2img + 강도(strength)
원본 사진에 노이즈를 중간까지만 넣고, 거기서 프롬프트("유화, 고흐 풍")를 주고 복원시켜.
노이즈를 적게 넣으면 원본 유지, 많이 넣으면 완전 재해석.

② ControlNet
원본 이미지의 외곽선(Canny), 깊이(Depth), 자세(OpenPose)를 뽑아서
"이 구조는 무조건 지켜"라고 강제해. 구조 보존력이 압도적이야.

③ LoRA / IP-Adapter
특정 화풍을 담은 소형 가중치를 얹어서 원하는 스타일을 정밀하게 재현.

근데 옛날 방식이 죽은 건 아니야

비교 항목Gatys·AdaIN 계열확산 모델 계열
속도매우 빠름 (실시간 가능)느림 (수 초~수십 초)
연산 자원가벼움, 모바일 가능무거움, GPU 필수
구조 보존매우 정확ControlNet 없으면 흔들림
창의적 재해석제한적 (질감 변환 위주)매우 강력 (없던 요소도 생성)
결과 예측일관적시드마다 편차 큼

실제로 모바일 앱의 실시간 카메라 필터, 영상 프레임 처리 같은 곳에선
지금도 AdaIN 계열이 현역이야. 가볍고 안정적이거든.

8. 실전에서 결과가 망하는 이유 TOP 5

이론은 알겠는데 막상 돌리면 이상하게 나오지? 흔한 원인들이야.

① 해상도 불일치

콘텐츠는 4K인데 스타일 이미지가 300px이면?
붓 터치가 상대적으로 너무 작아져서 지저분한 노이즈처럼 보여.

해결: 두 이미지의 "패턴 스케일"을 비슷하게 맞춰.
스타일 이미지를 확대하거나, 콘텐츠를 축소해서 여러 번 처리 후 합치는 멀티스케일 방식을 써.

② 색이 싹 바뀌어버림

그람 행렬은 색 정보도 스타일에 포함시켜. 그래서 인물 피부색이 파래지기도 해.

해결: Luminance-only transfer.
이미지를 YUV/Lab로 변환해서 밝기 채널(L)에만 스타일을 적용하고,
색상 채널은 원본 걸 그대로 붙여. 인물 사진에 특히 효과적이야.

③ 얼굴이 무너짐

사람 눈은 얼굴 왜곡에 극도로 민감해. 살짝만 틀어져도 "불쾌한 골짜기" 발동.

해결: 얼굴 영역 마스크를 만들어서 그 부분만 스타일 강도를 낮춰.
또는 얼굴 부분에 콘텐츠 손실 가중치를 더 크게 줘.

④ 영상에서 화면이 부글부글 끓음

프레임마다 독립적으로 변환하면 붓 터치가 매 프레임 새로 생겨.
이걸 플리커링(flickering)이라고 해.

해결: 옵티컬 플로우(Optical Flow)로 프레임 간 움직임을 추적하고,
이전 프레임의 결과를 다음 프레임에 워핑해서 시간적 일관성 손실을 추가해.

⑤ 스타일이 배경에만 먹음

스타일 이미지가 평평한 텍스처 위주면 복잡한 영역엔 잘 안 붙어.

해결: 스타일 층 가중치를 조정해봐.
큰 패턴을 원하면 깊은 층(conv4_1, conv5_1)에 가중치를,
섬세한 질감을 원하면 얕은 층(conv1_1, conv2_1)에 가중치를 더 줘.

꿀팁 🍯

초기값을 랜덤 노이즈 대신 콘텐츠 이미지 복사본으로 주면
수렴이 훨씬 빠르고 결과도 안정적이야.
반대로 더 과감한 재해석을 원하면 노이즈에서 시작해봐. 결과가 확 달라져.

9. 실무 활용 — 디자이너의 무기로 쓰기

기술 자체보다 중요한 건 "어디에 쓸 거냐"지.
디자인 실무에서 스타일 변환이 실제로 먹히는 지점들이야.

① 무드보드·시안 러프 작업

클라이언트에게 "이런 톤 어때요?"를 보여줄 때,
실사 촬영본 하나로 수채화·리소그래프·유화 버전을 10분 만에 뽑을 수 있어.
초기 컨셉 합의 속도가 진짜 빨라져.

② 브랜드 비주얼 일관성

브랜드 고유의 텍스처나 컬러 팔레트를 스타일 소스로 정해두면,
서로 다른 시기·다른 사진작가가 찍은 이미지들도 하나의 톤으로 통일할 수 있어.

③ 배경 아트 / 게임 에셋

실사 로케이션 사진을 게임 아트 스타일로 변환해서
컨셉 아트 초안으로 쓰는 워크플로우는 이미 업계에서 흔해.
물론 최종 결과물은 아티스트가 다시 그려. 출발점을 당겨주는 역할이지.

④ 인쇄물·굿즈

사진을 회화 톤으로 바꾸면 인쇄 시 노이즈와 화질 열화가 덜 티나.
저해상도 소스를 살릴 때 실용적인 트릭이야.

재능넷 이야기 💬

이런 이미지 변환 작업은 툴만 있다고 바로 되는 게 아니야.
"어느 스타일이 이 브랜드에 맞는가", "강도를 어디까지 줄 것인가" 같은
감각적 판단이 결과물의 8할을 좌우하거든.

그래서 재능넷의 디자인·이미지변환 카테고리에는
AI 도구를 실무 워크플로우에 녹여내는 노하우를 가진 작업자들이 꽤 많아.
직접 다 배우기 부담스럽다면, 이미 그 길을 걸어본 사람과 협업하는 것도 훌륭한 선택이지.

10. 짚고 넘어가야 할 것 — 저작권과 윤리

재밌는 기술이지만 이건 진지하게 얘기해야 해.

화풍 자체는 저작권 대상이 아니다 (원칙적으로)

대부분의 저작권법에서 '아이디어·스타일·기법'은 보호 대상이 아니야.
보호되는 건 구체적 표현물, 즉 개별 작품이지.

그래서 "인상주의 화풍으로 그리기"는 법적으로 문제가 없어.

그런데 현실은 더 복잡해

• 특정 생존 작가의 이름을 걸고 "○○○ 작가 풍"이라며 상업 판매하는 경우
→ 부정경쟁방지법, 퍼블리시티권 쟁점이 생길 수 있어.

• 학습 데이터에 작가 동의 없이 작품이 포함된 경우
→ 전 세계적으로 소송이 진행 중이고, 아직 결론이 안 났어.

• 스타일 이미지로 쓴 원본 그림이 저작권 보호 중인 경우
→ 개인적 사용은 괜찮아도, 상업 이용은 별개 문제야.

안전하게 쓰는 방법

1. 퍼블릭 도메인 작품 활용 (사후 70년 경과 — 고흐, 모네, 호쿠사이 등)
2. CC0 / 상업 이용 허용 라이선스 이미지 사용
3. 직접 만든 텍스처를 스타일 소스로 쓰기 ← 가장 확실하고, 브랜드 차별화에도 유리
4. 특정 생존 작가 이름을 마케팅에 쓰지 않기

기술은 중립이지만 사용은 중립이 아니야.
누군가 평생에 걸쳐 만든 화풍이라는 점을 잊지 않는 게, 결국 이 생태계를 오래 가게 해.

11. 한 장으로 정리하는 전체 흐름

Neural Style Transfer 전체 파이프라인 콘텐츠 이미지 C 스타일 이미지 S 생성 이미지 X (학습 대상) VGG-19 가중치 고정 콘텐츠 손실 conv4_2 특징 비교 형태 유지 스타일 손실 그람 행렬 비교 질감 전달 총 손실 αL_c+βL_s 역전파: 이미지 X의 픽셀을 직접 수정 (수백 회 반복)

다섯 줄 요약

1. 콘텐츠 = 깊은 층 특징 맵, 스타일 = 여러 층의 그람 행렬
2. 그람 행렬은 위치를 지우고 채널 간 관계만 남긴다
3. VGG는 고정, 이미지 픽셀 자체를 경사하강법으로 학습시킨다
4. α:β 비율이 "사진 같음 vs 그림 같음"을 결정한다
5. 속도 문제는 Fast Transfer → AdaIN → 확산 모델로 해결되어 왔다

12. 마무리 — 결국 우리가 배운 건

스타일 변환의 진짜 의의는 "예쁜 사진 만들기"가 아니라고 생각해.

그동안 미술에서 "화풍"은 말로 설명하기 어려운 것이었잖아.
"고흐 느낌"이 뭐냐고 물으면 다들 "그냥... 고흐 느낌"이라고밖에 못 했지.

근데 2015년의 그 논문이 이렇게 답한 거야.

"화풍이란, 신경망 특징 채널들 사이의 상관관계 통계다."

물론 이게 예술의 전부를 설명하진 못해.
고흐의 붓질에는 그의 정신 상태와 시대와 아를의 햇빛이 다 들어있으니까.
그람 행렬이 그걸 담진 못하지.

하지만 "막연한 감각을 계산 가능한 형태로 번역했다"는 점에서,
이건 충분히 아름다운 성취야.

그리고 지금 네가 쓰는 모든 AI 이미지 도구의 밑바닥에는
이 단순한 아이디어가 여전히 깔려 있어.

다음에 셀카를 유화로 바꿀 때,
화면 뒤에서 수백만 개의 숫자가 500번쯤 조금씩 흔들리며 그 그림을 만들어내고 있다는 걸
한 번쯤 떠올려보면 좀 더 재밌을 거야.

그럼, 좋은 작업 되길! 🎨

댓글 작성

이 글에 대한 여러분의 생각을 들려주세요

댓글 0
댓글을 불러오는 중입니다.

아직 댓글이 없습니다.