# Seedance 2.5 Draft to Final - Core.Today AI API > Turn a Seedance 2.5 draft into the final 1080p video. Make a cheap 480p draft with bytedance/seedance-2.5 and draft: true, check it, then send that job's job_id here. The final reuses the draft's prompt, reference media, duration, aspect ratio, seed and audio setting, so what you approved is what you get. - **Provider**: ByteDance - **Model ID**: bytedance/seedance-2.5/draft-to-final - **Category**: Video Generation - **Credits**: 6680 per 5s draft — billed as 1080p for the draft's duration (1335 credits/s); drafts with reference videos: 799 credits per (input+output) second - **Speed**: Medium - **Quality**: Ultra ## Features - Final video at 1080p (10-bit color, H.265/HEVC) - Reuses the draft's prompt, reference media, duration, aspect ratio, seed and audio — no drift between preview and final - Only output format and watermark can be set again - Served directly from BytePlus ModelArk; never falls back to another provider ## Use Cases - Iterating on composition and motion at 480p cost before paying for 1080p - Client review workflows: share the draft, then render the approved version - Batch exploration of prompts where only the winners are rendered in high quality ## API Endpoint Base URL: https://api.core.today/v1 Create Prediction: POST /predictions Get Status: GET /predictions/{job_id} ## Authentication Header: X-API-Key: YOUR_API_KEY ## Input Parameters ### Required - **draft_job_id**: string - job_id of a completed Seedance 2.5 draft (POST /predictions with model bytedance/seedance-2.5 and draft: true), created by your team within the last 7 days. Not the upstream task id. ### Optional - **output_format**: string (default: mp4) - Output video container format. Not reused from the draft — omitted means mp4. Options: mp4, mov - **watermark**: boolean (default: false) - Add a watermark. Not reused from the draft — omitted means no watermark. ## Examples ### Finalize an approved draft Step 2 of draft mode. Step 1 was POST /predictions with model bytedance/seedance-2.5, your prompt and inputs, and draft: true; its job_id goes here. ```json { "model": "bytedance/seedance-2.5/draft-to-final", "input": { "draft_job_id": "YourDraftJobId0123456789abcdefAB", "output_format": "mp4" } } ``` ## Response Format ```json { "job_id": "abc123", "status": "pending | processing | completed | failed", "result": "URL or data (when completed)" } ``` ## Usage Flow 1. POST /predictions with model and input -> receive job_id 2. GET /predictions/{job_id} -> poll until status is completed or failed 3. Result contains output URL(s) ## Tips - Do not send prompt, images, videos, audio, duration, aspect_ratio, seed or generate_audio — they come from the draft. To change any of them, make a new draft. - The final is billed on the draft's settings: a 10-second draft finalizes as a 10-second 1080p video. - 1080p output uses H.265/HEVC. If a player cannot open it, try VLC, mpv or QuickTime Player. - A draft that ran on a fallback provider cannot be finalized — drafts never fall back, so this only affects requests made before draft mode existed. ## Documentation https://docs.byteplus.com/en/docs/modelark/seedance-2-5#2.5_draft_mode