Second StudioDocsBlog Request access

Put your character into any trend video

The request came in marked blocking: "We want to recreate a trending video with our stored character. The clips live on Instagram and TikTok. We need the original footage kept and only the lead swapped." Re-generating the scene from a reference, which is what text-to-video does, gave them a new soundstage, a new crowd, and everyone dressed like the character. Not the trend.

So here is the actual thing.

Swap, don't re-create

swap_character takes a source clip (4–30 seconds — fetch_video with start/end gets you one from a link) and a stored character or reference images, and returns the same clip with the subject replaced: same camera, same motion, same crowd, same timing. motion_transfer is the other direction: your character, driven by the source's choreography. Both run on the provider your account already bills through, with an estimate first. Link → trim → swap is the whole flow now.

Pick the image model

generate_image, create_character and the new edit_image take a model. The default is still GPT Image 2.5. Soul v2 is there for photoreal people from text; Grok Imagine 2 for fast composites with up to ten references; Qwen Image 3 for typography and instruction-following edits; Ideogram 4 for posters and legible text; Nano Banana Pro for scene edits. list_models says what each supports. We were asked about Midjourney: it has no API, and automating a personal account breaks its terms, so it is not on the list and won't be until there's a licensed route.

Your recipes, as skills

Teams were keeping long, precise image recipes outside the product — unretouched-portrait rules, a brand's duotone look, how to add someone to a group photo so the grain matches. create_skill stores those with the account, versioned, shared with the team, with optional reference images. Pass skill_ids on a request, or attach them to a brand kit so every image for that brand gets them. The studio's own craft still runs first; yours is applied on top.

Edit a real photo in place

edit_image puts a character or object into a masked area of a photo and leaves every other pixel exactly as shot. The model only ever sees a window around the mask, and its output is composited back inside the mask with a feathered edge — the rest of the photo is the original bytes, not a re-render. It returns the edited image at the photo's resolution plus the mask it used. Four people missing from the team photo: four masks.

Also today

Docs: Generation, Recording.

← All posts · RSS