{"id":4236,"date":"2026-09-03T17:34:24","date_gmt":"2026-09-03T09:34:24","guid":{"rendered":"https:\/\/ai.jxgzhc.cn\/?p=4236"},"modified":"2026-09-03T17:34:27","modified_gmt":"2026-09-03T09:34:27","slug":"%e7%a1%ae%e5%ae%9a%e6%80%a7%e7%85%a7%e7%89%87%e8%b0%83%e8%89%b2%e4%b8%8eraw%e5%bc%80%e5%8f%91","status":"publish","type":"post","link":"https:\/\/ai.jxgzhc.cn\/?p=4236","title":{"rendered":"\u786e\u5b9a\u6027\u7167\u7247\u8c03\u8272\u4e0eRAW\u5f00\u53d1"},"content":{"rendered":"<p><img decoding=\"async\" class=\"alignnone size-full\" src=\"https:\/\/ai.jxgzhc.cn\/wp-content\/uploads\/2026\/09\/grade-images.png\" alt=\"\u786e\u5b9a\u6027\u7167\u7247\u8c03\u8272\u4e0eRAW\u5f00\u53d1\" \/><\/p>\n<p><strong>\u83b7\u5f97\u4e25\u683c\u4fdd\u7559\u539f\u56fe\u7ed3\u6784\u4e0e\u5185\u5bb9\u3001\u7b26\u5408\u4f60\u5ba1\u7f8e\u8981\u6c42\u7684\u4e13\u4e1a\u8c03\u8272\u7167\u7247\uff0c\u4ee5\u53ca\u53ef\u590d\u73b0\u7684\u6807\u51c6\u5316\u8c03\u8272\u914d\u65b9\u3002<\/strong><\/p>\n<h2>\u8be6\u7ec6\u4ecb\u7ecd<\/h2>\n<p>Grade Images<\/p>\n<p>grade-images is a deterministic Codex skill for camera RAW development, photographic color correction, reference matching, creative color grading, batch consistency, explicitly approved source-derived highlight diffusion, and opt-in bounded output sharpening. It never uses a generative image editor.<\/p>\n<p>The core design is simple: let the AI interpret intent and review previews, then let a constrained local renderer execute a versioned JSON recipe.<\/p>\n<p>\u4e2d\u6587\u7b80\u4ecb<\/p>\n<p>grade-images \u662f\u4e00\u4e2a\u9762\u5411 Codex \u7684\u786e\u5b9a\u6027\u7167\u7247\u8c03\u8272\u6280\u80fd\uff0c\u652f\u6301\u66dd\u5149\u4e0e\u767d\u5e73\u8861\u6821\u6b63\u3001\u53c2\u8003\u56fe\u5339\u914d\u3001\u521b\u610f\u8c03\u8272\u3001\u6279\u91cf\u98ce\u683c\u7edf\u4e00\uff0c\u4ee5\u53ca\u7ecf\u7528\u6237\u660e\u786e\u8bb8\u53ef\u7684\u539f\u751f\u9ad8\u5149\u6269\u6563\u3002\u5b83\u4e0d\u8c03\u7528\u751f\u6210\u5f0f\u56fe\u50cf\u7f16\u8f91\u5668\uff0c\u800c\u662f\u7531 AI \u7406\u89e3\u5ba1\u7f8e\u610f\u56fe\u3001\u5ba1\u9605\u9884\u89c8\uff0c\u518d\u901a\u8fc7\u53d7\u7ea6\u675f\u7684\u672c\u5730\u6e32\u67d3\u5668\u6267\u884c\u53ef\u590d\u73b0\u3001\u53ef\u5ba1\u8ba1\u7684\u7248\u672c\u5316 JSON \u914d\u65b9\u3002<\/p>\n<p>\u6280\u80fd\u4ee5\u4fdd\u62a4\u539f\u56fe\u5185\u5bb9\u4e3a\u6838\u5fc3\uff1a\u4e0d\u4f1a\u6539\u53d8\u5c3a\u5bf8\u3001\u51e0\u4f55\u7ed3\u6784\u3001\u4eba\u7269\u4e94\u5b98\u3001\u7269\u4f53\u3001\u6587\u5b57\u6216\u7eb9\u7406\uff0c\u4e5f\u4e0d\u4f1a\u51ed\u7a7a\u5408\u6210\u5149\u6e90\u3001\u5149\u675f\u3001\u955c\u5934\u5149\u6591\u7b49\u6548\u679c\u3002\u5373\u4f7f\u9009\u62e9\u5f3a\u70c8\u8c03\u8272\uff0c\u4ecd\u4f1a\u5c06\u8272\u5f69\u5f3a\u5ea6\u4e0e\u5149\u6548\u6743\u9650\u5206\u5f00\uff1b\u53ea\u6709\u5728\u7528\u6237\u660e\u786e\u540c\u610f\u540e\uff0c\u624d\u5141\u8bb8\u4ece\u539f\u56fe\u771f\u5b9e\u9ad8\u5149\u4e2d\u63d0\u53d6\u5e76\u751f\u6210\u53d7\u63a7\u7684\u67d4\u548c\u6269\u6563\u3002<\/p>\n<p>v0.2.1 \u65b0\u589e\u591a\u65b9\u6848\u9884\u89c8\u4e0e\u5e26\u539f\u56fe\u7684\u6807\u6ce8\u5bf9\u6bd4\u56fe\uff0c\u53ef\u4ece\u4e00\u4e2a\u57fa\u7840\u914d\u65b9\u81ea\u52a8\u6d3e\u751f\u4fdd\u5b88\u3001\u6807\u51c6\u548c\u5f3a\u70c8\u4e09\u6863\uff0c\u540c\u65f6\u786e\u4fdd\u6821\u6b63\u3001\u4fdd\u62a4\u8bbe\u7f6e\u548c\u5149\u6548\u6743\u9650\u4fdd\u6301\u4e0d\u53d8\u3002\u53c2\u8003\u5339\u914d\u88ab\u7ec6\u5206\u4e3a\u9634\u5f71\u3001\u4e2d\u95f4\u8c03\u3001\u9ad8\u5149\u4ee5\u53ca\u4e0d\u540c\u8272\u5f69\u6d53\u5ea6\u533a\u95f4\uff1b\u5728\u7528\u6237\u9009\u5b9a\u5f3a\u5ea6\u540e\uff0c\u8fd8\u80fd\u5728\u8be5\u6863\u5185\u90e8\u641c\u7d22\u591a\u4e2a\u5b89\u5168\u5019\u9009\u3002\u8d28\u91cf\u62a5\u544a\u4f1a\u5206\u522b\u5448\u73b0\u8272\u8c03\u3001\u8272\u5f69\u6d53\u5ea6\u3001\u5168\u5c40\u8272\u504f\u548c\u4eae\u5ea6\u5206\u533a\u8272\u5f69\u7684\u5339\u914d\u8fdb\u5ea6\uff0c\u5728\u672a\u8fbe\u76ee\u6807\u65f6\u7ed9\u51fa\u4e0b\u4e00\u9879\u53ef\u6267\u884c\u8c03\u6574\u5efa\u8bae\u3002\u5f00\u53d1\u8005\u8fd8\u53ef\u901a\u8fc7\u672c\u5730\u56de\u5f52\u6e05\u5355\u6d4b\u8bd5\u53cc\u5411\u8f6c\u6362\uff0c\u540c\u65f6\u8ba9\u79c1\u6709\u6d4b\u8bd5\u7167\u7247\u59cb\u7ec8\u7559\u5728\u4ed3\u5e93\u4e4b\u5916\u3002<\/p>\n<p>v0.3.0 \u52a0\u5165\u201c\u53d8\u9769\u578b\u201d\u8c03\u8272\uff1a\u5f53\u7528\u6237\u660e\u786e\u8981\u6c42\u5927\u5e45\u6539\u53d8\u6574\u4f53\u8272\u8c03\u3001\u663e\u8457\u538b\u4f4e\u67d0\u7c7b\u989c\u8272\u6216\u628a\u4e00\u79cd\u989c\u8272\u5bb6\u65cf\u8f6c\u5411\u53e6\u4e00\u79cd\u989c\u8272\u65f6\uff0c\u6280\u80fd\u4e0d\u518d\u53d7\u4ee5\u5f80\u4fdd\u5b88\u5ba1\u7f8e\u5e45\u5ea6\u9650\u5236\u3002\u65b0\u7684 schema 1.2 \u53ef\u4f9d\u636e\u539f\u56fe\u50cf\u7d20\u7684\u8272\u76f8\u3001\u9971\u548c\u5ea6\u548c\u660e\u5ea6\u8fdb\u884c\u5e73\u6ed1\u8303\u56f4\u91cd\u6620\u5c04\uff0c\u4f8b\u5982\u628a\u6696\u767d\u6a31\u82b1\u63a8\u5411\u6d45\u7d2b\uff0c\u540c\u65f6\u538b\u4f4e\u73af\u5883\u9ec4\u6a59\u3002\u5b83\u4ecd\u4e0d\u4f7f\u7528\u8bed\u4e49\u5206\u5272\u3001\u751f\u6210\u5f0f\u8499\u7248\u6216\u5408\u6210\u5149\u6548\uff0c\u5c3a\u5bf8\u3001\u4e94\u5b98\u3001\u7269\u4f53\u3001\u6587\u5b57\u3001\u7eb9\u7406\u4e0e\u539f\u751f\u5149\u7ebf\u4f4d\u7f6e\u7ee7\u7eed\u53d7\u5230\u4e25\u683c\u4fdd\u62a4\u3002<\/p>\n<p>v0.3.1 \u805a\u7126\u7a33\u5b9a\u6027\u3001\u901f\u5ea6\u3001RAW \u5f00\u53d1\u4e0e\u98ce\u683c\u8bed\u8a00\u6269\u5c55\u3002\u591a\u4e2a\u8272\u76f8\u8303\u56f4\u73b0\u5728\u7edf\u4e00\u4f9d\u636e\u540c\u4e00\u4efd\u4e0d\u53ef\u53d8\u6e90\u989c\u8272\u72b6\u6001\u8ba1\u7b97\uff0c\u5e76\u4ee5\u987a\u5e8f\u65e0\u5173\u7684\u65b9\u5f0f\u5408\u6210\uff0c\u907f\u514d\u8c03\u6574\u914d\u65b9\u6570\u7ec4\u987a\u5e8f\u5c31\u6539\u53d8\u753b\u9762\u3002\u9884\u89c8\u4e0e\u5019\u9009\u56fe\u4f7f\u7528\u66f4\u5feb\u7684\u65e0\u635f PNG \u7f16\u7801\uff0c\u800c\u6700\u7ec8\u6e32\u67d3\u7ee7\u7eed\u4fdd\u7559\u539f\u6709\u8f93\u51fa\u8d28\u91cf\u3002RAW \u8def\u5f84\u663e\u5f0f\u9501\u5b9a AHD \u53bb\u9a6c\u8d5b\u514b\u3001\u76f8\u673a\u767d\u5e73\u8861\u3001sRGB \u8f93\u51fa\u548c\u65e0\u81ea\u52a8\u63d0\u4eae\u5f00\u53d1\uff0c\u5e76\u660e\u786e\u5173\u95ed\u964d\u566a\u3001\u574f\u70b9\u4fee\u590d\u3001\u4e2d\u503c\u6ee4\u6ce2\u3001\u8272\u5dee\u6821\u6b63\u3001\u9510\u5316\u7b49\u7ec6\u8282\u5904\u7406\uff0c\u540c\u65f6\u628a\u5b8c\u6574\u53c2\u6570\u5199\u5165\u6e05\u5355\u3002\u672c\u7248\u672c\u8fd8\u65b0\u589e\u201c\u4f98\u5bc2\u6df1\u7070\u201d\u53c2\u8003\u4e0e\u9884\u8bbe\uff0c\u53ef\u6784\u5efa\u6ca5\u9752\u6df1\u7070\u57fa\u5e95\u3001\u53d7\u63a7\u9ad8\u5149\u3001\u4f4e\u9971\u548c\u51b7\u8272\u73af\u5883\u548c\u76f8\u5bf9\u7a81\u51fa\u7684\u6696\u8272\u4e3b\u4f53\uff0c\u540c\u65f6\u4ecd\u7981\u6b62\u771f\u5b9e\u9ed1\u8272\u56fe\u5c42\u3001\u9510\u5316\u3001\u9897\u7c92\u4e0e\u5408\u6210\u5149\u6548\u3002<\/p>\n<p>v0.3.2 \u662f RAW \u4f18\u5316\u7248\u672c\u3002\u76f8\u673a\u767d\u5e73\u8861\u4e0d\u518d\u53ea\u6309\u201c\u7cfb\u6570\u4e3a\u6b63\u201d\u7c97\u7565\u5224\u5b9a\uff1a\u7f3a\u5931\u3001\u975e\u6cd5\u6216\u53ef\u7591\u7684\u5355\u4f4d\u7cfb\u6570\u4f1a\u88ab\u5206\u522b\u8bb0\u5f55\uff0c\u5e76\u6309\u56fa\u5b9a\u89c4\u5219\u56de\u9000\u5230\u6709\u6548\u65e5\u5149\u7cfb\u6570\u6216\u89e3\u7801\u5668\u9ed8\u8ba4\u503c\uff0c\u907f\u514d\u628a\u65e0\u6548\u5143\u6570\u636e\u8bef\u62a5\u6210 as-shot \u767d\u5e73\u8861\u3002 raw_check.py &#8211;require-camera-wb \u53ef\u5728\u4e25\u683c\u5de5\u4f5c\u6d41\u4e2d\u62d2\u7edd\u4efb\u4f55\u56de\u9000\u3002\u6700\u7ec8 RAW PNG \u6539\u7528\u66f4\u5feb\u7684\u65e0\u635f\u538b\u7f29\u7ea7\u522b\uff0c\u6e32\u67d3\u6e05\u5355\u65b0\u589e\u5f00\u53d1\u3001\u8c03\u8272\u3001\u4fdd\u5b58\u548c\u54c8\u5e0c\u9636\u6bb5\u8017\u65f6\u3001\u8f93\u51fa\u7f16\u7801\u53c2\u6570\u3001\u65b9\u5411\u6807\u8bb0\u4e0e\u5b8c\u6574\u767d\u5e73\u8861\u6765\u6e90\uff0c\u4fbf\u4e8e\u5b9a\u4f4d\u517c\u5bb9\u6027\u548c\u6027\u80fd\u95ee\u9898\u3002\u771f\u5b9e NEF\u3001ARW \u4e0e DNG \u88ab\u7eb3\u5165\u672c\u5730\u56de\u5f52\u8986\u76d6\uff0c\u539f\u59cb\u6587\u4ef6\u4ecd\u4e0d\u4f1a\u5199\u5165\u53d1\u5e03\u5305\u3002<\/p>\n<p>v0.3.3 \u65b0\u589e\u4e25\u683c\u7684\u80f6\u7247\u8272\u5f69\u8def\u7531\u3002 route_film.py \u5c06\u901a\u7528\u201c\u80f6\u7247\u611f\u201d\u62c6\u6210\u7ecf\u5178\u8d1f\u7247\u3001\u65e5\u5149\u4e00\u6b21\u6027\u80f6\u7247\u4e0e\u7535\u5f71\u5370\u7247\u4e09\u79cd\u53ef\u6bd4\u8f83\u65b9\u5411\uff0c\u5e76\u628a\u66f4\u5177\u4f53\u7684\u63d0\u793a\u8bcd\u786e\u5b9a\u6027\u5730\u8def\u7531\u5230\u76f8\u5e94 color-only \u914d\u65b9\u3002\u6240\u6709\u80f6\u7247\u914d\u65b9\u7ee7\u7eed\u670d\u4ece\u4e25\u683c\u4fdd\u62a4\uff1a\u4e0d\u52a0\u5165\u9897\u7c92\u3001\u6697\u89d2\u3001\u67d4\u7126\u3001\u6f0f\u5149\u3001\u7578\u53d8\u3001\u9510\u5316\u6216\u88c1\u5207\uff1b\u5f53\u63d0\u793a\u8bcd\u8981\u6c42\u8fd9\u4e9b\u6548\u679c\u65f6\uff0c\u8def\u7531\u5668\u4f1a\u5355\u72ec\u62a5\u544a\u4e3a\u4e0d\u652f\u6301\uff0c\u800c\u4e0d\u662f\u9759\u9ed8\u542f\u7528\u3002v0.3.2 \u7684 RAW \u767d\u5e73\u8861\u3001\u6027\u80fd\u8bca\u65ad\u548c\u771f\u5b9e NEF\/ARW\/DNG \u56de\u5f52\u80fd\u529b\u4fdd\u6301\u4e0d\u53d8\u3002<\/p>\n<p>The v0.3.3 documentary extension adds route_documentary.py and two color-only baselines learned from eight local Before\/After study pairs: vivid documentary and archival documentary. The private examples are not packaged. Grain, dust, vignette, blur, light leaks, sharpening, clarity, dehaze, crop, and geometry changes remain forbidden.<\/p>\n<p>Version 0.3.4 keeps every ordinary recipe color-only and pixel-compatible with v0.3.3, then adds one schema 1.3 refinement path for an explicit current request for output sharpening. The only new operator is bounded, source-derived luminance sharpening after resize, with skin\/noise protection and texture alarms. It cannot denoise, deblur, restore, super-resolve, add clarity\/dehaze\/local contrast, synthesize grain, repair defects, or generate content.<\/p>\n<p>Why this skill exists<\/p>\n<p>Many image-editing workflows mix color decisions with generative reconstruction. That can subtly change faces, objects, texture, or geometry. This skill instead uses an operation whitelist and an engine that has no crop, warp, inpainting, smoothing, denoising, restoration, or synthesis operators. Its sole texture operator is explicitly requested, bounded output sharpening of existing luminance detail.<\/p>\n<p>Strict mode guarantees that the pipeline cannot intentionally:<\/p>\n<p>alter image dimensions or alpha topology;<\/p>\n<p>reshape faces or objects;<\/p>\n<p>add, remove, or regenerate scene content;<\/p>\n<p>alter texture by default, blur the source image, denoise, smooth skin, repair detail, or synthesize texture;<\/p>\n<p>synthesize or composite suns, lamps, reflections, flares, starbursts, halos, rays, rim lights, or painted highlights;<\/p>\n<p>execute unknown recipe operations.<\/p>\n<p>Color grading necessarily changes pixel values. JPEG re-encoding is also lossy. The skill therefore guarantees constrained operations and structural preservation, not byte-identical output.<\/p>\n<p>Features<\/p>\n<p>Exposure and white-balance correction in linear light, separated from aesthetic intensity.<\/p>\n<p>Explicit conservative, standard, bold, and transformative strategies; standard is the fallback when a subjective request has no chosen intensity.<\/p>\n<p>Reproducible creative looks using monotonic curves, ASC-CDL-style controls, saturation, and restrained split toning.<\/p>\n<p>Schema 1.1 vibrance for strong color changes without uniformly overdriving already-saturated regions.<\/p>\n<p>Schema 1.2 smooth hue-range remapping with source hue, saturation, and luminance gates\u2014without semantic or generated masks.<\/p>\n<p>A documented wabi-sabi deep-gray treatment with an asphalt-charcoal base, restrained cool colors, warmer focal accents, controlled highlights, and no literal overlays or sharpening.<\/p>\n<p>Reference-derived matching without neural style transfer.<\/p>\n<p>Labeled multi-variant previews that retain every independent result and recipe.<\/p>\n<p>A single-pass preview command that renders, evaluates, labels, and records timings without repeated image decoding or ad hoc sheet scripts.<\/p>\n<p>Automatic conservative\/standard\/bold\/transformative derivation that scales only the creative look.<\/p>\n<p>Shadow\/midtone\/highlight-aware reference diagnostics with actionable next adjustments.<\/p>\n<p>Safety-gated reference candidate search contained within the user-selected intensity.<\/p>\n<p>Per-image batch normalization followed by one shared creative look.<\/p>\n<p>Optional feathered skin-color protection with explicit uncertainty warnings.<\/p>\n<p>Embedded ICC conversion to an sRGB working and output space.<\/p>\n<p>Optional rawpy\/LibRaw camera RAW and DNG development with explicit AHD demosaicing, validated camera\/daylight white-balance routing, disabled detail operations, and recorded bit-depth, color-space, orientation, and decoder settings.<\/p>\n<p>Machine-readable recipes, render manifests, and quality reports.<\/p>\n<p>Structural alarms for changed dimensions, alpha topology, edge orientation, new edges, clipping, and extreme saturation.<\/p>\n<p>Optional source-derived highlight glow after explicit consent, with strict rejection of synthetic lighting.<\/p>\n<p>Reference-aware distribution checks that keep structural safety separate from aesthetic target matching.<\/p>\n<p>An opt-in local regression runner that keeps private test photographs outside the repository.<\/p>\n<p>Supported scope<\/p>\n<p>Version 0.3.4 accepts single-frame, 8-bit JPEG and PNG images plus camera RAW and DNG files supported by the installed rawpy\/LibRaw backend. RAW support is optional, uses a 16-bit decoder intermediate for full development, and currently exports an 8-bit PNG or JPEG derivative; it never rewrites a camera RAW. Video, animated images, encoded 16-bit raster inputs, retouching, geometry changes, grain, denoising, deblurring, restoration, synthetic\/composited lighting, and generative edits remain unsupported. Output sharpening is available only through an explicit schema 1.3 refinement request.<\/p>\n<p>Fully clipped highlights or shadows in an encoded JPEG or PNG cannot be recovered.<\/p>\n<p>Install<\/p>\n<p>Requirements:<\/p>\n<p>Python 3.10 or newer;<\/p>\n<p>Pillow;<\/p>\n<p>NumPy.<\/p>\n<p>Camera RAW additionally requires rawpy\/LibRaw.<\/p>\n<p>From a repository checkout, install the runtime dependencies:<\/p>\n<p>python -m pip install -r requirements.txt<\/p>\n<p>For camera RAW and DNG input, install the optional backend:<\/p>\n<p>python -m pip install -r requirements-raw.txt<\/p>\n<p>Copy skills\/grade-images into the Codex skills directory. The usual destination is $CODEX_HOME\/skills\/grade-images ; when CODEX_HOME is unset, use ~\/.codex\/skills\/grade-images .<\/p>\n<p>macOS or Linux:<\/p>\n<p>mkdir -p &quot;${CODEX_HOME:-$HOME\/.codex}\/skills&quot;<br \/>cp -R skills\/grade-images &quot;${CODEX_HOME:-$HOME\/.codex}\/skills\/grade-images&quot;<\/p>\n<p>Windows PowerShell:<\/p>\n<p>$codexRoot = if ($env:CODEX_HOME) { $env:CODEX_HOME } else { Join-Path $env:USERPROFILE &#x27;.codex&#x27; }<br \/>New-Item -ItemType Directory -Force (Join-Path $codexRoot &#x27;skills&#x27;) | Out-Null<br \/>Copy-Item -Recurse -Force &#x27;skills\\grade-images&#x27; (Join-Path $codexRoot &#x27;skills\\grade-images&#x27;)<\/p>\n<p>Restart Codex after installing or updating the skill.<\/p>\n<p>Use<\/p>\n<p>Ask Codex naturally, for example:<\/p>\n<p>\u201cCorrect the exposure and white balance without changing texture or facial features.\u201d<\/p>\n<p>\u201cMatch this photo to the reference image&#x27;s color treatment.\u201d<\/p>\n<p>\u201cGive this set a cohesive restrained cinematic grade.\u201d<\/p>\n<p>\u201cAudit these photos for clipping and color-cast problems.\u201d<\/p>\n<p>The skill supports five workflows: audit , correct , look , match , and batch .<\/p>\n<p>For a subjective look, choose conservative , standard , bold , or transformative . If the prompt does not imply one, the skill asks before rendering; if no answer is available, it uses standard rather than silently weakening the grade. Style words such as natural and cinematic do not imply desaturation. Transformative is selected only by an explicit major-change instruction or direct user choice.<\/p>\n<p>Direct script usage is also available from skills\/grade-images :<\/p>\n<p>python scripts\/analyze.py input.jpg &#8211;output analysis.json<br \/>python scripts\/raw_check.py input.nef &#8211;output raw-check.json &#8211;full-decode<br \/>python scripts\/raw_check.py input.nef &#8211;output raw-check.json &#8211;require-camera-wb<br \/>python scripts\/grade.py validate assets\/recipes\/neutral-correction.json<br \/>python scripts\/grade.py render input.jpg &#8211;recipe assets\/recipes\/muted-cinematic.json &#8211;output preview.png &#8211;max-size 1600<br \/>python scripts\/compare.py input.jpg preview.png &#8211;recipe assets\/recipes\/muted-cinematic.json &#8211;output quality.json<br \/>python scripts\/compare.py input.jpg preview.png &#8211;recipe match.json &#8211;reference reference.jpg &#8211;output quality.json<br \/>python scripts\/preview.py input.jpg &#8211;recipe assets\/recipes\/transformative-cool-violet.json &#8211;output-dir previews &#8211;max-size 1200<br \/>python scripts\/route_film.py &quot;\u6807\u51c6\u5f3a\u5ea6\u80f6\u7247\u611f&quot; &#8211;output film-route.json<br \/>python scripts\/route_documentary.py &quot;\u7ecf\u5178\u7eaa\u5b9e\u6444\u5f71\u8c03\u8272&quot; &#8211;output documentary-route.json<br \/>python scripts\/variants.py input.jpg &#8211;variant conservative=a.json &#8211;variant standard=b.json &#8211;variant bold=c.json &#8211;variant transformative=d.json &#8211;output-dir previews<br \/>python scripts\/variants.py input.jpg &#8211;base-recipe base.json &#8211;output-dir previews<br \/>python scripts\/search_match.py input.jpg reference.jpg &#8211;template assets\/recipes\/neutral-correction.json &#8211;intensity bold &#8211;output-dir match-search<br \/>python scripts\/regress.py private-cases.json &#8211;output-dir regression-results<\/p>\n<p>Before a subjective render, Codex briefly states the intended tonal direction, color direction, intensity, preservation choices, and effect status. If several interpretations remain plausible, the variants command produces individual previews plus a labeled sheet containing the original. Reference reports separate tone, chroma, global color, and tonal-zone color progress, then suggest the next measured adjustment.<\/p>\n<p>For a single subjective result, preview.py is the preferred fast path: it produces the preview image, copied recipe, quality report, labeled comparison sheet, manifest, and stage timings in one process. A matching bundled preset is rendered before Codex authors a recipe from scratch; quality thresholds must not be chased by changing unrelated exposure or color axes.<\/p>\n<p>For low-light scenes, start with assets\/recipes\/low-light-cinematic.json . For scenes without people, or when the heuristic mask is visibly overbroad, disable skin protection during match or batch recipe generation.<\/p>\n<p>Use assets\/recipes\/natural-standard.json for a believable but visibly improved natural starting point, assets\/recipes\/bold-cinematic.json for an unmistakable creative starting point, and assets\/recipes\/transformative-cool-violet.json for an explicit warm-to-pale-violet transformation.<\/p>\n<p>Use assets\/recipes\/wabi-sabi-deep-gray.json when the requested look calls for low exposure, deep charcoal or asphalt-gray tonal placement, restrained cool and miscellaneous colors, and comparatively warmer wood, clay, amber, red, orange, or yellow focal accents. Dark-overlay language is interpreted as a tonal target; the renderer does not composite an overlay. Keep this color-only unless the user separately and explicitly requests bounded output sharpening and the source passes texture preflight; clarity remains unsupported.<\/p>\n<p>For dreamlike, soft-glow, sacred-light, or hazy requests, intensity does not imply effect permission. The skill first asks whether restrained source-derived highlight diffusion is allowed. After explicit approval, assets\/recipes\/soft-dream-source-glow.json is available as a starting point. The effect only spreads light already present in the source and cannot add a light source, flare, ray, starburst, or new scene content.<\/p>\n<p>Output contract<\/p>\n<p>A completed render produces:<\/p>\n<p>the graded image;<\/p>\n<p>an exact copy of the JSON recipe;<\/p>\n<p>a manifest containing source and output hashes;<\/p>\n<p>a machine-readable quality report when comparison is run.<\/p>\n<p>Input files are never overwritten. Prefer PNG for a lossless graded master and create a JPEG derivative only when required.<\/p>\n<p>Develop<\/p>\n<p>Install development dependencies and run the test suite:<\/p>\n<p>python -m pip install -r requirements-dev.txt<br \/>python -m unittest discover -s tests -v<br \/>python -m compileall -q skills\/grade-images\/scripts<\/p>\n<p>Build a deterministic release archive:<\/p>\n<p>python tools\/package_skill.py &#8211;output dist\/grade-images.zip<\/p>\n<p>See CONTRIBUTING.md for contribution rules and the preservation constraints that changes must respect.<\/p>\n<p>License<\/p>\n<p>Apache License 2.0. See LICENSE .<\/p>\n<h2>\u8bd5\u8bd5\u8fd9\u6837\u505a<\/h2>\n<ul>\n<li>\u6821\u6b63\u8fd9\u5f20\u7167\u7247\u7684\u66dd\u5149\u548c\u767d\u5e73\u8861\uff0c\u4e0d\u8981\u6539\u53d8\u539f\u56fe\u7684\u7eb9\u7406\u548c\u4eba\u7269\u4e94\u5b98\u7279\u5f81\u3002<\/li>\n<li>\u6309\u7167\u8fd9\u5f20\u53c2\u8003\u56fe\u7ed9\u6211\u7684\u7167\u7247\u5339\u914d\u8272\u5f69\uff0c\u4e0d\u8981\u6539\u53d8\u539f\u56fe\u7684\u5185\u5bb9\u548c\u7ed3\u6784\u3002<\/li>\n<li>\u7ed9\u8fd9\u5f20RAW\u7167\u7247\u505a\u521b\u610f\u8c03\u8272\uff0c\u751f\u6210\u4fdd\u5b88\u3001\u6807\u51c6\u3001\u5f3a\u70c8\u4e09\u6863\u65b9\u6848\u4f9b\u6211\u9009\u62e9\u3002<\/li>\n<\/ul>\n<hr \/>\n<p>\u4f5c\u8005\uff1aliwushu128-debug \u81ea\u5a92\u4f53\u4eba \/ \u8bbe\u8ba1\u5e08 \uff5c GitHub Stars 47 \uff5c \u6807\u7b7e\uff1a\u56fe\u7247\u8bbe\u8ba1 \u81ea\u52a8\u5316 \u5df2\u8ba4\u8bc1 \u5f00\u6e90\u8bb8\u53ef: Apache<\/p>\n<p>\u6765\u6e90\uff1a<a href=\"https:\/\/colaos.ai\/skills\/zh\/grade-images\/\">colaos.ai<\/a> \uff5c Skill ID\uff1agrade-images<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u83b7\u5f97\u4e25\u683c\u4fdd\u7559\u539f\u56fe\u7ed3\u6784\u4e0e\u5185\u5bb9\u3001\u7b26\u5408\u4f60\u5ba1\u7f8e\u8981\u6c42\u7684\u4e13\u4e1a\u8c03&#8230;<\/p>\n","protected":false},"author":1,"featured_media":4235,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[72],"tags":[],"class_list":["post-4236","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-skill"],"_links":{"self":[{"href":"https:\/\/ai.jxgzhc.cn\/index.php?rest_route=\/wp\/v2\/posts\/4236","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ai.jxgzhc.cn\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ai.jxgzhc.cn\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ai.jxgzhc.cn\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ai.jxgzhc.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4236"}],"version-history":[{"count":1,"href":"https:\/\/ai.jxgzhc.cn\/index.php?rest_route=\/wp\/v2\/posts\/4236\/revisions"}],"predecessor-version":[{"id":4237,"href":"https:\/\/ai.jxgzhc.cn\/index.php?rest_route=\/wp\/v2\/posts\/4236\/revisions\/4237"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ai.jxgzhc.cn\/index.php?rest_route=\/wp\/v2\/media\/4235"}],"wp:attachment":[{"href":"https:\/\/ai.jxgzhc.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4236"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ai.jxgzhc.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4236"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ai.jxgzhc.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4236"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}