Skip to main
maudeMDCC/00
Design commands

/design:photo

Edit a photo in the active canvas headlessly — parametric adjustments (brightness/contrast/saturation/exposure/hue/sepia/grayscale/invert), duotone, grain, pattern overlays, preset masks, and magic background removal — via the non-destructive PhotoEdit sidecar. Every edit is scriptable (no slider-clicking): parametric edits go straight to the /_api/photo-edit route; background removal runs client-side ML through a headless harness.

PropertyValue
Command/design:photo
Categorydaily (daily)
Argument hint--asset <assets/<sha8>.<ext> | <sha8>> [--remove-bg] [--brightness N] [--contrast N] [--saturation N] [--exposure N] [--hue N] [--sepia N] [--grayscale N] [--invert N] [--duotone \"#aabbcc,#ddeeff[,intensity]\"] [--grain \"amt[,size]\"] [--pattern \"type[,scale,opacity,blend]\"] [--mask \"preset[,strength]\"] [--replace|--reset]
Sourceplugins/design/commands/photo.md

Description

Edit a photo in the active canvas headlessly — parametric adjustments (brightness/contrast/saturation/exposure/hue/sepia/grayscale/invert), duotone, grain, pattern overlays, preset masks, and magic background removal — via the non-destructive PhotoEdit sidecar. Every edit is scriptable (no slider-clicking): parametric edits go straight to the /_api/photo-edit route; background removal runs client-side ML through a headless harness.

Invocation

snippet
/design:photo --asset <assets/<sha8>.<ext> | <sha8>> [--remove-bg] [--brightness N] [--contrast N] [--saturation N] [--exposure N] [--hue N] [--sepia N] [--grayscale N] [--invert N] [--duotone \"#aabbcc,#ddeeff[,intensity]\"] [--grain \"amt[,size]\"] [--pattern \"type[,scale,opacity,blend]\"] [--mask \"preset[,strength]\"] [--replace|--reset]

Summary

Applies a non-destructive edit to a photo already in the active canvas — an &lt;img> authored in an artboard, or an ImageStroke dropped/pasted into the annotation layer. Every edit is stored as a PhotoEdit sidecar (&lt;designRoot>/assets/&lt;sha8>.photo.json) that the canvas-lib &lt;PhotoLayer> WebGL compositor rende

Source of truth

On this page