Runway Agent UGC and Commercial skills vs Sume catalog Formats
Runway's UGC Video and Commercial skills run in an Agent chat. Sume's sume-close-camera-ugc and sume-product-commercial Formats are called by slug from code.

Runway Agent's UGC Video skill creates an influencer video where a person talks to the camera in a casual style, and its Commercial skill produces a commercial with a hook, proof and call to action; both run inside an Agent chat. Sume ships catalog Formats for the same jobs, sume-close-camera-ugc and sume-product-commercial, which any key with formats:write can call by slug from code. Read the Format's description and io profile before you call it.
Closest matches
| Runway skill (per Runway's page) | Sume catalog slug | How you start it |
|---|---|---|
| UGC Video: person talks to the camera, casual style | sume-close-camera-ugc | POST /v1/formats/sume/sume-close-camera-ugc/runs |
| Commercial: hook, proof and call to action | sume-product-commercial | POST /v1/formats/sume/sume-product-commercial/runs |
| Mobile app and product clips (no matching skill listed) | sume-mobile-app-ugc, sume-product-usage-demo | Same path, different slug |
Look before you call
The catalog's own page tells you to read a Format with GET /v1/formats/sume/{slug}, which returns its description and an io profile: input_kind is url, text, image or product, and output_kind is video, image or text. The run body's input is free-form by design, so that profile and the description are the contract between a Format's author and you.
This script prints both for the two slugs above.
import json, os, urllib.request
def describe(slug: str) -> None:
req = urllib.request.Request(
f"https://api.sume.com/v1/formats/sume/{slug}",
headers={"Authorization": "Bearer " + os.environ["SUME_API_KEY"]},
)
with urllib.request.urlopen(req) as resp:
body = json.load(resp)
fmt = body.get("data", body)
print(slug, "|", fmt.get("description"), "|", fmt.get("io"))
for slug in ("sume-close-camera-ugc", "sume-product-commercial"):
describe(slug)The difference in who is watching
A skill checks in with you as it goes, and you can redirect Agent at any step. A Format run is one unattended turn, so a gate such as approve these stills first is treated as already granted and the run carries on within its spend cap. Put the quality bar into the instruction and the cap on the request.
The run belongs to the caller
Calling a catalog Format needs nothing to fork or install. The run, its media and its spend belong to the key that called, and the Format itself stays shared. Fork one in the Format library only when you want to change it.
Sources
Related posts
More in Comparisons
- Runway API credit rates for a 10-second clip, next to Sume's rows
At $0.01 per credit, Runway's API lists gen4.5 at $1.20 for 10 seconds and Veo 3.1 at $4.00. Sume rows: Wan 720p $1.25, H3 Max 768p $1.00. Not like for like.
- Runway enterprise exception requests vs Sume's queue-first admission
Runway's docs mention enterprise exception requests for higher volume. Sume takes extra jobs as queued and sets concurrency by plan. How to plan a big batch.
- Runway API model list vs the Sume video catalog: what overlaps
Runway's API lists Seedance 2.5, Wan 3.0, MiniMax H3, Grok Imagine Video 1.5 and Gemini Omni Flash. Which of those ids exist on Sume, and which do not.
- Runway API Seedance 2.5 vs Sume: 4 to 30 s, 480p to 1080p
Runway's API lists Seedance 2.5 at 4 to 30 seconds, 480p to 1080p. Sume's seedance-2.5 row has the same range; reference limits and billing differ.
Written by Sume