~12 min · lineage, provenance, non-destructive, reproducibility
Level 0툴 빌려 쓰는 사람
0 XP0/36 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"어디서 왔는지 기록이 없는 생성 이미지는 나중에 풀어야 할 수수께끼가 돼. lineage 는 지금 남겨. 아직 답을 알고 있을 때."
미아 파일 문제
이미지를 충분히 만들다 보면 더 이상 설명할 수 없는 예쁜 결과들이 폴더에 쌓여. 이건 어떤 프롬프트였지? seed 는 뭐였고? SDXL 이었나 FLUX 였나? 그때 뭘 다듬던 중이었지? 한 달만 지나면 답할 수가 없어. 그리고 다시 만들지도 못 하고 추적도 안 되는 결과 위에는 아무것도 못 쌓아. 미아 파일은 일부러 안 막으면 생성이 기본으로 내놓는 결과야.
lineage: 결과물마다 제 출처를 알기
규율은 만들어지는 결과물마다 그 순간에 기록된 출처 사슬을 같이 들려 보내는 거야. 사슬이 끝까지 닿아. 속한 workspace 랑 conversation, 나온 포토샵 document 랑 source revision, 다듬던 잘라낸 조각, 만들어 낸 job, model, prompt 랑 settings, seed. 어떤 이미지를 들이밀어도 '이거 어디서 왔고 어떻게 다시 만들지?' 에 답할 수 있어. 그 답이 이미지가 태어난 순간에 이미 적혀 있으니까.
출처는 나중에 복원하지 말고 만들어지는 순간에 적어. 결과물이 태어나는 순간이 맥락 전체를 공짜로 알고 있는 유일한 순간이야. 그때 챙겨. 나중에 lineage 를 짜 맞추려는 건 — 파일명이랑 시각이랑 기억으로 — 하루하루 흐려지는 짐작이야. 출처는 태어날 때 싸고 그다음부터는 비싸. 아니면 아예 불가능하고.
lineage 와 재현성이 같은 것인 이유
lineage 는 기록 남기기 취미가 아니야. 결과를 다시 만들 수 있게 하는 거지. model 이랑 prompt 랑 settings 랑 seed 를 적어 뒀으면 똑같은 이미지를 다시 만들 수도 있고, 거기서 의도한 변형을 만들 수도 있어. 그게 없으면 좋은 결과 하나하나가 다시는 못 되풀이하는 운 좋은 사고야. lineage 는 '한 번 좋은 이미지를 얻었다' 를 '이 이미지도, 그 언저리 변형 열 개도 언제든 얻을 수 있다' 로 바꿔 놔. 뒤로 따라갈 수 있다는 게 앞으로 다시 만들 수 있다는 뜻인 거야.
뒤로 따라가는 것과 앞으로 다시 만드는 건 같은 일이야. 결과물이 어디서 왔는지 따라가게 해 주는 그 기록이, 그걸 정확히 다시 만드는 데 필요한 기록이랑 똑같거든. 감사 가능함과 재현 가능함 중에 하나를 고르는 게 아니야. lineage 를 남기면 둘 다 한 번에 딸려 와. 입력을 챙겨 두면 출력은 언제든 다시 돌릴 수 있어.
짝이 되는 원칙: 원본을 안 건드리기
lineage 는 원본을 안 건드리는 삽입이랑 짝이야. 다듬은 결과가 포토샵으로 돌아갈 때는 원래 있던 것 위에 새 레이어나 그룹으로 앉아. 거기 있던 걸 덮어쓰는 일이 없어. 원본은 그대로 남고, 작가가 결과를 손으로 섞거나 마스크를 씌우거나 변형하거나 버릴 수 있고. lineage 랑 합치면 이런 뜻이야. 아무것도 잃지 않고, 아무것도 검은 상자 속 변형이 아니야. 새로 온 건 얹히기만 하고, 출처가 붙어 있고, 언제든 되돌릴 수 있어.
덮어쓰기에 추적 불가까지 겹치면 작업을 못 되살려. 생성 결과가 원본을 덮어쓰는데 lineage 도 없으면, 한 수에 원본이랑 만드는 방법을 동시에 잃은 거야. 돌아갈 길도 없고 다시 만들 길도 없어. 원본을 안 건드리는 삽입이 원본을 지키고, lineage 가 만드는 방법을 지켜. 둘 중 하나를 떨구면 나쁜 결과 하나가 진짜 작업을 지워 버릴 수 있어.
피파의 고백
난 메타데이터를 기록 보관용 잔업, 그러니까 '나중에' 붙이면 되는 군더더기로 다뤘어. 그러다 아빠가 몇 주 전에 우리 둘 다 좋아했던 이미지를 다시 만들어 달라고 했는데, 못 했어. seed 도 없고 설정도 없고 기록도 없었거든. 그냥 사라진 거야. 내가 증발하게 내버려 둔 예쁜 사고 하나. 그게 나를 바꿔 놓을 만큼 따가웠어. lineage 는 기록 보관이 아니라 기예와 슬롯머신을 가르는 선이야. 출처를 남기는 게 좋은 결과를 기억이 아니라 되풀이할 수 있는 능력으로 만들어 주거든.
Code
lineage 기록 하나가 추적과 재현을 한 번에 사 줘·json
// 만들어지는 결과물마다 이걸 들고 다녀. 생성 시점에 기록하고, 나중에 짜 맞추지 않아.
{
"artifact_id": "...",
"workspace_id": "...", // 어느 Cinder workspace 인지
"conversation_id": "...", // 어느 피파 conversation 인지
"document_id": "...", // 어느 포토샵 document 인지
"source_revision": 7, // 어느 버전의 preview 에서 나왔는지
"crop_id": "...", // 다듬던 영역 (있으면)
"job_id": "...", // 생성 작업
"model": "...", // 실제로 쓴 model
"prompt": "...",
"settings": { "steps": 30, "denoise": 0.5, "...": "..." },
"seed": 123456789, // seed 가 있어야 똑같이 다시 만들 수 있어
"created_at": "..."
}
// 이 기록 하나면 이미지를 따라갈 수도 있고(어디서 왔는지)
// 다시 만들 수도 있어(model + prompt + settings + seed 로 재생성).
네가 돌리는 생성이나 변환 절차를 하나 골라 봐. 이미지 생성기든, 데이터 파이프라인이든, 빌드든. 출력을 정하는 입력을 전부 나열해. 이제 확인해 봐. 출력이 만들어지는 순간에 그 입력들이 다 같이 기록돼? 안 챙기고 넘어가는 입력 하나하나가 다시 못 만드는 미아 결과물로 가는 한 걸음이야.
Hint
lineage 가 충분한지 보는 시험은 이거야. 기록된 그 한 줄만 가지고 완전히 같은(또는 의도한 만큼만 다른) 출력을 다시 만들 수 있어? 못 하면 빠진 항목이 곧 네 출처 기록의 구멍이야.
Progress
Progress is local-only — sign in to sync across devices.