Editing cluster · 7 jobs · 13 agent tools

    Trim & Cleanup — Every Versely Housekeeping Job

    Do these before you pay to render anything.

    Every job in this cluster makes a file shorter, simpler or lighter, which is exactly why the whole group belongs at the front of the pipeline. Upscaling a clip and then cutting thirty seconds out of it means you paid to sharpen footage you deleted; captioning before a trim means burning in text you are about to remove.

    Two of these pages are background removal — one for video and one for stills — and they are not the same job. Video removal has to survive motion blur, hair and a moving edge across every frame; a photo has one edge and one shadow to get right.

    The order to run these in

    These jobs are cheap in the right sequence and expensive in the wrong one. This is the order that avoids re-rendering work you have already paid for.

    1. 1. Cut the dead air first

      Front-load the trimming. Everything downstream costs time or credits per second, so the cheapest second is the one you removed before you started.

      How to do it →
    2. 2. Remove the middle you don't need

      Interior cuts are a different job from trimming the ends, and doing them now keeps the timing decisions in one place.

      How to do it →
    3. 3. Re-time what's left

      Speed ramps change perceived pacing more than any transition will. Set them before captions, since timing moves the text.

      How to do it →
    4. 4. Strip backgrounds only if you're compositing

      Background removal is for layering — picture-in-picture, overlays, product cutouts. If nothing is going behind the subject, skip it.

      How to do it →

    Every job in this cluster

    Each one names the real Versely agent tool that performs it, so you can see which jobs share a mechanism and which are genuinely different work.

    The agent tools behind them

    13 tools from Versely's real agent surface do all 7 of these jobs. Ask for the outcome in plain English and the agent picks the tool.

    cut_video

    Cut a single video down to one or more time ranges and concatenate the kept ranges into a single output video. Covers three intents in one tool: (1) TRIM — pass one segment to keep just [start, end). (2) CUT OUT a middle section — pass two segments [0, badStart] and [badEnd, end] to skip the unwanted middle. (3) SPLIT-AND-KEEP arbitrary ranges — pass N segments and they're stitched in the given order. Segments are kept ranges (NOT delete ranges), all in seconds from the start of the source video. The output is uploaded to cloud storage and the URL is returned. If you want to merge across MULTIPLE source videos (with optional per-clip trims), use compose_video_with_overlay instead — its base_media[] accepts start_sec/end_sec per video item.

    remove_video_background

    Remove a PURE-BLACK background from a video using FFmpeg colorkey. The video's background must be solid pure-black (or near-black) — typically AI-generated talking-head clips, after-effects renders with a black matte, or footage shot against a black backdrop. Does NOT work for: green-screen, blue-screen, white, or any non-black background — that needs a different filter we don't currently support. Does NOT work for photographic / room / outdoor backgrounds either — that needs a segmentation model we don't expose. ASK THE USER FIRST whether they want the background removed, and CONFIRM the background is black. If they say it's a different color or a real scene, tell them this tool only works for black and we don't support other backgrounds yet.

    remove_background

    Remove the background from an image or video. Use when the user wants a transparent background, green screen effect, or to isolate a subject. The listed models are VIDEO background-removal models — pass the clip as video_url. For IMAGE background removal, use the image-editing models via generate_image_from_image instead.

    generate_image_from_image

    Edit or transform an existing image. Use when the user has attached an image and wants to edit, modify, transform, or create variations of it. Requires an attached image URL from [Attached image: URL] in the message.

    edit_video

    Agent-driven EDL render via the Versely editor pipeline (POST /features/editor-render). Stitch, trim, speed-change, caption, overlay, and mix user media (workspace/generation HTTPS URLs) into ONE final video. Prefer this over chaining cut_video + attach_audio + add_*_captions when the user wants a multi-clip assembly in a single step. Billing: preview:true is free 480p (per-user cooldown); final export (preview:false, default) charges the normal single editor_export price. Prefer preview:true while the user is iterating; only final-render after confirmation. Clips must be HTTPS URLs (file:// and other schemes rejected). Returns { video_url, credits_charged, preview_notes } or a 402-style insufficient-credits error.

    analyze_video

    Deep, on-demand video understanding: extract sample frames (uploaded as reusable JPEG URLs), describe overall style/format, per-timestamp beats, on-screen text, and optionally a speech transcript. Works with ANY chat provider (provider-agnostic). Use for thorough analysis or when you need frames as reference images for generate_image_from_image / workflow assets / recreation — deeper than the automatic attachment preprocessing that only injects a short text note. Prefer this over guessing from a video URL alone.

    review_generation

    Self-QC a generated image or video against its original prompt via vision. Returns {matches_prompt, issues, severity: ok|minor|broken, suggested_fix}. OFFER after a workflow run / generation completes or when the user seems unhappy — never auto-run on every generation (costs credits/latency). Especially apt after long jobs (workflow runs, movies).

    analyze_content

    Analyze a previously generated image or video for quality, composition, and suggest improvements. Use when the user asks for feedback on a generation or wants to iterate. Pass the generation ID or 'latest'.

    replace_slideshow_slide

    Replace a single slide in a slideshow with a freshly generated image. Use when the user asks to regenerate, swap, or replace a specific slide (e.g. 'replace slide 2 with a sunset', 'regenerate the 4th image', 'redo slide 1'). Charges credits for the new image (refunded on failure). Drops any stale text-overlay version of that slide. If you don't have the image_id, call get_slideshow first.

    remove_slideshow_slide

    Remove a single slide from an existing slideshow. Use when the user asks to delete, drop, or get rid of a specific slide (e.g. 'remove slide 3', 'delete the last image'). Does NOT refund credits — the image was already generated. If you don't have the image_id, call get_slideshow first to look it up by order_index (slide N corresponds to the Nth image after sorting by order_index ascending).

    reorder_slideshow_slides

    Change the order of slides in a slideshow. Use when the user asks to move, swap positions, or rearrange slides (e.g. 'move slide 5 to the front', 'swap slides 2 and 3', 'reverse the order'). Pass the COMPLETE new ordering as { image_id, order_index } pairs — include every slide, not just the ones being moved. Call get_slideshow first to obtain image_ids and current order.

    get_slideshow

    MANDATORY TOOL for displaying a slideshow to the user. Calling this is the ONLY way the slideshow-card UI (with thumbnails) appears in the chat — describing the slideshow in text does NOT show the visual card. You MUST call this tool (not just describe in text) whenever the user asks to see, show, open, view, preview, display, pull up, or edit an existing slideshow — including phrases like 'show me my slideshow', 'show it to me', 'let me see it', 'pull up the last one', 'what's in my slideshow', 'the one I just made', 'add text to slide 2', 'edit the overlays'. Do NOT answer these requests from memory or conversation history. ALWAYS fetch fresh state with this tool. If slideshow_id is omitted, returns the user's most recently created slideshow. Also call this before add_text_overlay, convert_slideshow_to_video, remove_slideshow_slide, replace_slideshow_slide, or reorder_slideshow_slides when the user references an existing slideshow without giving you an id.

    add_images_to_slideshow

    Append more images to an existing slideshow using URLs the user has provided. Use when the user says things like 'add this photo to the slideshow', 'put these two more pics at the end', 'tack this image onto the slideshow you just made'. New slides are appended in array order at the next free order_index. If you don't have the slideshow_id, call get_slideshow first.

    What these jobs cost

    Every job here bills in credits. These are the scenarios whose formulas govern the arithmetic.

    Questions about this cluster

    Does trimming re-encode the whole video?+

    Assume it does. That is not a problem when trimming is the first thing you do, and it is the reason this cluster belongs at the front — every later job renders against the trimmed file rather than the original.

    When is background removal actually worth it?+

    Only when something is going behind the subject: a picture-in-picture layer, an overlay on product footage, a cutout for a thumbnail. On its own it produces a subject floating on nothing, which is rarely what anyone wanted.

    Does changing playback speed affect the audio?+

    Speed changes stretch or compress the audio along with the picture, so voice at high speed reads as a chipmunk unless the track is handled separately. For narrated content, re-time the picture and lay the voice over it rather than speeding both.

    Make the material first

    The rest of the pipeline

    Ask the agent for it in plain English

    The all-in-one AI studio for creators. 60+ models for video, image, voice, music and lipsync in a single app.