필름 룩을 만드는 방법: 사진 데이터로부터 필름 시뮬레이션 도출하기
Chobial의 기본 내장 필름들은 감이나 눈대중으로 맞춘 것도, 인터넷에서 다운로드한 LUT도 아닙니다. 각 필름은 실제 사진 데이터로부터 수학적으로 도출되었습니다. Fujifilm 카메라에서 촬영한 하나의 RAW 파일을 카메라 내에서 중립 상태와 필름 시뮬레이션으로 각각 현상한 뒤, 두 이미지의 차이를 CIELAB 색공간에서 정밀하게 측정했습니다. 방법론 자체는 간단해 보이지만, 이 글의 대부분은 그 과정에서 어떤 수많은 함정과 오류를 겪었는지에 관한 이야기입니다.
이 방법론은 2026년 9월 Fujifilm X-T30 III를 사용해 정립되었으며 본문의 수치들도 그 실험에서 나왔습니다. 현재 대부분의 필름은 31개 프레임을 바탕으로 X100VI에서 동일한 방식으로 재도출되었습니다.
1. 비교 쌍(Pairs) 확보하기
요약하자면 이렇습니다. 한 장면을 찍고 같은 카메라 안에서 두 번 현상합니다. 한 번은 중립으로, 한 번은 원하는 룩으로 현상하여 그 차이를 풀어냅니다.
여기서 핵심 단어는 현상입니다. Fujifilm 카메라는 카메라 내에서 RAF 파일을 다시 현상할 수 있습니다. 그래서 RAW로 촬영한 뒤 같은 파일을 반복 현상했습니다. 중립 기준점으로서 기본 설정의 Provia로 한 번, 각 시뮬레이션의 기본 설정으로 한 번씩 현상했습니다. 컬러 0, 하이라이트 및 섀도 톤 0, 그레인 끔, 컬러 크롬 끔, 화이트 밸런스 시프트 0. 동일한 센서 데이터, 동일한 노출, 동일한 화이트 밸런스이며 오직 필름 룩만 달라집니다. 카메라 앞에서 보낸 10분이 야외에서 찍은 100장의 사진보다 훨씬 강력합니다. 모든 교란 변수를 한 번에 제거하기 때문입니다.
기본값이 중요합니다. 레시피의 하이라이트 톤을 −1로 둔 채 작업하면 시뮬레이션뿐만 아니라 레시피 설정까지 함께 측정되어 필름에 굳어져 버립니다. 저희 필름 중 Gold, Kodachrome, Ektachrome 스타일 및 Chobial Vintage(Classic Negative 레시피 기반) 4종은 순수 시뮬레이션이 아닌 특정 레시피로부터 의도적으로 도출되었습니다. 이는 실수가 아니라 의도된 결정이었습니다.
파일과 프레임의 짝을 맞출 때는 파일명이 아니라 픽셀을 비교했습니다. 4방향 회전에 걸쳐 작은 휘도 시그니처를 대조했습니다. 파일명은 속여도 픽셀은 거짓말을 하지 않습니다.
2. 무엇을 촬영할 것인가: 모든 것의 한계
어느 날 저녁 카페와 공원에서 찍은 5장의 야외 사진은 33×33×33 컬러 큐브의 5.8%에만 닿았습니다. 픽셀의 2/3는 CIELAB 크로마(C*)가 8 미만으로, 사실상 무채색(회색)에 가까웠습니다. 시안, 보라, 마젠타는 전체 픽셀의 각각 0.12%, 0.03%, 0.01%에 불과했습니다. 데이터 근거가 부족한 파라미터는 주변 값에 휩쓸리기 쉽습니다. 초기 모델 피팅 중 하나는 마젠타 픽셀이 거의 없었음에도 58도에 달하는 극단적인 마젠타 색조 회전을 요구하기도 했습니다.
따라서 컬러 차트를 촬영해야 합니다. 24패치 컬러 차트 한 장이 실제 풍경 5장을 합친 것보다 훨씬 많은 유효 색상 데이터를 제공하며, 실제 풍경에서 빠지기 쉬운 색조들을 고르게 망라합니다. 차트가 없다면 한낮의 자연광 아래에서 채도 높은 푸른 하늘, 빨간 물체, 시안색 물체, 나뭇잎, 피부, 흰색 패치를 의도적으로 프레임에 골고루 포함시켜야 합니다.
3. 자체 중립이 아닌 카메라 자체 중립을 기준으로 풀기
언뜻 생각하기 쉬운 접근법은 RAW를 가져와 저희 자체 중립 파이프라인으로 현상한 뒤, 거기서 Fujifilm 시뮬레이션으로 가는 변환을 푸는 것입니다. 하지만 이는 두 가지를 한 번에 측정하는 오류를 범합니다. 즉 시뮬레이션 자체와, 저희 RAW 현상이 Fujifilm의 현상과 다른 모든 차이점입니다. 후자는 실제 존재하는 차이지만 그것은 해당 카메라의 고유한 특성일 뿐입니다. 이를 필름에 그대로 반영하면 중립 기준이 완전히 다른 iPhone에 Fujifilm 센서 보정치를 강제로 덧씌우는 꼴이 됩니다.
결과는 명백했습니다. 자체 현상을 기준으로 푼 Provia는 크로마 스케일 0.98, 색조 회전 최대 17도라는 결과를 냈습니다. 중립과 중립이 서로 충돌한 것입니다. 모든 시뮬레이션이 이 왜곡을 똑같이 떠안았습니다. 반면 둘 다 카메라가 렌더링한 Provia 대 시뮬레이션으로 변경하자 왜곡이 사라졌고, 시뮬레이션의 오차는 3.7~5.2 ΔE에서 즉시 1.3~3.5 ΔE로 떨어졌습니다.
검증할 수 있는 공짜 테스트도 있습니다. Provia를 Provia에 대해 푸는 것입니다. 답은 반드시 ΔE 0.000, 크로마 1.0000, 회전 0.00이어야 합니다. 답을 미리 알고 있는 유일한 경우이며, 실제로 이 테스트를 돌려 코드의 실제 버그를 잡아냈습니다.
4. 필름 모델의 구성 요소
필름의 색상은 앱이 실제로 적용하는 순서와 동일하게 단계별로 피팅됩니다: 커브를 먼저 풀고, 그다음 색상을 풉니다.
회색조로부터 커브를 먼저 도출
마스터, 레드, 블루 커브는 거의 중립인 픽셀(C* 8 미만)로부터 읽어냅니다. 이는 프레임의 절반 이상을 차지하며 특정 색조가 수백 개 샘플에 불과한 데 비해 빈당 수만 개의 샘플을 확보할 수 있어 가장 정밀하게 측정할 수 있는 영역입니다.
커브는 필름의 톤과 회색에 드리우는 색조 캐스트를 결정합니다. 후자는 생각보다 훨씬 중요합니다. 채도를 조절하는 방식으로 동작하는 컬러 모델은 회색을 건드릴 수 없습니다. 회색은 채도가 0이므로 어떤 값을 곱해도 0이기 때문입니다. 한동안 저희 Chrome 계열과 Negative 계열 필름이 서로 똑같이 보였던 이유가 바로 이것이었습니다. 사진의 대부분을 차지하는 회색 영역에 아무것도 적용하지 못했고, 바로 그 회색 영역에 Fujifilm 각 시뮬레이션의 고유한 정체성이 집중되어 있었기 때문입니다.
주목할 만한 버그. 첫 번째 버전은 각 채널을 픽셀의 그레이 레벨로 분류했습니다. 하지만 '거의 중립'인 픽셀이 완벽한 중립은 아닙니다. 빈 안의 빨강, 초록, 파랑 중간값은 그 픽셀 군집이 우연히 띠고 있던 색조를 그대로 품고 있었고, 커브는 그 색조를 자기 자신 위에 중복 적용해 버렸습니다. 그 결과 Provia 대 Provia가 0이 아니라 ΔE 1.4를 반환했습니다. 채널별 자신의 값을 기준으로 빈을 나누자(실제 채널에 커브를 적용하는 것과 동일함) 항등 변환이 정확히 0을 반환했습니다.
또 하나의 함정: 레드와 블루 커브는 원래 입력값이 아니라 마스터 커브의 출력값을 기준으로 정의되어야 합니다. 마스터 커브가 먼저 실행되어 그 결과를 넘겨주기 때문입니다.
커브를 거친 뒤의 색상 피팅
목표 이미지에서 커브 효과를 역으로 제거한 뒤, 남은 차이에 대해 색상 레이어를 피팅합니다. 커브와 나란히 동시에 피팅하면 커브가 이미 색상에 미친 영향을 이중 계산하게 됩니다. Classic Negative에서 카메라가 파란색을 +11도 돌리는데 모델은 +24도까지 돌려버렸던 이유가 여기에 있었습니다.
색상 레이어는 의도적으로 얕게 설계되었습니다: 색조별 크로마 스케일과 색조 회전(색상환을 따라 보간됨), 그리고 세 가지 톤 항목입니다. 각 요소가 파라미터에 대해 선형적이어서 세 개의 최소제곱법 문제로 정확히 풀릴 만큼 간결합니다. 신뢰할 수 없는 복잡한 최적화 알고리즘에 의존할 필요가 없습니다.
양쪽 모두 항등 변환 쪽으로 끌어당기는 릿지 페널티(규제화)가 필요합니다. 근거 데이터가 없는 색조는 필름이 건드리지 않고 그대로 둔다는 답을 내놓아야 합니다. 톤 항목에 페널티가 필요한 이유는 다릅니다. 중간 톤 대비 항목, 토(toe), 숄더(shoulder)가 거의 공선성을 띠기 때문에, 페널티가 없으면 대비 2.2와 섀도 리프트 +59가 서로를 상쇄하는 비정상적인 해가 도출되기 때문입니다.
흑백은 별도의 도출 과정
흑백 필름은 채널 믹스와 톤 커브로 구성됩니다. 노란색이나 빨간색 필터가 바꾸는 채널 믹스는 각 색조가 얼마나 밝게 변환되는지에 따라 결정되며, 회색 결과물에서는 그 색상 정보가 사라집니다. 하지만 비교 쌍의 반대편에 있는 컬러 프레임에는 그 정보가 온전히 남아 있으므로 이를 바탕으로 채널 가중치를 탐색할 수 있습니다.
톤은 세 개의 파라미터로 요약할 수 없습니다. 흑백 필름에서 톤은 필름 그 자체이며, 척도의 1/3까지 길게 이어지는 완만한 토(toe) 곡선은 세 개 항의 단순 모델로는 뭉개져 버립니다. 알려진 5포인트 커브로 만든 합성 쌍에서 3항 모델은 채널 가중치를 소수점 4자리까지 정확히 찾아냈지만 톤에서 1.94 L*의 오차를 냈습니다. 반면 전체 커브를 피팅하자 오차는 0.16으로 줄었습니다.
5. 결과 평가하기
실제 픽셀에 대한 ΔE가 유일한 척도입니다. 하늘 파랑, 피부톤, 나뭇잎 초록 같은 소수의 '기억색' 샘플 몇 개로 평가해서는 안 됩니다. 세 개의 인공적인 기준점은 2/3가 무채색인 전체 픽셀 분포를 대변하지 못하며, 전체적으로 개선된 필름을 오히려 나빠졌다고 오판하게 만듭니다. 저희 Negative 계열 필름은 세 개의 샘플 수치가 나빠지는 동안 전체 ΔE는 3.67에서 1.47로 대폭 개선되었습니다.
크로마 대역별로 오차를 분해해서 살펴보세요. 전체적으로는 좋아졌지만 채도 높은 색상에서 망가지는 변화라면 반드시 알아채야 합니다. Negative 재도출 작업은 세 대역 모두를 개선했기에 안심하고 출시할 수 있었습니다.
| 대역 | 개선 전 (ΔE) | 개선 후 (ΔE) |
|---|---|---|
| 거의 중립 | 2.93 | 0.88 |
| 은은한 색 | 4.09 | 1.65 |
| 채도 높은 색 | 5.78 | 3.64 |
목표 시뮬레이션뿐만 아니라 필름들끼리도 비교하세요. Negative 재구축 작업을 촉발한 불만은 "Chrome과 Negative가 똑같아 보인다"는 것이었습니다. 카메라가 두 시뮬레이션 사이의 거리를 얼마나 유지하는지(저희 프레임에서 2.2~5.0 ΔE)와 저희 두 필름 사이의 거리를 비교해 보아야 합니다. 개별 필름이 각자의 목표에 정확해 보이더라도 두 필름이 하나로 뭉개져 버릴 수 있습니다.
데이터가 부족한 곳은 교차 검증하세요. Adobe의 카메라 매칭 프로필은 카메라와 한 단계 떨어져 있지만 측정할 수 있습니다. Classic Negative의 경우 웜톤과 쿨톤이 교차하는 지점(저희 47에 대해 L* 46), 하이라이트 색조(저희 44.6°에 대해 44°), 약 2:1의 웜/쿨 비율에서 저희 프레임과 일치했습니다. 필름 시뮬레이션에 대해 인터넷에 돌아다니는 글들은 대부분 정성적이고 천편일률적입니다. 직접 수치로 측정하기 전까지는 민간 전승으로 취급하세요. Classic Negative에 대해 흔히 말하는 "마젠타 하이라이트"는 회색조에서 실측해 보면 44° 색조의 앰버(호박색)입니다.
6. 실제 적용과 출시
저희가 지키는 몇 가지 원칙:
- 오차를 솔직히 기록합니다. 각 필름의 소스 노트에는 측정된 ΔE와 사진학적 의미가 적혀 있습니다. 피팅 결과가 좋지 않다면 테스트 허용 오차를 몰래 넓히는 대신 그 사실을 명시합니다. 저희 Gold 스타일 필름은 3.54 ΔE이며, 노트에 시뮬레이션이 아닌 카메라 레시피 기반임을 밝혀두었습니다.
- 이름에 상표를 쓰지 않습니다. 필름 이름은 해결 대상 필름명이 아니라 고유한 역할과 목적을 따릅니다(Chobial Chrome, Chobial Negative, Chobial Portrait).
- 전송 포맷의 한계를 고려합니다. 필름은 QR 코드로 공유될 수 있어야 하므로 파라미터 크기가 제한됩니다. 필름에 커브가 추가되면서 코드 크기가 약 69바이트에서 약 128바이트로 늘어났지만 여전히 QR 코드에 넉넉히 들어갑니다. 색조 회전은 ±32도 범위로 제한되므로 58도를 요구하는 피팅은 애초에 공유할 수도 없습니다.
Chobial에서 결과 확인하기
이 과정을 거쳐 만들어진 것이 Chobial Standard부터 Chobial B&W까지의 기본 내장 필름들입니다. 직접 확인해 보려면:
- 카메라에 기본 필름을 장전하세요. 뷰파인더에 실시간으로 표시되며, 화면을 길게 누르면 필름 없는 원래 장면을 볼 수 있습니다.
- 기존 사진을 열고 편집기의 필름 도구에서 필름들을 번갈아 탭해 보세요. 매번 RAW 원본에서 다시 현상됩니다(다시 현상하기 가이드).
- 비교를 길게 눌러 깔끔한 기본 현상을 보거나, 탭하여 슬라이더로 비교하세요.
- 필름을 수정하고 싶다면 복사본을 만들어 시작하세요: 필름 › + › 새 필름 › 기반 필름. 기본 필름은 잠겨 있지만 복사본은 자유롭게 편집할 수 있습니다(나만의 필름 만들기).
7. 여전히 존재하는 한계들
- 모델의 용량이 아니라 데이터의 커버리지가 한계입니다. 8개 색조 × 3개 명도 대역의 전체 그리드를 써도 Negative의 오차는 3.47에서 2.81 ΔE로 줄어드는 데 그쳤으며, 파란색이 섀도에서 −38.5° 회전하고 하이라이트에서 +35.1° 회전하는 기현상을 보였습니다. 노이즈가 과적합(오버피팅)된 것입니다. 3D LUT도 파라미터만 많을 뿐 똑같이 실패합니다. 큐브의 1/20에서만 정확하고 나머지는 멍텅구리가 됩니다. 차트를 찍어야 합니다.
- 채도가 오직 색조에 의해서만 움직입니다. 섀도와 하이라이트에서 색상을 다르게 비트는 필름은 근사치로만 표현됩니다. Gold 스타일 필름의 피부톤은 카메라 결과와 27도 차이가 나며 현재 모델로는 완벽히 맞출 수 없습니다. 명도 항목을 추가했을 때 오차가 줄어들긴 했지만(Nostalgia 필름이 2.89에서 2.28로 개선), 공유 필름 포맷의 규격을 바꿀 만큼의 차이는 아니었습니다.
- 두 카메라 사이에서 렌더링과 측광을 완전히 분리할 수 없습니다. 저희 중립 톤은 원래 웜톤 계열에서 Fujifilm보다 약 6도 더 노랗게 나왔습니다. 현재는 X100VI 옆에서 주광과 실내에서 함께 찍은 iPhone 17 Pro Max의 21개 프레임 데이터를 통해 X100VI의 Provia에 맞춰 보정되었습니다. 화이트 밸런스는 각 카메라의 독립적인 결정이므로 회색은 중립을 유지합니다. 하지만 기본 노출은 iPhone 측광 대비 X100VI가 결정한 밝기이며, 이는 Provia 고유의 성격이라기보다 Fujifilm 측광의 습관일 수 있습니다. 더 많은 카메라를 대조하거나 모든 프레임에 그레이 카드를 놓지 않는 한 둘을 완벽히 분리하기는 어렵습니다.
- 기본 톤은 텅스텐 조명의 카페 장면 2개를 기준으로 도출되었습니다. 두 장면에서 섀도를 0.11 L*까지 좁혔습니다. 위의 캘리브레이션은 Provia가 그 너머에서 원하는 톤을 온전히 이어받습니다.
이 중 어느 것도 카메라와 100% 똑같은 필름을 만들어주지는 못합니다. 하지만 어디가 어떻게 다른지 정확히 알고 수치로 기록할 수 있는 필름을 만들어 줍니다. 이는 눈대중으로 맞춘 필터가 결코 할 수 없는 일입니다. 필름의 색상 단계는 다른 프로그램에서 분석할 수 있도록 .cube LUT로 내보낼 수 있으며(iPhone에서 LUT 만들기), 그레인 역시 측정된 고유 커브를 따릅니다(디지털 그레인이 부자연스러워 보이는 이유 참고).
Fujifilm, Provia, Classic Chrome 및 Classic Negative는 FUJIFILM Corporation의 상표입니다. Kodak, Gold, Kodachrome 및 Ektachrome은 Eastman Kodak Company의 상표입니다. Chobial은 어느 쪽과도 제휴 관계가 아닙니다.
자주 묻는 질문
사진만으로 필름 시뮬레이션을 정확히 측정할 수 있나요?
촬영 환경이 엄격히 통제된다면 가능합니다. 카메라 내에서 하나의 RAW 파일을 중립(Provia)과 특정 시뮬레이션으로 각각 두 번 현상하면, 둘 사이의 차이가 순수한 필름 룩이 됩니다. 서로 다른 날 찍은 임의의 사진들은 노출, 화이트 밸런스, 피사체 차이가 룩과 뒤섞여 버립니다.
그냥 필름 시뮬레이션의 LUT를 쓰면 안 되나요?
몇 장의 사진으로 측정한 LUT는 사진에 담긴 색상에서만 정확할 뿐 컬러 큐브의 나머지 대부분에 대해서는 아무것도 모릅니다. 저희 실제 야외 프레임은 33포인트 큐브의 5.8%만 건드렸습니다. 의미 있는 소수의 파라미터로 구성된 간결한 모델이 수천 개의 빈 공간을 가진 LUT보다 훨씬 안정적으로 동작합니다.
Chobial의 필름은 Fujifilm의 시뮬레이션과 완전히 똑같은가요?
아니요. Fujifilm 카메라의 렌더링을 분석해 도출한 뒤 iPhone의 RAW 현상에 맞게 이식한 Chobial 자체 필름입니다. 측정에 쓰인 프레임들에서는 매우 근접하며, 일치하지 않는 한계점도 솔직하게 공개하고 있습니다.
같은 방식으로 나만의 필름을 직접 도출할 수 있나요?
앱 내부에 자동 도출 솔버가 들어있지는 않습니다. 하지만 커브, 컬러 믹서, 스플릿 토닝 같은 조절 도구들을 사용해 수동으로 비슷한 필름을 만들 수 있습니다. 나만의 필름 만들기를 참고하세요.