Each workflow starts by default from a newly opened raster original image, with no selection and no active path. When reusing a session, reselect the original pixel layer, and deselect only if a selection exists; if there is no selection, select.deselect will refuse to execute. First review the input image, its purpose, and the modification boundaries, then select the relevant manual below. Each workflow gives the operation order, real command IDs, parameter starting points, observed results, and boundaries that cannot be completed. Read only the relevant scenario; do not load the entire catalog.
- restoration: 12 entries: full conservative old-photo restoration workflow, scanning dust and fine white spots, local repair of fine film scratches, zoned repair of background creases, repair of small corner defects in photos, conservative correction of silver-mirror reflection areas, mild suppression of scanned print halftone dots, reduction of old JPEG block artifacts, suppression of color noise in dark areas, sampling repair of small mold spots, zoned repair of scratches near subject boundaries, patch repair of blocky stains on flat backgrounds.
- tone: 7 entries: grayscale recovery of faded black-and-white photos, correction of yellowed paper-base color cast, correction of red-fading decay in old color photos, conversion of old color photos to black and white while preserving tonal gradation, duotone mapping for editorial illustrations, black-and-white channel mixing for color portraits, keeping specified objects in color and converting the rest to black and white.
- geometry: 2 entries: scan tilt and border cleanup, cropping dirty edges from all four sides of scans.
- delivery: 4 entries: final sharpening of restored images, print resolution marking for old photos, downscaling for web display images, transparent four-side canvas extension for delivery.
- portrait: 7 entries: local blemish retouching for natural portraits, mild lightening of under-eye shadows in portraits, overall slight white balance for portraits, shadow recovery in backlit portraits, reducing local oil shine while preserving skin texture, tidying flyaway hair against solid backgrounds, natural teeth yellow removal.
- product: 8 entries: basic correction for neutral white-background products, cleaning dust from product surfaces, white-edge cleanup for cutouts on white backgrounds, black-edge cleanup for cutouts on dark old backgrounds, product subject mask separation, softening small reflection spots on products, zoned sharpening of product labels, local color trial for product color schemes.
- layout: 2 entries: adding canvas whitespace for social images, creating mirrored layout copies.
- mask-local: 8 entries: local highlight compression for indoor window scenes, local brightening of portrait faces, preserving product colors while weakening background colors, softening the background outside the subject, targeted clothing recoloring while preserving skin tones, local yellow removal on white packaging, gradient exposure balancing between sky and ground, soft vignette to emphasize the center of the frame.
Same-session MCP path
- Read the host's actual tool schema. When the embedded editor is already open, use this session,
editor_statusconfirm it is editable before executing; do not launch a separate headless CLI to modify another project and claim the screen is synchronized. doc_open {"path":"input/scan.png"}thendoc_inspect {}obtain dimensions, the current document, and layers. Paths are relative to the current workspace; use the returned layer IDs.- For commands in this scenario, first use
command_list {"filter":"paint.healingBrush"}and similar to confirm parameters and availability; then callcommand_run {"id":"paint.healingBrush","params":{"points":[[80,40,1],[84,42,1]],"source":[60,40],"size":6,"opacity":70,"sampleLayer":"current"},"wait":true}. These coordinates are only examples; you must locate and sample according to the input. - After each local operation, check the actual image and results. For long tasks that return a job, wait for the jobs status to complete before continuing; verify whether the actual tool supports the wait parameter.
doc_save {"path":"output/restored.pcraft"}save the layered project;doc_export {"path":"output/restored.png"}Save As a final render. Reopen the project and check that layers and edits still exist. After Save As, the document name may change to the target filename.
Standalone CLI path
Before executing, query photocraft-cli --version and photocraft-cli commands --json --filter paint.healingBrush; the following uses the official 0.9.0 syntax. The maintenance version locked by the old skill installer differs from this version, and the presence of a directory cannot be taken as proof that the runtime is installed.
Invoke via argv; do not manually assemble cross-platform shell quotes. Keep one editing batch in a single process; example:
["photocraft-cli","run","input/scan.png",
"--cmd","layer.duplicate","--params","{\"name\":\"Restoration working copy\"}",
"--cmd","paint.healingBrush","--params","{\"points\":[[80,40,1]],\"source\":[60,40],\"size\":6,\"opacity\":70}",
"--out","output/restored.pcraft"]
Then use a new process to photocraft-cli info output/restored.pcraft verify the layers;photocraft-cli convert output/restored.pcraft output/restored.png export and inspect the final render. After an adjustment layer is created, pixel strokes cannot be painted directly on the adjustment layer: the manual places local retouching before tonal adjustments; when reworking local areas, reselect the working pixel layer.
Parameters and sources
- For fixed-version observations of the parameters, see command evidence; for structured steps, see recipes.json. The evidence shows that the method does exist; it does not prove that any arbitrary photo has been successfully repaired.
- For creative workflow references and license records, see sources.json. The scenario text and examples are original adaptations and do not copy external scripts. Input assets must have usage rights for this task.
- The examples are low-intensity starting points; sampling points, damage contours, cropping, and dimensions must be determined by the image. Output a new project, the final render, and a before/after comparison at the same size; clearly list details that cannot be recovered and areas that are inferred.
Skill store scenario experience
When delivering repairs and inferences separately, retouching portraits while preserving identity features, or batch color grading after representative samples, readstore workflow adaptation, and use the corresponding Craft methods and actual result checks. Upstream skills are not runtime dependencies.
Mirror tasks use the flip method on the selected layer; see the layout manual for checking that the original image is preserved; canvas flipping changes all layers and cannot be used to implement "flip only the copy."
When performing sampling-based retouching, dust removal, shine removal, or stray-hair cleanup, first readrepair check methods, and confirm the donor, working layer, and protected areas; accept based on the actual local result after saving, and do not replace real-photo judgment with test-sample scoring.
In the transparent-edge and background-removal recipe,$ref:originalLayeris a manual notation: first use inspect to obtain the real original layer ID and replace it with an integer. After duplicating the working copy, keep the original layer but hide it, and verify the actual Alpha of the PNG; a visible original image will be composited back onto the background or aggravate semi-transparent edges.
Backlight recovery uses the verified editable curve adaptation in this skill; it cannot be inferred from the same-named shadowsHighlights method alone that it implements Photoshop's shadow/highlight recovery behavior.
main export preset
When reusing the web JPEG delivery size, quality, and metadata strategy in the main dev candidate, readmain preset to actual JPEG delivery. It also provides entry points for 9 new methods and 17 contract changes. Preset get only returns parameters; actual export must be explicitly mapped according to the current schema; do not pass unsupported size fields to doc_export.