List available VicSee models with their capabilities and credit costs. Call this first to find a model id to pass to vicsee_generate. Optionally filter by media type.
Return the EXACT credits a vicsee_generate call will charge, without generating anything. Takes the same arguments as vicsee_generate. The server runs the identical validation, model/resolution resolution and per-second billing (probing any reference video for its length) and stops before the charge, so `credits` is what vicsee_generate will deduct. Also returns `resolvedParams` (the settings that will actually apply, including defaults you did not send), `creditsRemaining` and `sufficient`. Call this before vicsee_generate whenever the user cares about cost, is comparing models, or is attaching a video reference (per-second billing across input + output). Invalid requests return the same error vicsee_generate would, so it also works as a free dry run.
Create an AI image or video with VicSee. Generation is ASYNCHRONOUS: this returns a task `id` immediately, then poll `vicsee_get_task` with that id until status is "completed" (the result URL appears in result.url) or "failed". Use vicsee_list_models to pick a `model` and see its valid options. For image-to-video / image-to-image, pass source images in `image_urls`. For reference-to-video models (e.g. "seedance-2-5-reference-to-video"), pass references in reference_image_urls / reference_video_urls / reference_audio_urls and refer to them positionally in the prompt as @Image1, @Image2, … For native 2K output at the best value per second use the "minimax-h3-*" models (MiniMax H3, also called Hailuo 03): 4-15s, 768P/2K, always-on stereo audio, billed per second (25 credits/s at 768P, 40 at 2K). Note "minimax-h3-image-to-video" takes the first frame in image_urls[0] and an optional last frame in image_urls[1], and has NO aspect_ratio parameter — the ratio follows the frames; "minimax-h3-reference-to-video" requires at least one image OR video reference (audio alone is rejected) and accepts at most 5 reference images. For clips longer than 15 seconds use the "seedance-2-5-*" models, which generate up to 30 seconds (480p/720p only, no 1080p or 4K); the "seedance-2-0-*" models cap at 15 seconds but add 1080p and 4K. Note that supplying a video reference switches billing to per-second across input + output, so a long reference clip costs considerably more than the duration table suggests. When cost matters, call vicsee_estimate with the same arguments FIRST — it returns the exact credits this call will charge and creates nothing. IMAGE inputs (image_urls, reference_image_urls) may be a public https URL, a local file path (this server reads and base64-encodes it for you), or a base64 data URI. VIDEO/AUDIO inputs (reference_video_urls, reference_audio_urls) must be public https URLs. For video-edit models (e.g. "happyhorse-video-edit"), pass the source clip in video_url and optionally set audio_setting ("auto" or "origin"). Input images must have an aspect ratio between 0.4 and 2.5 (width÷height) and at most 36MP — wide-strip composites (e.g. 3:1) are rejected; use a 2×2 grid layout instead. On "failed" tasks, read error.key and error.message from vicsee_get_task — they state the actual reason (do not guess).
Poll a generation or upscale task by its id. IMPORTANT: finished media URLs are kept for 7 days only — result.expires_at is the exact time the URL stops working; download or re-host anything the user wants to keep. status is one of "pending" | "processing" | "queued" | "completed" | "failed". When "completed", the media URL is in result.url (videos/images) or result.songs (music). When "failed", details are in error. Poll every few seconds until completed or failed.
Upscale a publicly accessible image (JPEG/PNG/WebP). Asynchronous: returns a task id — poll vicsee_get_task until completed. upscale_factor defaults to "2" (max "4"). Credits are tiered by OUTPUT size (input megapixels × factor²): ≤24MP = 20, ≤48MP = 40, ≤96MP = 80; outputs above 96MP are rejected.
Upscale a publicly accessible video (MP4/MOV/MKV, up to 60s). Asynchronous: returns a task id — poll vicsee_get_task until completed. upscale_factor defaults to "2".
Get the current VicSee credit balance for the configured API key.
Upload a LOCAL file (image, video, or audio) from this machine and get back a public https URL. Use the returned url as an input for vicsee_generate — e.g. drop it into reference_image_urls for a reference-to-video storyboard, or image_urls for image-to-video. PREFER this over inline base64 for references: large base64 strings get truncated in tool-call output and the model rejects them. The file uploads directly to storage; only its public URL comes back.