nathanatgit/shalielie/photographic-style-port

Claude Code and agent skill by nathanatgit/shalielie

Trust tier 3
  • community
Source check pending

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-port

SKILL.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:

bash
command -v ffmpeg heif-convert # both present -> default mode

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

SituationCommand
ffmpeg and heif-convert availablepatch IN.HEIC OUT.HEIC
Either missing, or reproducible output wantedpatch IN.HEIC OUT.HEIC --linear-thumb reuse-thumbnail --scene-stats donor --light-maps flat
User reports weak or uneven resultsadd --light-maps target
User reports wrong colour or exposureadd --scene-stats donor

Do not install ffmpeg or libheif without asking — the no-encoder mode is a complete fallback, not a degraded one.

Running

bash
uv run photographic_style_port.py patch IN.HEIC OUT.HEIC

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 result
  • linear_thumb_mode — generate or reuse-thumbnail
  • mattes_transplanted / mattes_added — Portrait data carried over
  • texture_styles — whether the iOS 27 Texture/Grain set was added (--texture off skips it)
  • thumbnail — target, or synthesized when the photo had none and one was encoded
  • warnings — 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

MessageMeaning
Required command not found in PATH: heif-convert / ffmpegSwitch to no-encoder mode, or set up the tool.
Target Exif not foundThis photo cannot be patched. Not fixable by flags — say so and move on.
Target has no thumbnail to reuseThe photo lacks a thumbnail, so no-encoder mode cannot run; default mode encodes one (needs ffmpeg).
Input already carries texture_stylesAlready has Texture/Grain (an iPhone 18 photo, or already patched). Nothing to do.
No built-in profile matches target layout N primary/M HDRUnsupported tile layout. Needs extract-donor against an iPhone 16/17 photo with the same layout.

Other commands

bash
uv run photographic_style_port.py profiles # built-in donor profiles, as JSON
uv run photographic_style_port.py inspect PHOTO.HEIC # style-related metadata, as JSON
uv run photographic_style_port.py add-texture IN.HEIC OUT.HEIC # native style photo -> + Texture/Grain

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

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
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/nathanatgit/shalielie/photographic-style-port/badge)](https://verified-skill.com/skills/nathanatgit/shalielie/photographic-style-port)

Something wrong with this skill or its page? Tell us.