← 返回
内容创作

OpenEXR

Work with OpenEXR files — inspect channels, extract beauty/RGB passes, decode cryptomatte segmentation (material, object, asset), convert color spaces (ACESc...
处理OpenEXR文件——检查通道、提取beauty/RGB通道、解码cryptomatte分割(材质、对象、资产)、转换色彩空间(ACESc等)
oumad
内容创作 clawhub v0.1.1 1 版本 100000 Key: 无需
★ 0
Stars
📥 469
下载
💾 7
安装
1
版本
#latest

概述

EXR Skill

Work with OpenEXR files — the multi-channel, high dynamic range format standard in VFX, CGI rendering, and compositing. EXR files typically contain beauty renders, AOV passes (depth, normals, motion vectors), and cryptomatte segmentation data, all stored as 32-bit float channels.

Setup

Install dependencies before first use:

pip install -r requirements.txt

Dependencies: OpenEXR==3.2.4, numpy<2, Pillow.

> Note: OpenEXR 3.2.4 is pinned because later versions (3.4+) can segfault on some platforms. numpy<2 is required for OpenEXR 3.2.x compatibility.

Ready-Made Tool

scripts/exr_extract.py is a general-purpose CLI for common EXR tasks:

python scripts/exr_extract.py info <file|dir>
python scripts/exr_extract.py beauty <file|dir> [--colorspace CS] [--output-dir DIR] [--force]
python scripts/exr_extract.py crypto <file|dir> [--type TYPE] [--bg-color COLOR] [--suffix TEXT] [--no-suffix] [--output-dir DIR] [--force]
python scripts/exr_extract.py channels <file|dir> --channels R,G,B [--colorspace CS] [--output-dir DIR] [--force]

Use this tool first. Fall back to custom Python only for edge cases.

Channel Inspection

Always start by inspecting what's in the EXR:

python scripts/exr_extract.py info render.exr

This shows:

  • Resolution and data/display windows
  • All channels with data types and sampling
  • Cryptomatte metadata (hash function, manifest, conversion type)
  • Auto-detected crypto pass types and their channel prefixes

Common channel patterns:

  • R, G, B, A — beauty/RGBA pass
  • depth.Z or Z — depth pass
  • N.X, N.Y, N.Z — world-space normals
  • crypto_material00.R, .G, .B, .A — cryptomatte rank 0-1
  • crypto_object00.R, .G — object ID cryptomatte

Beauty / RGB Extraction

Extract the rendered beauty image as a tone-mapped PNG:

python scripts/exr_extract.py beauty render.exr --colorspace acescg

Color space options:

  • acescg (default): ACEScg AP1 primaries → linear sRGB via 3x3 matrix → sRGB OETF. Standard for most VFX renders.
  • linear: Already linear sRGB primaries → apply sRGB OETF only (gamma encoding).
  • srgb: Already sRGB-encoded → clamp and save directly.

The ACEScg→sRGB pipeline applies the AP1-to-Rec.709 matrix then the piecewise sRGB OETF. See ${CLAUDE_SKILL_DIR}/references/color-spaces.md for exact values.

Cryptomatte Extraction

Extract material, object, or asset segmentation masks as color-coded PNGs:

python scripts/exr_extract.py crypto render.exr
python scripts/exr_extract.py crypto render.exr --type crypto_material
python scripts/exr_extract.py crypto ./renders/ --bg-color black --output-dir ./masks/

How it works:

  1. Reads the top-ranked cryptomatte ID from {prefix}00.R (float-encoded uint32 hash) and coverage from {prefix}00.G
  2. Detects the background ID by sampling edges and corners of the image
  3. Assigns a 35-color bold palette to foreground materials, ranked by pixel area (largest material gets the most distinct color)
  4. Background gets neutral gray (or black with --bg-color black)
  5. Zero-coverage pixels are black

Auto-detects channel naming conventions across renderers:

  • Arnold: crypto_material00, crypto_object00
  • Shortened: crypto_mat00, crypto_obj00

See ${CLAUDE_SKILL_DIR}/references/cryptomatte.md for format details.

Crypto Options

  • --type: Force a specific type (crypto_material, crypto_object, crypto_asset). Default: extract all detected.
  • --bg-color: gray (default), black, or auto.
  • --suffix: Custom suffix (default: _materialID, _objectID, _assetID).
  • --no-suffix: Output with same name as input (for dataset prep into separate folders).

Arbitrary Channel Extraction

Extract any named channels:

# Normals as RGB
python scripts/exr_extract.py channels render.exr --channels N.X,N.Y,N.Z

# Single channel (depth)
python scripts/exr_extract.py channels render.exr --channels depth.Z

When 3 channels are specified, they're composited as RGB. Single channels become grayscale. Other counts produce individual files.

Batch Processing

All subcommands accept a directory path to process every EXR in it:

python scripts/exr_extract.py beauty ./renders/ --output-dir ./target/ --colorspace acescg
python scripts/exr_extract.py crypto ./renders/ --output-dir ./control/ --no-suffix

Existing outputs are skipped unless --force is specified.

Custom Python

For edge cases not covered by the CLI, use the OpenEXR Python API directly:

import OpenEXR, Imath
import numpy as np

exr = OpenEXR.InputFile('render.exr')
header = exr.header()
dw = header['dataWindow']
w = dw.max.x - dw.min.x + 1
h = dw.max.y - dw.min.y + 1

pt = Imath.PixelType(Imath.PixelType.FLOAT)
raw = exr.channel('R', pt)
data = np.frombuffer(raw, dtype=np.float32).reshape(h, w)

Always install dependencies first, pin OpenEXR==3.2.4, and use Imath.PixelType.FLOAT.

Related: oiiotool Skill

For tasks beyond what this Python-based EXR skill covers, consider the oiiotool skill (pip install openimageio). It provides:

  • ACES display transforms — proper tone-mapped output with highlight rolloff (RRT+ODT), essential for HDR/camera-originated EXRs where simple matrix conversion clips highlights
  • Exposure sweeps — generate multi-exposure composites for reviewing HDR dynamic range
  • EXR sequence to video — convert frame sequences to MP4 via oiiotool + ffmpeg
  • Format conversion — EXR to/from TIFF, DPX, PNG, JPEG, HDR, WebP, and more
  • Efficient multichannel reading-i:ch=R,G,B reads only needed channels, critical for large production EXRs
  • Batch sequence processing — frame wildcards with parallel processing

When to use which

TaskUse
-----------
Inspect channels, cryptomatte metadataexr skill
Extract cryptomatte as colored segmentationexr skill
Beauty extraction from ACEScg renders (simple scenes)exr skill
HDR review with ACES tone mappingoiiotool skill
Exposure adjustment / sweepoiiotool skill
EXR sequence to MP4oiiotool skill
Format conversion (EXR to DPX, TIFF, etc.)oiiotool skill
Resize, crop, compositeoiiotool skill
Batch sequence operationsoiiotool skill

版本历史

共 1 个版本

  • v0.1.1 当前
    2026-03-30 22:15 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

content-creation

Humanizer

biostartechnology
消除AI写作痕迹,使文本更自然真实。基于维基百科"AI写作特征"指南,识别并修正夸张象征、宣传用语、肤浅-ing分析、模糊归因、破折号滥用、三项排比、AI词汇、负面平行结构及冗长连接词等模式。
★ 860 📥 199,873
content-creation

YouTube

byungkyu
使用托管OAuth集成YouTube Data API,支持搜索视频、管理播放列表、获取频道数据及评论互动,适用于用户需要时使用此技能。
★ 142 📥 41,077
content-creation

AdMapix

fly0pants
广告情报与应用数据分析助手,支持搜索广告素材、分析应用排名、下载量、收入及市场洞察,用于广告素材和竞品分析。
★ 295 📥 136,494