--- id: png-metadata-chunks title: "PNG Metadata Chunks" category: "10_Wiki/Topics" status: "draft" verification_status: "conceptual" canonical_id: "" aliases: [] 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 생성 방법"] raw_sources: ["NotebookLM Synthesis"] applied_in: ["comfyui-frontend-package/src/scripts/metadata", "exiftool -b -workflow"] github_commit: "" --- # [[PNG Metadata Chunks]] ## 🎯 ν•œ 쀄 톡찰 (One-line insight) PNG μ΄λ―Έμ§€μ˜ ν‘œμ€€ 데이터 블둝에 μ›Œν¬ν”Œλ‘œμš°μ˜ μ‹œκ°μ  ꡬ쑰와 μ‹€ν–‰ λ‘œμ§μ„ λ™μ‹œμ— λ‚΄μž₯ν•˜μ—¬, 이미지 파일 자체λ₯Ό **νœ΄λŒ€ κ°€λŠ₯ν•œ 독립적 μ‹€ν–‰ 슀크립트**둜 λ³€λͺ¨μ‹œν‚€λŠ” 핡심 λ©”μ»€λ‹ˆμ¦˜ [1-3]. ## 🧠 핡심 κ°œλ… (Core concepts) - **tEXt 및 zTXt 청크 (Chunks):** ComfyUIκ°€ μ›Œν¬ν”Œλ‘œμš° 데이터λ₯Ό μ €μž₯ν•˜κΈ° μœ„ν•΄ ν™œμš©ν•˜λŠ” PNG ν‘œμ€€μ˜ ν…μŠ€νŠΈ 데이터 보관 μ˜μ—­μ΄λ‹€ [2]. - **메타데이터 μ£Όμž… (Metadata Injection):** `Save Image` λ…Έλ“œκ°€ 싀행될 λ•Œ, μ΅œμ’… 이미지 데이터와 ν•¨κ»˜ 전체 λ…Έλ“œ κ·Έλž˜ν”„, λ ˆμ΄μ•„μ›ƒ μ„€μ •, ν”„λ‘¬ν”„νŠΈλ₯Ό 파일의 μˆ¨κ²¨μ§„ μ˜μ—­μ— μ£Όμž…ν•˜λŠ” ν”„λ‘œμ„ΈμŠ€λ‹€ [1, 4]. - **데이터 이원화 (Bifurcation):** ν•˜λ‚˜μ˜ 이미지 내에 μ‹œκ°μ  νŽΈμ§‘μ„ μœ„ν•œ 'Frontend 포맷(workflow)'κ³Ό ν”„λ‘œκ·Έλž˜λ° λ°©μ‹μ˜ 싀행을 μœ„ν•œ 'API 포맷(prompt)' 정보λ₯Ό 쀑볡 μ €μž₯ν•˜μ—¬ ν˜Έν™˜μ„±μ„ ν™•λ³΄ν•œλ‹€ [2]. - **데이터 μ·¨μ•½μ„± (Data Fragility):** ν‘œμ€€ 이미지 νŽΈμ§‘κΈ°, μ†Œμ…œ λ―Έλ””μ–΄ ν”Œλž«νΌ, λ˜λŠ” 파일 μ••μΆ• μœ ν‹Έλ¦¬ν‹°λ₯Ό κ±°μΉ  경우 λΉ„ν•„μˆ˜μ μΈ 메타데이터 청크가 μ œκ±°λ˜μ–΄ μ›Œν¬ν”Œλ‘œμš° 정보가 μœ μ‹€λ  μœ„ν—˜μ΄ 크닀 [2, 5]. ## 🧩 μΆ”μΆœλœ νŒ¨ν„΄ (Extracted patterns) - **쒅단 λ…Έλ“œ μžλ™ 기둝 νŒ¨ν„΄:** 거의 λͺ¨λ“  μ›Œν¬ν”Œλ‘œμš°κ°€ `Save Image` λ…Έλ“œμ—μ„œ μ’…λ£Œλ˜λ©°, 이 λ…Έλ“œκ°€ μ‹€ν–‰λ˜λŠ” μˆœκ°„ ν˜„μž¬ μΊ”λ²„μŠ€μ˜ λͺ¨λ“  μƒνƒœλ₯Ό 이미지 메타데이터에 μžλ™μœΌλ‘œ λ™κΈ°ν™”ν•œλ‹€ [1]. - **λ“œλž˜κ·Έ μ•€ λ“œλ‘­ 볡ꡬ νŒ¨ν„΄:** μ‚¬μš©μžκ°€ PNG νŒŒμΌμ„ ComfyUI μΊ”λ²„μŠ€λ‘œ λ“œλž˜κ·Έν•˜λ©΄, μ‹œμŠ€ν…œμ΄ 메타데이터 청크λ₯Ό νŒŒμ‹±ν•˜μ—¬ μ¦‰μ‹œ λ…Έλ“œ λ ˆμ΄μ•„μ›ƒκ³Ό 섀정을 μž¬ν˜„ν•œλ‹€ [1, 5, 6]. - **CLI 기반 벌크 μΆ”μΆœ νŒ¨ν„΄:** λ‹€μˆ˜μ˜ μ΄λ―Έμ§€μ—μ„œ μˆ˜λ™ μ‘°μž‘ 없이 μ›Œν¬ν”Œλ‘œμš°λ₯Ό λŒ€λŸ‰μœΌλ‘œ νšŒμˆ˜ν•˜κΈ° μœ„ν•΄ `exiftool`κ³Ό 같은 λͺ…령쀄 도ꡬλ₯Ό ν™œμš©ν•˜μ—¬ νŠΉμ • 청크 데이터λ₯Ό μΆ”μΆœν•œλ‹€ [7, 8]. ## πŸ“– μ„ΈλΆ€ λ‚΄μš© (Details) ComfyUI μ›Œν¬ν”Œλ‘œμš°λŠ” μ „ν˜•μ μΈ μ‹œκ°μ  ν”„λ‘œκ·Έλž˜λ°μ˜ 결과물둜, 이λ₯Ό PNG 파일의 **메타데이터 청크**에 μ €μž₯ν•¨μœΌλ‘œμ¨ 이동성과 μž¬ν˜„μ„±μ„ κ·ΉλŒ€ν™”ν•œλ‹€ [1, 9]. - **청크의 기술적 ꡬ성:** - 주둜 **tEXt** λ˜λŠ” μ••μΆ•λœ ν˜•νƒœμΈ **zTXt** 청크λ₯Ό μ‚¬μš©ν•˜μ—¬ 두 κ°€μ§€ μ£Όμš” λ¬Έμžμ—΄μ„ μ €μž₯ν•œλ‹€ [2]. - ν•˜λ‚˜λŠ” μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€(UI) μƒμ˜ λ…Έλ“œ μœ„μΉ˜, 크기, κ·Έλ£Ήν™” 정보λ₯Ό ν¬ν•¨ν•œ **Frontend JSON** 데이터닀 [2, 10]. - λ‹€λ₯Έ ν•˜λ‚˜λŠ” μ„œλ²„ λ°±μ—”λ“œμ—μ„œ μ¦‰μ‹œ μ‹€ν–‰ κ°€λŠ₯ν•œ ν˜•νƒœμΈ **API JSON(Prompt)** λ°μ΄ν„°λ‘œ, μ‹œκ°μ  정보가 제거된 μ••μΆ•λœ μ‹€ν–‰ κ·Έλž˜ν”„λ‹€ [2, 10, 11]. - **μ›Œν¬ν”Œλ‘œμš° μΆ”μΆœ 및 뢄석:** - μ΄λ―Έμ§€μ—μ„œ μ›Œν¬ν”Œλ‘œμš°λ₯Ό μΆ”μΆœν•˜κΈ° μœ„ν•΄ μ „μš© μ›Ή λ„κ΅¬λ‚˜ Python λΌμ΄λΈŒλŸ¬λ¦¬κ°€ μ‚¬μš©λ˜κΈ°λ„ ν•œλ‹€ [8, 12]. - λͺ…령쀄 도ꡬ인 `exiftool`을 μ‚¬μš©ν•  경우, `-workflow` νƒœκ·Έλ₯Ό μ§€μ •ν•˜μ—¬ λ°”μ΄λ„ˆλ¦¬ 데이터λ₯Ό JSON 파일둜 뢄리해낼 수 μžˆλ‹€ [7, 8]. - 곡식적인 메타데이터 νŒŒμ‹± λ‘œμ§μ€ ComfyUI ν”„λ‘ νŠΈμ—”λ“œ νŒ¨ν‚€μ§€μ˜ μžλ°”μŠ€ν¬λ¦½νŠΈ μ»¨ν…μŠ€νŠΈ λ‚΄μ—μ„œ κ΄€λ¦¬λœλ‹€ [13]. - **μž₯점 및 ν•œκ³„:** - λ³„λ„μ˜ JSON νŒŒμΌμ„ 관리할 ν•„μš” 없이 이미지 ν•˜λ‚˜λ‘œ λͺ¨λ“  생성 정보λ₯Ό κ³΅μœ ν•  수 μžˆλ‹€λŠ” 점이 κ°€μž₯ 큰 μž₯점이닀 [14]. - κ·ΈλŸ¬λ‚˜ 파일이 μ˜¨λΌμΈμ— κ²Œμ‹œλ˜κ±°λ‚˜ μž¬κ°€κ³΅λ  λ•Œ 메타데이터가 μ‚­μ œ(Stripped)λ˜λŠ” κ²½μš°κ°€ λΉˆλ²ˆν•˜λ©°, 맀우 λ³΅μž‘ν•˜κ±°λ‚˜ μ΅œμ‹  μ»€μŠ€ν…€ λ…Έλ“œκ°€ ν¬ν•¨λœ 경우 κ°„ν˜Ή 일뢀 λ…Έλ“œ 정보가 μœ μ‹€λ  수 μžˆλ‹€λŠ” 기술적 ν•œκ³„κ°€ λ³΄κ³ λ˜μ—ˆλ‹€ [2, 4, 12]. ## βš–οΈ λͺ¨μˆœ 및 μ—…λ°μ΄νŠΈ (Contradictions & updates) - **μ €μž₯ μ•ˆμ •μ„± λ…Όλž€:** 첫 번째 μ €μž₯ 방식인 '이미지 메타데이터' 방식은 κ°€μž₯ κ°„νŽΈν•˜μ§€λ§Œ, μ†ŒμŠ€μ— λ”°λ₯΄λ©΄ λ³΅μž‘ν•œ λ…Έλ“œλ‚˜ νŠΉμ • μ»€μŠ€ν…€ λ…Έλ“œλ₯Ό λˆ„λ½ν•  κ°€λŠ₯성이 μžˆμ–΄, 보닀 ν™•μ‹€ν•œ 백업을 μœ„ν•΄μ„œλŠ” 두 번째 방식인 **μˆ˜λ™ JSON 파일 μ €μž₯**이 ꢌμž₯λœλ‹€ [4]. - **포맷 ν˜Έν™˜μ„± 이슈:** ComfyUI의 λΉˆλ²ˆν•œ μ—…λ°μ΄νŠΈλ‘œ 인해, κ³Όκ±° 이미지 메타데이터에 λ‚΄μž₯된 ꡬ버전 JSON ν˜•μ‹μ΄ μ΅œμ‹  λ²„μ „μ˜ μΈν„°νŽ˜μ΄μŠ€μ—μ„œ μ •μƒμ μœΌλ‘œ μž‘λ™ν•˜μ§€ μ•Šμ„ 수 μžˆλ‹€λŠ” 점이 μ§€μ λ˜μ—ˆλ‹€ [5]. ## πŸ› οΈ 적용 사둀 (Applied in summary) - **Exiftool μΆ”μΆœ λͺ…λ Ή:** `exiftool -b -workflow input.png > workflow.json` λͺ…λ Ήμ–΄λ₯Ό 톡해 PNG의 메타데이터 μ²­ν¬μ—μ„œ μ›Œν¬ν”Œλ‘œμš° JSON을 κ²©λ¦¬ν•˜μ—¬ μ €μž₯ν•˜λŠ” 사둀가 ν™•μΈλœλ‹€ [7, 8]. - **Frontend νŒŒμ‹± μœ„μΉ˜:** 곡식적인 메타데이터 νŒŒμ‹± λ‘œμ§μ€ `comfyui-frontend-package` λ‚΄λΆ€μ˜ `src/scripts/metadata` κ²½λ‘œμ—μ„œ κ΅¬ν˜„ 및 κ΄€λ¦¬λ˜κ³  μžˆλ‹€ [13]. - **μ»€μŠ€ν…€ λ…Έλ“œ 연동:** `pythongosssss`의 μ›Œν¬ν”Œλ‘œμš° 이미지 생성 λ…Έλ“œ 등을 톡해 μ›Œν¬ν”Œλ‘œμš° 정보가 ν¬ν•¨λœ 이미지λ₯Ό μƒμ„±ν•˜κ³ , 이λ₯Ό λ‹€μ‹œ `workflow_templates`둜 ν™œμš©ν•˜κΈ° μœ„ν•΄ JSON을 μΆ”μΆœν•˜λŠ” μž‘μ—… 흐름이 μ‘΄μž¬ν•œλ‹€ [15]. - **온라인 μΆ”μΆœ 도ꡬ:** `weirdwonderfulai.art` λ“±μ—μ„œ μ œκ³΅ν•˜λŠ” μ›Œν¬ν”Œλ‘œμš° μΆ”μΆœκΈ°λŠ” μ‚¬μš©μžκ°€ λ“œλ‘­ν•œ PNG의 메타데이터 청크λ₯Ό λΆ„μ„ν•˜μ—¬ JSON 파일둜 λ‹€μš΄λ‘œλ“œν•  수 있게 ν•œλ‹€ [12, 16]. ## βœ… 검증 μƒνƒœ 및 신뒰도 - **μƒνƒœ:** 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.