Transformation Builder Skill
Understand how the tool works, write a precise query, order multi-step chains correctly, then call transformation_builder.
How this tool actually works (read this first)
transformation_builder is not a capability picker. Its only inputs are:
transformation_builder(query, src?, previous_errors?)
query — a natural-language description of the desired transformation.
src — optional ImageKit-hosted source URL (defaults to a sample image).
previous_errors — pass the error text from a prior failed call so the tool can self-correct.
Internally the tool: (1) searches ImageKit docs using your query, (2) an LLM turns it into a validated list of transformation steps, (3) the SDK builds the final URL. There is no capability argument — the parameter names below are vocabulary to put into your query, not API fields you set directly. Because step 1 is a doc search over your query text, using the correct ImageKit parameter names and values in the query materially improves the result. Using wrong/invented names sends the search off course.
So your job is: translate the user's vague request into a precise query that references real parameters and values from the reference section below.
When to use (triggers this skill)
- Resize, crop, or focus on a region
- Filters, effects, overlays (image/text/video), watermarks
- Multi-step transformation chains
- Background removal, replacement, or generative fill
- Any AI-powered image editing (change objects/colors/styles, upscale, retouch, drop shadow, variations)
Calling transformation_builder
query: the precise, rewritten description (see Query Crafting). Never pass the user's vague words through unchanged.
src: the ImageKit delivery URL to transform, if the user gave one. Must be ImageKit-hosted.
- Frame a multi-step request as one query describing the steps in order:
- User: "1) Resize to 800x600 2) Crop to the face"
- Query: "Resize to width 800 and height 600, then crop with focus on the face"
Query Crafting
Rule: rewrite the vague request into a description that names real parameters and values. Use exact parameter names/values when you know them; fall back to plain English only when unsure.
| User says |
Weak query |
Good query |
| "Make the red balls green" |
"make red balls green" |
"Apply an AI edit (ai_edit) with prompt: change the red balls to green" |
| "Clean it up and put it on white" |
"clean up, white background" |
"Apply ai_retouch, then ai_remove_background with white background color" |
| "Make it look like a painting" |
"painting style" |
"Apply ai_edit with prompt: oil-painting style with visible brush strokes" |
| "Crop around the face" |
"crop face" |
"Resize with focus=face to crop around the detected face" |
| "Text 'Hello' at the bottom" |
"add hello text" |
"Add a text overlay with text 'Hello', positioned at the bottom (focus=bottom)" |
| "Fit a mobile banner" |
"mobile banner" |
"Resize to width=640 with aspect_ratio=2-1" |
| "300px wide with a red border" |
"resize and border" |
"Resize to width=300, then add a border of width 5 and color red" |
| "Higher resolution, it's blurry" |
"fix quality" |
"Apply ai_upscale, then ai_retouch" |
| "Remove bg and add a shadow" |
"remove bg shadow" |
"Apply ai_remove_background, then ai_drop_shadow" |
| "Make it wider without stretching" |
"make wider" |
"Extend the canvas horizontally using a padded crop (crop_mode=pad_extract) with background=genfill so AI fills the new area" |
Intent → real parameter/vocabulary
Use this to translate intent into the correct terms to put in the query. These are the actual parameter names the tool validates against.
| User intent |
Use this vocabulary |
Notes |
| Modify specific objects/regions ("enlarge the cat", "add sunglasses", "make it a painting") |
ai_edit (prompt-based) |
AI content edit driven by a text prompt |
| Replace the whole background scene ("put them on a beach") |
ai_change_background (prompt-based) |
Keeps the subject, generates a new scene. Not for plain removal or color changes |
| Remove background → transparent |
ai_remove_background |
ImageKit-native. For the external remove.bg engine use ai_remove_background_external |
| Extend/outpaint the canvas ("add more sky", "make it panoramic") |
padded crop + background=genfill |
Generative fill lives in the background param, not a standalone AI field. Takes no prompt |
| Increase resolution / fix low-res |
ai_upscale |
Boolean; no params |
| Clean up / remove blemishes |
ai_retouch |
Boolean; no params |
| Realistic shadow under a cut-out subject |
ai_drop_shadow |
Transparent images only. Optional azimuth, elevation, strength |
| Different version / remix |
ai_variation |
Boolean; preserves structure |
| Resize / aspect ratio / crop |
width, height, aspect_ratio, crop, crop_mode |
See Resize & Crop table |
| Smart crop to face/object |
focus (auto, face, or an object name) + optional zoom |
Object names are COCO classes (person, car, dog, …) |
| Swap one color across all pixels ("all red → blue") |
color_replace |
Global pixel color swap with tolerance |
| Filters/adjustments (B&W, blur, sharpen, rotate, border, round corners) |
grayscale, blur, sharpen, rotation, border, radius, … |
See Effects table |
| Overlay a logo/watermark image |
text/image overlay |
Single overlay concept, typed (see Overlays) |
| Write text on the image |
text overlay with text |
See Overlays |
There is no "generate an image from scratch" step in this tool — it always transforms an existing src. To generate images from scratch, use text-to-image generation in the ImageKit DAM (Digital Asset Manager), which is a separate feature from transformation_builder.
Key distinction: ai_edit vs color_replace vs ai_change_background
- Changing specific objects/regions ("make the balls bigger", "turn the car red") →
ai_edit
- Swapping one color globally across all pixels ("replace all red with blue") →
color_replace
- Replacing the entire background scene ("put them on a beach") →
ai_change_background
Ordering multi-step chains
When a request spans multiple operations, chain them in one query in this order:
- Upscale / retouch (quality first)
- AI content edits (
ai_edit)
- Background removal / replacement (
ai_remove_background, ai_change_background)
- Resize / crop (final dimensions)
- Effects / overlays (finishing touches)
Critical: background removal goes AFTER upscale/retouch, never before.
Correct: ai_upscale → ai_remove_background. Wrong: ai_remove_background → ai_upscale.
Example — "clean up this photo, remove the background, make it 500x500":
→ Query: "Apply ai_retouch, then ai_remove_background, then resize to width=500 and height=500".
Background removal: clarify intent
- If the user says "remove background" ambiguously, ask whether they want:
- Real-time URL —
ai_remove_background in a delivery URL (nothing stored).
- Remove and save — apply the background-removal extension and upload the result as a new file version (a media-library operation, not this tool).
- Only use
ai_change_background when they want a new background scene. For a plain transparent cut-out or a solid color, use ai_remove_background (optionally followed by background=a color).
Handling failures
- 400 / Bad Request or validation error: refine the query and retry, passing the error text as
previous_errors. Invoke the search-docs skill and call search_docs to confirm supported parameters/limits.
- 3+ failures: use
search-docs to find supported methods and constraints before retrying.
- Unsupported: confirm via docs and offer the closest supported alternative.
Gotchas
- Source URL must be ImageKit-hosted.
- Background removal order matters (upscale/retouch first).
- Generative fill =
background=genfill on a padded/enlarged canvas; it takes no prompt. ai_change_background is the prompt-driven one.
ai_drop_shadow needs a transparent subject (run ai_remove_background first).
- Negative offsets/rotation are written with an
N prefix in the final URL (the tool handles this) — just describe the value normally.
Parameter reference
These are the real names/values the tool validates. Put them into your query.
Resize & crop
| Parameter |
What it does |
width |
Output width. Integer px, decimal 0–1 (fraction of original), or an arithmetic expression. |
height |
Output height. Same formats as width. |
aspect_ratio |
Aspect ratio (e.g. 16-9). Use with width or height; ignored if both are set. |
crop |
Resize strategy: force, at_max, at_max_enlarge, at_least, maintain_ratio, maintain_ratio_no_enlarge. |
crop_mode |
Pad/extract behavior: pad_resize, extract, pad_extract, pad_resize_no_enlarge, pad_extract_no_shrink. |
focus |
Focal point: auto, face, custom, a directional position (center, top, left, bottom_right, …), or an object name (COCO class such as person, car, dog). |
zoom |
Zoom factor around the focused area (with face/object focus). |
x, y, x_center, y_center |
Region coordinates for extract crops (top-left vs center-based). |
dpr |
Device pixel ratio (number or auto) for high-density displays. |
background |
Fill for padded areas — see Background modes. |
Background modes (background)
| Value |
Meaning |
| a color |
Hex (FFFFFF) or CSS name (white, red, …). |
blurred |
Blurred version of the image (optionally blurred_<intensity>_<brightness>). |
dominant |
The image's dominant color. |
genfill |
AI generative fill of the padded area (outpainting). No prompt. |
gradient |
Gradient from dominant colors (gradient_dominant, optional palette size 2 or 4). |
AI transforms
| Parameter |
What it does |
ai_remove_background |
ImageKit-native background removal → transparent. |
ai_remove_background_external |
Background removal via external provider (remove.bg). |
ai_edit |
Prompt-based AI edit of image content. |
ai_change_background |
Prompt-based replacement of the background scene (subject preserved). |
ai_drop_shadow |
AI drop shadow (transparent images only). Optional azimuth (0–360), elevation (0–90), strength (0–100). |
ai_upscale |
AI super-resolution upscaling. No params. |
ai_retouch |
AI quality enhancement / blemish removal. No params. |
ai_variation |
Generate a structural variation of the image. No params. |
Effects & enhancement
| Parameter |
What it does |
blur |
Gaussian blur, 0–100. |
sharpen |
Sharpen, 0–100. |
unsharp_mask |
Advanced sharpening (radius, sigma, amount, threshold). |
grayscale |
Convert to grayscale. |
contrast_stretch |
Auto-enhance contrast. |
shadow |
Drop shadow under non-transparent pixels (needs transparency). Optional blur, saturation, x_offset, y_offset. |
gradient |
Linear gradient overlay (linear_direction, from_color, to_color, stop_point). |
color_replace |
Replace a color and similar shades: to_color, tolerance (0–100), optional from_color. |
colorize |
Tint the image: color, intensity (0–100). |
border |
Border of border_width and color. |
trim |
Trim solid edges around the subject. |
rotation |
Rotate by degrees (or auto from EXIF). Negative = counter-clockwise. |
flip |
h, v, h_v, or v_h. |
radius |
Round corners (integer, max for a circle, or per-corner 20_40_80_160). |
opacity |
Layer opacity, 0–100. |
distort |
Perspective warp (4 coordinate pairs) or arc distortion (degrees). |
Overlays (overlay)
One overlay concept with a typed shape. Each overlay supports position (x, y, x_center, y_center, focus, anchor_point), timing for video (start, end, duration), layer_mode (multiply, cutter, cutout, displace), and a nested transformation list.
| Overlay type |
Key fields |
| Text |
text, plus styling: font_size, font_family, font_color, inner_alignment, padding, alpha (1–9), typography, line_height, radius, rotation, flip, background. |
| Image |
input (media-library path of the overlay image); nested transformations allowed. |
| Video |
input (video path); nested transformations + timing. |
| Subtitle |
input (subtitle file); styling: font_size, font_family, color, typography, font_outline, font_shadow, background. |
| Solid color |
color, plus width, height, radius, alpha, background, gradient. |
Video transforms
| Parameter |
What it does |
start_offset, end_offset, duration |
Trim the clip (seconds or arithmetic expressions). |
audio_codec |
aac, opus, or none (to mute/strip). |
video_codec |
h264, vp9, av1, or none. |
streaming_resolutions |
Adaptive-bitrate ladder, e.g. [360, 720, 1080]. |
rotation, radius, border, flip |
Same as image effects, applied to the video frame. |
Output & delivery
| Parameter |
What it does |
format |
auto, webp, avif, jpg, png, gif, mp4, webm, orig, … |
quality |
0–100. |
progressive |
Progressive JPEG. |
lossless |
Lossless WebP/PNG. |
named |
Apply a saved named transformation. |
default_image |
Fallback image if the source is missing. |
Conditionals
Transformations can be conditional on image properties (e.g. width/height/aspect ratio) — describe the condition in plain language ("if width > 1000, then …") and the tool builds the if/if-else/if-end chain.
1---2name: transformation-builder3description: Guidance for building ImageKit image/video transformation URLs with the transformation_builder tool — how the tool works, how to write a good query, how to order multi-step chains, and a reference of every supported parameter. Use before calling transformation_builder. Covers resize/crop/focus, AI edits (change objects, colors, styles), background removal/replacement, generative fill, upscaling, retouching, drop shadows, variations, effects (blur/sharpen/rotate/border/color-replace/gradient), image/text/video overlays, and video transforms.4---56# Transformation Builder Skill78Understand how the tool works, write a precise query, order multi-step chains correctly, then call `transformation_builder`.910## How this tool actually works (read this first)1112`transformation_builder` is **not** a capability picker. Its only inputs are:1314```15transformation_builder(query, src?, previous_errors?)16```1718- `query` — a **natural-language** description of the desired transformation.19- `src` — optional ImageKit-hosted source URL (defaults to a sample image).20- `previous_errors` — pass the error text from a prior failed call so the tool can self-correct.2122Internally the tool: (1) searches ImageKit docs using your `query`, (2) an LLM turns it into a validated list of transformation steps, (3) the SDK builds the final URL. There is **no `capability` argument** — the parameter names below are **vocabulary to put into your query**, not API fields you set directly. Because step 1 is a doc search over your query text, **using the correct ImageKit parameter names and values in the query materially improves the result.** Using wrong/invented names sends the search off course.2324So your job is: translate the user's vague request into a precise query that references **real** parameters and values from the reference section below.2526## When to use (triggers this skill)2728- Resize, crop, or focus on a region29- Filters, effects, overlays (image/text/video), watermarks30- Multi-step transformation chains31- Background removal, replacement, or generative fill32- Any AI-powered image editing (change objects/colors/styles, upscale, retouch, drop shadow, variations)3334## Calling `transformation_builder`3536- `query`: the precise, rewritten description (see Query Crafting). **Never pass the user's vague words through unchanged.**37- `src`: the ImageKit delivery URL to transform, if the user gave one. Must be ImageKit-hosted.38- Frame a multi-step request as **one query** describing the steps in order:39 - User: "1) Resize to 800x600 2) Crop to the face"40 - Query: "Resize to width 800 and height 600, then crop with focus on the face"4142## Query Crafting4344**Rule: rewrite the vague request into a description that names real parameters and values. Use exact parameter names/values when you know them; fall back to plain English only when unsure.**4546| User says | Weak query | Good query |47|---|---|---|48| "Make the red balls green" | "make red balls green" | "Apply an AI edit (`ai_edit`) with prompt: change the red balls to green" |49| "Clean it up and put it on white" | "clean up, white background" | "Apply `ai_retouch`, then `ai_remove_background` with white background color" |50| "Make it look like a painting" | "painting style" | "Apply `ai_edit` with prompt: oil-painting style with visible brush strokes" |51| "Crop around the face" | "crop face" | "Resize with `focus`=`face` to crop around the detected face" |52| "Text 'Hello' at the bottom" | "add hello text" | "Add a text overlay with text 'Hello', positioned at the bottom (`focus`=`bottom`)" |53| "Fit a mobile banner" | "mobile banner" | "Resize to `width`=640 with `aspect_ratio`=2-1" |54| "300px wide with a red border" | "resize and border" | "Resize to `width`=300, then add a `border` of width 5 and color red" |55| "Higher resolution, it's blurry" | "fix quality" | "Apply `ai_upscale`, then `ai_retouch`" |56| "Remove bg and add a shadow" | "remove bg shadow" | "Apply `ai_remove_background`, then `ai_drop_shadow`" |57| "Make it wider without stretching" | "make wider" | "Extend the canvas horizontally using a padded crop (`crop_mode`=`pad_extract`) with `background`=`genfill` so AI fills the new area" |5859### Intent → real parameter/vocabulary6061Use this to translate intent into the correct terms to put in the query. These are the **actual** parameter names the tool validates against.6263| User intent | Use this vocabulary | Notes |64|---|---|---|65| Modify specific objects/regions ("enlarge the cat", "add sunglasses", "make it a painting") | `ai_edit` (prompt-based) | AI content edit driven by a text prompt |66| Replace the whole background scene ("put them on a beach") | `ai_change_background` (prompt-based) | Keeps the subject, generates a new scene. Not for plain removal or color changes |67| Remove background → transparent | `ai_remove_background` | ImageKit-native. For the external remove.bg engine use `ai_remove_background_external` |68| Extend/outpaint the canvas ("add more sky", "make it panoramic") | padded crop + `background`=`genfill` | Generative fill lives in the **background** param, not a standalone AI field. Takes **no prompt** |69| Increase resolution / fix low-res | `ai_upscale` | Boolean; no params |70| Clean up / remove blemishes | `ai_retouch` | Boolean; no params |71| Realistic shadow under a cut-out subject | `ai_drop_shadow` | Transparent images only. Optional `azimuth`, `elevation`, `strength` |72| Different version / remix | `ai_variation` | Boolean; preserves structure |73| Resize / aspect ratio / crop | `width`, `height`, `aspect_ratio`, `crop`, `crop_mode` | See Resize & Crop table |74| Smart crop to face/object | `focus` (`auto`, `face`, or an object name) + optional `zoom` | Object names are COCO classes (`person`, `car`, `dog`, …) |75| Swap one color across all pixels ("all red → blue") | `color_replace` | Global pixel color swap with `tolerance` |76| Filters/adjustments (B&W, blur, sharpen, rotate, border, round corners) | `grayscale`, `blur`, `sharpen`, `rotation`, `border`, `radius`, … | See Effects table |77| Overlay a logo/watermark image | text/image **overlay** | Single `overlay` concept, typed (see Overlays) |78| Write text on the image | text **overlay** with `text` | See Overlays |7980> There is **no** "generate an image from scratch" step in this tool — it always transforms an existing `src`. To generate images from scratch, use text-to-image generation in the ImageKit DAM (Digital Asset Manager), which is a separate feature from `transformation_builder`.8182### Key distinction: `ai_edit` vs `color_replace` vs `ai_change_background`83841. Changing specific objects/regions ("make the balls bigger", "turn the car red") → **`ai_edit`**852. Swapping one color globally across all pixels ("replace all red with blue") → **`color_replace`**863. Replacing the entire background scene ("put them on a beach") → **`ai_change_background`**8788## Ordering multi-step chains8990When a request spans multiple operations, chain them in **one query in this order**:91921. **Upscale / retouch** (quality first)932. **AI content edits** (`ai_edit`)943. **Background removal / replacement** (`ai_remove_background`, `ai_change_background`)954. **Resize / crop** (final dimensions)965. **Effects / overlays** (finishing touches)9798**Critical: background removal goes AFTER upscale/retouch, never before.**99Correct: `ai_upscale → ai_remove_background`. Wrong: `ai_remove_background → ai_upscale`.100101Example — "clean up this photo, remove the background, make it 500x500":102→ Query: "Apply `ai_retouch`, then `ai_remove_background`, then resize to `width`=500 and `height`=500".103104## Background removal: clarify intent105106- If the user says "remove background" ambiguously, ask whether they want:107 1. **Real-time URL** — `ai_remove_background` in a delivery URL (nothing stored).108 2. **Remove and save** — apply the background-removal extension and upload the result as a new file version (a media-library operation, not this tool).109- Only use `ai_change_background` when they want a **new** background scene. For a plain transparent cut-out or a solid color, use `ai_remove_background` (optionally followed by `background`=a color).110111## Handling failures1121131. **400 / Bad Request or validation error**: refine the query and retry, passing the error text as `previous_errors`. Invoke the `search-docs` skill and call `search_docs` to confirm supported parameters/limits.1142. **3+ failures**: use `search-docs` to find supported methods and constraints before retrying.1153. **Unsupported**: confirm via docs and offer the closest supported alternative.116117## Gotchas118119- Source URL must be ImageKit-hosted.120- Background removal order matters (upscale/retouch first).121- Generative fill = `background`=`genfill` on a padded/enlarged canvas; it takes no prompt. `ai_change_background` is the prompt-driven one.122- `ai_drop_shadow` needs a transparent subject (run `ai_remove_background` first).123- Negative offsets/rotation are written with an `N` prefix in the final URL (the tool handles this) — just describe the value normally.124125---126127## Parameter reference128129These are the real names/values the tool validates. Put them into your query.130131### Resize & crop132133| Parameter | What it does |134|---|---|135| `width` | Output width. Integer px, decimal 0–1 (fraction of original), or an arithmetic expression. |136| `height` | Output height. Same formats as `width`. |137| `aspect_ratio` | Aspect ratio (e.g. `16-9`). Use with `width` **or** `height`; ignored if both are set. |138| `crop` | Resize strategy: `force`, `at_max`, `at_max_enlarge`, `at_least`, `maintain_ratio`, `maintain_ratio_no_enlarge`. |139| `crop_mode` | Pad/extract behavior: `pad_resize`, `extract`, `pad_extract`, `pad_resize_no_enlarge`, `pad_extract_no_shrink`. |140| `focus` | Focal point: `auto`, `face`, `custom`, a directional position (`center`, `top`, `left`, `bottom_right`, …), or an object name (COCO class such as `person`, `car`, `dog`). |141| `zoom` | Zoom factor around the focused area (with face/object focus). |142| `x`, `y`, `x_center`, `y_center` | Region coordinates for `extract` crops (top-left vs center-based). |143| `dpr` | Device pixel ratio (number or `auto`) for high-density displays. |144| `background` | Fill for padded areas — see Background modes. |145146### Background modes (`background`)147148| Value | Meaning |149|---|---|150| a color | Hex (`FFFFFF`) or CSS name (`white`, `red`, …). |151| `blurred` | Blurred version of the image (optionally `blurred_<intensity>_<brightness>`). |152| `dominant` | The image's dominant color. |153| `genfill` | AI generative fill of the padded area (outpainting). No prompt. |154| `gradient` | Gradient from dominant colors (`gradient_dominant`, optional palette size 2 or 4). |155156### AI transforms157158| Parameter | What it does |159|---|---|160| `ai_remove_background` | ImageKit-native background removal → transparent. |161| `ai_remove_background_external` | Background removal via external provider (remove.bg). |162| `ai_edit` | Prompt-based AI edit of image content. |163| `ai_change_background` | Prompt-based replacement of the background scene (subject preserved). |164| `ai_drop_shadow` | AI drop shadow (transparent images only). Optional `azimuth` (0–360), `elevation` (0–90), `strength` (0–100). |165| `ai_upscale` | AI super-resolution upscaling. No params. |166| `ai_retouch` | AI quality enhancement / blemish removal. No params. |167| `ai_variation` | Generate a structural variation of the image. No params. |168169### Effects & enhancement170171| Parameter | What it does |172|---|---|173| `blur` | Gaussian blur, 0–100. |174| `sharpen` | Sharpen, 0–100. |175| `unsharp_mask` | Advanced sharpening (`radius`, `sigma`, `amount`, `threshold`). |176| `grayscale` | Convert to grayscale. |177| `contrast_stretch` | Auto-enhance contrast. |178| `shadow` | Drop shadow under non-transparent pixels (needs transparency). Optional `blur`, `saturation`, `x_offset`, `y_offset`. |179| `gradient` | Linear gradient overlay (`linear_direction`, `from_color`, `to_color`, `stop_point`). |180| `color_replace` | Replace a color and similar shades: `to_color`, `tolerance` (0–100), optional `from_color`. |181| `colorize` | Tint the image: `color`, `intensity` (0–100). |182| `border` | Border of `border_width` and `color`. |183| `trim` | Trim solid edges around the subject. |184| `rotation` | Rotate by degrees (or `auto` from EXIF). Negative = counter-clockwise. |185| `flip` | `h`, `v`, `h_v`, or `v_h`. |186| `radius` | Round corners (integer, `max` for a circle, or per-corner `20_40_80_160`). |187| `opacity` | Layer opacity, 0–100. |188| `distort` | Perspective warp (4 coordinate pairs) or arc distortion (degrees). |189190### Overlays (`overlay`)191192One `overlay` concept with a typed shape. Each overlay supports `position` (`x`, `y`, `x_center`, `y_center`, `focus`, `anchor_point`), `timing` for video (`start`, `end`, `duration`), `layer_mode` (`multiply`, `cutter`, `cutout`, `displace`), and a nested `transformation` list.193194| Overlay type | Key fields |195|---|---|196| Text | `text`, plus styling: `font_size`, `font_family`, `font_color`, `inner_alignment`, `padding`, `alpha` (1–9), `typography`, `line_height`, `radius`, `rotation`, `flip`, `background`. |197| Image | `input` (media-library path of the overlay image); nested transformations allowed. |198| Video | `input` (video path); nested transformations + timing. |199| Subtitle | `input` (subtitle file); styling: `font_size`, `font_family`, `color`, `typography`, `font_outline`, `font_shadow`, `background`. |200| Solid color | `color`, plus `width`, `height`, `radius`, `alpha`, `background`, `gradient`. |201202### Video transforms203204| Parameter | What it does |205|---|---|206| `start_offset`, `end_offset`, `duration` | Trim the clip (seconds or arithmetic expressions). |207| `audio_codec` | `aac`, `opus`, or `none` (to mute/strip). |208| `video_codec` | `h264`, `vp9`, `av1`, or `none`. |209| `streaming_resolutions` | Adaptive-bitrate ladder, e.g. `[360, 720, 1080]`. |210| `rotation`, `radius`, `border`, `flip` | Same as image effects, applied to the video frame. |211212### Output & delivery213214| Parameter | What it does |215|---|---|216| `format` | `auto`, `webp`, `avif`, `jpg`, `png`, `gif`, `mp4`, `webm`, `orig`, … |217| `quality` | 0–100. |218| `progressive` | Progressive JPEG. |219| `lossless` | Lossless WebP/PNG. |220| `named` | Apply a saved named transformation. |221| `default_image` | Fallback image if the source is missing. |222223### Conditionals224225Transformations can be conditional on image properties (e.g. width/height/aspect ratio) — describe the condition in plain language ("if width > 1000, then …") and the tool builds the `if`/`if-else`/`if-end` chain.