pixlpal.com
PixlPal — AI-assisted photo editing. The AI never generates the photo, it only applies filters.
First seen 2026-09-07 · Last seen 2026-09-14 · Source: webmcp.com
Answer 2 · Act 7 · Transact 0 · Score: Not yet scored
Tool inspector
set_frame
Reframe the photo non-destructively: rotate in 90-degree steps and/or crop. The crop only trims the frame — it cannot remove an object from the middle of the picture; if a subject the user wants gone is not near an edge, say so instead of cropping. Rotation is absolute and clockwise; an existing crop follows the rotation. The crop rectangle is normalized (0..1 fractions of the rotated frame). Three ways to crop, use exactly one per call: (1) `subjectMaskId` from a prior segment call, plus optional `aspect` and `padding` — fits the crop around that subject; this is the right tool for 'crop to portrait, centered on the person' (segment first, then set_frame). (2) `aspect` alone — largest centered crop with that shape, e.g. '4:5' portrait, '1:1' square, '16:9' wide, '9:16' story, 'original'. (3) explicit `crop` rect when you know exact fractions from looking at the preview (the preview you see is always the full uncropped frame; the crop shows there as a brighter window). Pass `crop: null` to clear the crop, `rotate: 0` to clear rotation.
Input schema
| Property | Type | Required | Description |
|---|---|---|---|
rotate |
integer | no | Absolute clockwise rotation in degrees. |
crop |
object,null | no | Explicit normalized crop rect in the rotated frame, or null to remove the crop. |
aspect |
string | no | Crop shape as "W:H" (e.g. "4:5", "3:2", "16:9", "9:16"), "square", or "original". |
subjectMaskId |
string | no | Mask id from segment/invert_mask; the crop is fitted around this subject. |
padding |
number | no | Margin around the subject as a fraction of its size. Default 0.15; use more for loose framing. |
Raw JSON schema
{
"type": "object",
"properties": {
"rotate": {
"type": "integer",
"enum": [
0,
90,
180,
270
],
"description": "Absolute clockwise rotation in degrees."
},
"crop": {
"type": [
"object",
"null"
],
"description": "Explicit normalized crop rect in the rotated frame, or null to remove the crop.",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"width": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1
},
"height": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y",
"width",
"height"
],
"additionalProperties": false
},
"aspect": {
"type": "string",
"description": "Crop shape as \"W:H\" (e.g. \"4:5\", \"3:2\", \"16:9\", \"9:16\"), \"square\", or \"original\"."
},
"subjectMaskId": {
"type": "string",
"description": "Mask id from segment/invert_mask; the crop is fitted around this subject."
},
"padding": {
"type": "number",
"minimum": 0,
"maximum": 1,
"description": "Margin around the subject as a fraction of its size. Default 0.15; use more for loose framing."
}
},
"additionalProperties": false
}
Similar websites
tracinginsights.com
Analyze Formula 1 racing data with interactive charts for lap times, live telemetry, timing data and race performance. Explore and Compare drivers across multip…
fiveminutebrief.ai
panoptik-studio.vercel.app
Browser-native demo video editor where humans and AI agents co-edit on the same canvas via WebMCP. No uploads, no server.
webroom.openai.chatgpt.site
A private, browser-based photo editor with precise manual controls and agent-ready WebMCP tools.