quote_ugc
Price an optional make_ugc workflow and check the spendable balance without rendering or using credits. Pass the exact input intended for make_ugc. Show the returned price to the user and only call make_ugc after the user has authorized that spend.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| look | No | natural | |
| name | No | Name/age/vibe hint, e.g. 'Sophia, 28'. | |
| image | No | A photo of the person, an https URL. The face is locked to it. If you only hold bytes, call `upload_image` first and pass the URL it returns; base64 is still accepted here but it is printed into the user’s chat and re-sent on every retry. | |
| music | No | ||
| scene | No | WHERE the video happens, in a few words: 'on a sunny beach, sea behind her', 'in a gym by the weights', 'in bed at night with a lamp on', 'in a parked car'. Set it whenever the user names a place. Without it the video is set in an ordinary room. | |
| person | No | Describe the person in words. Omit if you pass image or character. | |
| script | No | What the person SAYS (lip-synced), any length. A one-liner makes one clip; a full monologue makes the full multi-take video automatically, never trimmed. Usually the only field you set. EXCEPTION: when you also pass product_image the video is a SINGLE take of at most 15s, so the script must be 46 words or fewer. | |
| captions | No | Burn in TikTok/Hormozi captions. OFF unless set true, ASK the user whether they want captions (and which caption_style) before generating; never add captions unprompted. | |
| duration | No | IGNORED when `script` is set: length follows how long the words take to say (~2.9 words/sec; one take: up to 15 words → 5s, up to 31 → 10s, up to 46 → 15s; longer scripts become several takes sized the same way). A video is never stretched to reach a requested duration; silence between takes and at the end is cut, so the final video runs about as long as the speech. To get a longer video, write more words (~2.8 words per extra second). The response's take_plan shows the takes. Only used for a silent `scene_action` clip, which has no words to measure. | |
| broll_url | No | A b-roll / gameplay / product video overlaid on the lower half while the person narrates. | |
| character | No | Reuse a saved character: its character_id (char_…) OR its character_sheet_url from list_characters. | |
| aspect_ratio | No | 9:16 | |
| scene_action | No | A silent action clip (dancing, b-roll, vibes), no dialogue. Use instead of script; needs a `character`. | |
| caption_style | No | hormozi | |
| product_image | No | A photo of a PRODUCT to show/hold/wear, an https URL. If you only hold bytes, call `upload_image` first and pass the URL it returns: base64 travels inside this tool call, is printed into the user’s chat, and is re-sent on every retry. Turns the video into a product ad; needs a `character` to hold it, and limits `script` to ONE take of at most 15s (46 words). |