image
Raster or vector image with fitting, masks, filters, and overlays.
See also
This is the import-time schema. To override an existing image layer's properties at generation time — including AI features like Remove Background, Auto Focus, and Text to Image — see Element Properties → Image.
| Property | Type | Notes |
|---|---|---|
src | string | Filename, public https:// URL, or data URI. Optional — omit it to create an empty image slot, filled at generation time. See Create Import → src resolution. |
fitting_type | enum | cover | fill. See Element Properties → Image → Fitting Type for what each does, with previews. |
alignment | enum | See Alignment below. |
position_offset_x | float | See Position Offset & Zoom below. |
position_offset_y | float | See Position Offset & Zoom below. |
zoom | float | See Position Offset & Zoom below. |
opacity | int | 0–100. |
rotation | float | 0–360 inclusive. |
mask_name | enum | circle | rounded_corners | blob | squircle | pentagon | hexagon | parallelogram | window. See Element Properties → Image → Mask for a preview of each — window is listed there but has no preview image yet. |
mask_properties | object | Required when mask_name = "rounded_corners". { radius } — one number for all four corners, or { tl, tr, bl, br }; same per-corner ranges as the radius property in Shared Object Shapes. radius is the only field; anything else is unknown_field. |
filter_name | enum | grayscale | duotone. See Element Properties → Image → Filter for a preview of grayscale and most duotone presets. |
filter_properties | object | Required when filter_name = "duotone" — { name }, one of the named presets: blue_green, blue_orange, deep_green_light_green, BrightRed_light_yellow, brown_pale_green, brown_beige, deep_blue_green, deep_blue_red, deep_purple_orange, deep_purple_beige, deep_purple_pale_green, deep_blue_pale_green. A name outside this list is rejected with unknown_enum_value. Note: blue_green has no preview on the linked page yet — don't confuse it with the pictured deep_blue_green. |
overlay | object | A two-colour overlay — { direction, color_1, color_2 }. All three are required when the object is present, so half an overlay cannot be expressed. direction is horizontal | vertical | diagonal; the two colours are hex/CMYK only — no gradient (see Color & Length Conventions). Dropped with a warning on printer. |
radius | object | int | { tl, tr, bl, br } corner radii in px, or one number for all four. Canonicalized on storage to mask_name: "rounded_corners" + mask_properties.radius, so that is the shape an as-import export returns. See Shared Object Shapes for ranges. |
shadow | object | { blur, offset_x, offset_y, color }. See Shared Object Shapes for ranges. |
Alignment
alignment is one of the 9 grid positions: top left, top center, top right, middle left, middle center, middle right, bottom left, bottom center, bottom right — or custom to place the artwork by hand, which requires the two offsets below. A single token is also accepted and names one axis, the other taking its middle value: center is middle center, top is top center, left is middle left. Exports always return the two-token form.
Position Offset & Zoom
position_offset_x: horizontal reframe offset as a fraction of the layer box, −0.5 to 0.5. Only valid withalignment: "custom"(conditional_dependency_missingotherwise); defaults to0. Being a fraction, it is identical on print — never a physical length.position_offset_y: vertical reframe offset. Same rules asposition_offset_x.zoom: zooms the artwork inside its box,1–20. Defaults to1. Independent ofalignment— a grid-aligned image can be zoomed too. A multiplier, not a length, so it is identical on print.
Not image properties
crop, image_coords, blur and stroke are not accepted on image — each is unknown_field. Use layout + fitting_type + alignment for framing, and a mask for shaped clipping.
