--- id: metadata-forensics title: "Metadata Forensics" category: "10_Wiki/Topics" status: "draft" verification_status: "conceptual" canonical_id: "" aliases: ["Workflow Extraction", "Metadata Extraction"] duplicate_of: "" source_trust_level: "B" confidence_score: 0.85 created_at: 2026-05-19 updated_at: 2026-05-19 review_reason: "" merge_history: [] tags: ["research", "Comfyui workflow json 생성 방법", "Metadata", "Forensics"] raw_sources: ["NotebookLM Synthesis"] applied_in: ["comfyui-frontend-package/src/scripts/metadata", "exiftool -b -workflow input.png > workflow.json"] github_commit: "" --- # [[Metadata Forensics]] ## 🎯 ν•œ 쀄 톡찰 (One-line insight) Metadata ForensicsλŠ” 이미지 파일 내뢀에 μ€λ‹‰λœ μƒμ„±ν˜• AI의 μ‹€ν–‰ 둜직(JSON)을 μ—­κ³΅ν•™μ μœΌλ‘œ μΆ”μΆœν•˜μ—¬ 생성 κΈ°μ›μ˜ 투λͺ…μ„±κ³Ό μ›Œν¬ν”Œλ‘œμš° μž¬ν˜„μ„±μ„ ν™•λ³΄ν•˜λŠ” 핡심 κΈ°μˆ μ΄λ‹€ [1-3]. ## 🧠 핡심 κ°œλ… (Core concepts) 1. **Metadata Injection (메타데이터 μ£Όμž…):** ComfyUI의 `Save Image` λ…Έλ“œκ°€ 싀행될 λ•Œ, μ΅œμ’… 이미지 파일의 헀더에 전체 λ…Έλ“œ κ·Έλž˜ν”„, λ ˆμ΄μ•„μ›ƒ, μ„€μ • 및 ν”„λ‘¬ν”„νŠΈ 정보λ₯Ό μžλ™μœΌλ‘œ μ‚½μž…ν•˜λŠ” ν”„λ‘œμ„ΈμŠ€μ΄λ‹€ [4, 5]. 2. **tEXt/zTXt Chunks:** PNG 파일 ν˜•μ‹ λ‚΄μ—μ„œ μ›Œν¬ν”Œλ‘œμš°(Frontend ν˜•μ‹)와 ν”„λ‘¬ν”„νŠΈ(API ν˜•μ‹)λΌλŠ” 두 κ°€μ§€ μƒμ΄ν•œ λ¬Έμžμ—΄ 데이터λ₯Ό μ €μž₯ν•˜λŠ” 특수 데이터 μ˜μ—­μ΄λ‹€ [3]. 3. **Data Fragility (데이터 μ·¨μ•½μ„±):** λ‚΄μž₯된 λ©”νƒ€λ°μ΄ν„°λŠ” ν‘œμ€€ 이미지 νŽΈμ§‘κΈ°, μ†Œμ…œ λ―Έλ””μ–΄ ν”Œλž«νΌ, λ˜λŠ” 파일 μ••μΆ• μœ ν‹Έλ¦¬ν‹°μ— μ˜ν•΄ 제거되기 μ‰¬μš΄ "λΉ„ν•„μˆ˜μ " μ •λ³΄λ‘œ μ·¨κΈ‰λ˜μ–΄ μ†Œμ‹€λ  μœ„ν—˜μ΄ λ†’λ‹€ [3, 6]. 4. **Algorithmic Extraction (μ•Œκ³ λ¦¬μ¦˜ μΆ”μΆœ):** μ „μš© λ„κ΅¬λ‚˜ CLI μœ ν‹Έλ¦¬ν‹°λ₯Ό μ‚¬μš©ν•˜μ—¬ μ΄λ―Έμ§€μ˜ λ°”μ΄λ„ˆλ¦¬ νƒœκ·Έλ₯Ό λΆ„μ„ν•˜κ³ , κ·Έ μ•ˆμ— ν¬ν•¨λœ μ§λ ¬ν™”λœ JSON 데이터λ₯Ό λΆ„λ¦¬ν•΄λ‚΄λŠ” 기술적 μ ˆμ°¨μ΄λ‹€ [7, 8]. ## 🧩 μΆ”μΆœλœ νŒ¨ν„΄ (Extracted patterns) - **이쀑 ν˜•μ‹ μ €μž₯ νŒ¨ν„΄:** ComfyUIλŠ” μ‹œκ°μ  νŽΈμ§‘μ„ μœ„ν•œ 'Frontend JSON'κ³Ό 싀행을 μœ„ν•œ 'API JSON'을 이미지 내에 λ™μ‹œμ— μ €μž₯ν•˜μ—¬ μ‚¬μš©μž νŽΈμ˜μ„±κ³Ό ν”„λ‘œκ·Έλž¨μ  μž¬μ‹€ν–‰ κ°€λŠ₯성을 λͺ¨λ‘ μΆ©μ‘±μ‹œν‚¨λ‹€ [3]. - **λ“œλž˜κ·Έ μ•€ λ“œλ‘­ 볡ꡬ μ „λž΅:** μ‚¬μš©μžκ°€ 이미지 νŒŒμΌμ„ ComfyUI μΊ”λ²„μŠ€μ— 직접 λŒμ–΄λ‹€ λ†“μœΌλ©΄ λ‚΄μž₯된 메타데이터λ₯Ό μ¦‰μ‹œ νŒŒμ‹±ν•˜μ—¬ μ›λž˜μ˜ λ…Έλ“œ ꡬ성을 λ³΅μ›ν•˜λŠ” 직관적인 μ›Œν¬ν”Œλ‘œμš° λ‘œλ“œ 방식이닀 [1, 4]. ## πŸ“– μ„ΈλΆ€ λ‚΄μš© (Details) ComfyUIμ—μ„œ μƒμ„±λœ λ―Έλ””μ–΄ 파일(PNG, WebP λ“±)은 λ‹¨μˆœν•œ μ‹œκ°μ  데이터 μ΄μƒμ˜ 정보λ₯Ό ν¬ν•¨ν•˜κ³  μžˆλ‹€ [4, 9]. μ›Œν¬ν”Œλ‘œμš°κ°€ μ’…λ£Œλ˜λŠ” `Save Image` λ…Έλ“œλŠ” 이미지 생성 μ‹œμ μ˜ **전체 λ…Έλ“œ κ·Έλž˜ν”„μ™€ 섀정을 파일의 μˆ¨κ²¨μ§„ 메타데이터에 μ£Όμž…**ν•œλ‹€ [4, 5]. ꡬ체적으둜 PNG 파일의 경우 `tEXt` λ˜λŠ” `zTXt` 청크λ₯Ό ν™œμš©ν•˜μ—¬ μ‹œκ°μ  λ ˆμ΄μ•„μ›ƒ 정보λ₯Ό 담은 Frontend ν˜•μ‹μ˜ JSONκ³Ό μ‹€μ œ λ°±μ—”λ“œ 싀행에 ν•„μš”ν•œ API ν˜•μ‹μ˜ JSON(Prompt)을 μ €μž₯ν•œλ‹€ [3]. μ΄λŸ¬ν•œ λ©”νƒ€λ°μ΄ν„°λŠ” μ›Œν¬ν”Œλ‘œμš°μ˜ λ°±μ—… 역할을 μˆ˜ν–‰ν•˜λ©°, λ‹€λ₯Έ μ‚¬μš©μžμ™€ 생성 기법을 κ³΅μœ ν•˜λŠ” 효율적인 μˆ˜λ‹¨μ΄ λœλ‹€ [1, 9]. κ·ΈλŸ¬λ‚˜ **λ°μ΄ν„°μ˜ μ˜μ†μ„± μΈ‘λ©΄μ—μ„œ 취약점**이 μ‘΄μž¬ν•œλ‹€. μ†Œμ…œ λ―Έλ””μ–΄ ν”Œλž«νΌμ΄λ‚˜ 파일 μ••μΆ• κ³Όμ •μ—μ„œ 파일 크기 μ ˆκ°μ„ μœ„ν•΄ μ΄λŸ¬ν•œ 메타데이터λ₯Ό μ œκ±°ν•˜λŠ” κ²½μš°κ°€ λΉˆλ²ˆν•˜λ©°, GIMP와 같은 이미지 νŽΈμ§‘κΈ°λ‘œ μˆ˜μ •ν•  κ²½μš°μ—λ„ 원본 메타데이터가 손싀될 수 μžˆλ‹€ [3, 6, 8]. 싀무적인 ν¬λ Œμ‹ 및 μΆ”μΆœμ„ μœ„ν•΄ λ‹€μ–‘ν•œ 도ꡬ가 μ‚¬μš©λœλ‹€. `exiftool`κ³Ό 같은 λ²”μš© 도ꡬλ₯Ό μ‚¬μš©ν•˜μ—¬ νŠΉμ • νƒœκ·Έ(`-workflow`)λ₯Ό μ§€μ •ν•΄ JSON을 μΆ”μΆœν•  수 있으며, `ComfyUI Workflow Extractor`와 같은 μ›Ή 기반 λ„κ΅¬λ‚˜ `comfyui_extractor.py`와 같은 μ „λ¬Έ μŠ€ν¬λ¦½νŠΈλŠ” 배치 ν”„λ‘œμ„Έμ‹±μ„ 톡해 수천 개의 μ΄λ―Έμ§€μ—μ„œ μ›Œν¬ν”Œλ‘œμš°λ₯Ό λŒ€λŸ‰μœΌλ‘œ 볡ꡬ할 수 있게 ν•΄μ€€λ‹€ [2, 7, 10]. ## βš–οΈ λͺ¨μˆœ 및 μ—…λ°μ΄νŠΈ (Contradictions & updates) - **곡유 νŽΈμ˜μ„± vs. 데이터 보쑴:** 이미지λ₯Ό ν†΅ν•œ μ›Œν¬ν”Œλ‘œμš° κ³΅μœ λŠ” κ°€μž₯ μ‰¬μš΄ λ°©λ²•μœΌλ‘œ μΆ”μ²œλ˜μ§€λ§Œ, λ„€νŠΈμ›Œν¬ μ „μ†‘μ΄λ‚˜ μ••μΆ• κ³Όμ •μ—μ„œ 메타데이터가 손싀될 수 μžˆμœΌλ―€λ‘œ **μ€‘μš”ν•œ μ›Œν¬ν”Œλ‘œμš°λŠ” λ³„λ„μ˜ JSON 파일둜 μ €μž₯ν•˜λŠ” 것이 ꢌμž₯**λœλ‹€ [3, 5, 6]. - **버전 ν˜Έν™˜μ„± 문제:** ComfyUI의 λΉˆλ²ˆν•œ μ—…λ°μ΄νŠΈλ‘œ 인해, λ©”νƒ€λ°μ΄ν„°μ—μ„œ μΆ”μΆœν•œ 이전 λ²„μ „μ˜ JSON 파일이 μ΅œμ‹  λ²„μ „μ˜ μΈν„°νŽ˜μ΄μŠ€μ—μ„œ μ •μƒμ μœΌλ‘œ μž‘λ™ν•˜μ§€ μ•Šμ„ 수 μžˆλŠ” ν˜Έν™˜μ„± λ¦¬μŠ€ν¬κ°€ μ‘΄μž¬ν•œλ‹€ [6]. ## πŸ› οΈ 적용 사둀 (Applied in summary) - **파일 경둜:** `comfyui-frontend-package/src/scripts/metadata` (곡식 메타데이터 νŒŒμ‹± 둜직이 κ΅¬ν˜„λœ μœ„μΉ˜) [11]. - **CLI λͺ…λ Ή:** `exiftool -b -workflow input.png > workflow.json` (PNG 메타데이터 μ²­ν¬μ—μ„œ μ§λ ¬ν™”λœ JSON을 κ²©λ¦¬ν•˜λŠ” ν‘œμ€€ λͺ…λ Ή) [7]. - **μ „λ¬Έ 도ꡬ:** `Comfy_UI_prompt_extractor`, `comfyui_extractor.py`, `comfyui-workflow-extractor` (AI μ•„νŠΈμ˜ λ””μ§€ν„Έ ν¬λ Œμ‹ 및 기술 라이브러리 μœ μ§€λ₯Ό μœ„ν•œ μΆ”μΆœ 도ꡬ듀) [7, 10]. - **섀계 κ²°μ •:** PNG 파일 내에 `workflow`(Frontend)와 `prompt`(API) 정보λ₯Ό 쀑볡 μ €μž₯ν•˜μ—¬ μ‹œκ°μ  νŽΈμ§‘κ³Ό μžλ™ν™” 싀행을 λ™μ‹œμ— 지원함 [3]. ## βœ… 검증 μƒνƒœ 및 신뒰도 - **μƒνƒœ:** draft - **검증 단계:** conceptual (μ‹€μ œ 적용 사둀 발견 μ‹œ applied/validated둜 승격 κ°€λŠ₯) - **좜처 신뒰도:** B (Official Documentation / Primary Source via NotebookLM) - **쀑볡 검사 κ²°κ³Ό:** μ‹ κ·œ 생성 (New discovery) ## πŸ“ λ³€κ²½ 이λ ₯ (Change history) - 2026-05-19: Initial draft generated via Datacollector_MAC P-Reinforce engine.