nathanatgit/shalielie/photographic-style-port
Claude Code and agent skill by nathanatgit/shalielie
- community
Checking that the SKILL.md file is still in the repository.
Patch an iPhone HEIC so Apple Photos offers the Photographic Styles palette (风格 / 调色板) and the iOS 27 Texture/Grain (质感/颗粒) controls. Use when the user asks to add, enable, port or restore Photographic Styles on a .HEIC photo, to make a photo from an iPhone before the iPhone 16 stylable like an iPhone 16/17 one, to give an iPhone 16/17 photo the iPhone 18 Texture/Grain controls, or to inspect a HEIC's style-related metadata.
Install
npx vskill@latest install nathanatgit/shalielie/photographic-style-portSKILL.md
Photographic Style Port
CLI that rewrites a HEIC's metadata so Apple Photos offers the Photographic Styles palette, plus iOS 27's Texture/Grain controls. Pixels are never altered — the decoded output is identical to the input.
patch picks its route from the photo itself:
- No style data (iPhones before the iPhone 16, or a re-saved copy): full port, plus Texture/Grain.
- Native style data (iPhone 16/17): nothing is ported; only the Texture/Grain items are
added and every existing payload stays byte-identical. add-texture IN OUT does the same explicitly.
- Already has Texture/Grain (iPhone 18 / iOS 27): refused — nothing to do.
Before the first run
Locate photographic_style_port.py in the project, then check which mode is available:
On Windows the repo's tools/ directory supplies heif-convert; add it to PATH first: $env:PATH = "$PWD\tools;$env:PATH".
Run uv sync once if .venv is missing. Invoke as uv run photographic_style_port.py ..., or python photographic_style_port.py ... if the project has no uv setup — the script itself is standard-library only.
Choosing a mode
| Situation | Command | |
|---|---|---|
| ffmpeg and heif-convert available | patch IN.HEIC OUT.HEIC | |
| Either missing, or reproducible output wanted | patch IN.HEIC OUT.HEIC --linear-thumb reuse-thumbnail --scene-stats donor --light-maps flat | |
| User reports weak or uneven results | add --light-maps target | |
| User reports wrong colour or exposure | add --scene-stats donor |
Do not install ffmpeg or libheif without asking — the no-encoder mode is a complete fallback, not a degraded one.
Running
Exit code 0 means success, and a summary goes to stdout. The output HEIC is the only file written unless you ask for more — add --report for a machine-readable OUT.HEIC.report.json, which is worth doing when you need to verify the result rather than just report it. Useful fields:
output_sha256— identifies the resultlinear_thumb_mode—generateorreuse-thumbnailmattes_transplanted/mattes_added— Portrait data carried overtexture_styles— whether the iOS 27 Texture/Grain set was added (--texture offskips it)thumbnail—target, orsynthesizedwhen the photo had none and one was encodedwarnings— non-fatal issues worth relaying to the user
For batches, loop one file at a time and report per-file outcomes; there is no batch mode and a failure on one photo says nothing about the next.
Do not leave report or ZIP files in the user's directories unless they asked for them, and clean up any --report output you generated purely for your own verification.
Errors
| Message | Meaning | |
|---|---|---|
Required command not found in PATH: heif-convert / ffmpeg | Switch to no-encoder mode, or set up the tool. | |
Target Exif not found | This photo cannot be patched. Not fixable by flags — say so and move on. | |
Target has no thumbnail to reuse | The photo lacks a thumbnail, so no-encoder mode cannot run; default mode encodes one (needs ffmpeg). | |
Input already carries texture_styles | Already has Texture/Grain (an iPhone 18 photo, or already patched). Nothing to do. | |
No built-in profile matches target layout N primary/M HDR | Unsupported tile layout. Needs extract-donor against an iPhone 16/17 photo with the same layout. |
Other commands
Use inspect before patching when diagnosing why a photo behaves unexpectedly.
Rules
- Never write the output over the input, and never patch a file in place. These are
irreplaceable photos and the tool is experimental.
- Do not delete or move the user's originals, including after a successful patch.
- Tell the user that transferring the result to an iPhone must be done as a file. Going
through the Photo Library converts HEIC to JPEG and discards everything this tool adds.
- Results are not validated by Apple and vary by photo. Report what the tool did; do not
promise that the palette will appear.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/photographic-style-port/SKILL.md
Popularity
- Repository stars
- 64
- Repository forks
- 12
- 7-day trend score
- 0
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/nathanatgit/shalielie/photographic-style-port)