About seedance-submitter
seedance-submitter is a skill for validating, submitting, polling, and troubleshooting Seedance 2.0/2.5 jobs through PostPlus Cloud. It handles normalized requests and endpoint constraints, while creative strategy and reference-policy decisions must be resolved beforehand.
Key features
- 01Validates Seedance request contracts
- 02Submits and polls generation jobs
- 03Supports Seedance 2.0 and 2.5 endpoints
- 04Handles references and hosted media
- 05Splits requests that exceed duration limits
Use cases
- 01Submitting a prepared Seedance request
- 02Checking status of a pending render
- 03Preparing reference media for submission
- 04Dividing an oversized video request
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ postplusai/ postplus-skills --skill seedance-submitterAfter installing, type/seedance-submitterin Claude Code to confirm it loaded.
Details
From the project READMESeedance Submitter
Use When
- Preparing, validating, submitting, polling, or debugging Seedance 2.0/2.5 jobs through PostPlus Cloud.
Do Not Use When
- Required inputs are missing and guessing would change the result.
- Task class, hook logic, storyboard, or reference policy is still unresolved.
Use
video-generationandvideo-request-architectfirst.
Execution Boundary
- This runner validates, submits, and polls normalized Seedance requests. It must not make creative strategy, task-classification, or reference-policy decisions.
- Interpret
sd2as Seedance 2.0 Mini (video-seedance-2-mini-*), the current default tier, unless the user names another model. Standard/fast remain available explicitly; use them when reference video/audio is required. - Seedance 2.5 has four deliberately separate scene endpoints. Never convert one
scene into another merely because an image is present:
video-seedance-2-5-text: prompt only; no media inputs.video-seedance-2-5-first-frame: exactly one--first-frame; the output starts from that frame, so this is not a feature-only reference.video-seedance-2-5-first-last-frame: exactly one--first-frameand one--last-frame; the provider contract fixes ratio toadaptiveand duration to-1.video-seedance-2-5-reference: one or more repeatable--reference-image,--reference-video, or--reference-audio; these guide features/style/content and are not opening or ending frames.
- For 2.0, standard/fast
-textendpoints accept image/video/audio references; mini-textaccepts images only. Every-imageendpoint takes one--imagefirst frame and no reference slots. - Released endpoint keys and their option enums (resolution, aspect ratio,
duration bounds) are discovered from
postplus media schema --json; they are not hard-coded here. - Set
durationwithin the endpoint's published bounds (see schema). For edit targets that fall between viable values, pick the nearest validdurationand settargetEditDurationSeconds. - When
targetEditDurationSeconds < duration, includetimeline.activePerformanceEndSecondsandtimeline.tailStrategy. - If the target script or beat plan exceeds the endpoint's maximum duration, split into independent submit-ready segments. Do not submit one oversized request.
- For 2.5 reference
editorextend, supply a reference video and use the exact schema constraints (aspect_ratio=adaptive,duration=-1). The CLI and Web boundary reject unsupported combinations before provider submission and billing.
Source And Request
- Lock media, script, duration, output root, source basis, and whether the user wants submission or commands only.
promptPlan.*,timeline.*, andtargetEditDurationSecondsare authoring vocabulary, not Seedance request fields. Submit with the endpoint's CLI flags from the flat provider contract discovered frompostplus media schema --json(--prompt, legacy 2.0--image, 2.5--first-frame/--last-frame,--duration,--resolution,--aspect-ratio,--generate-audio,--output-format,--omni-reference-task-type, and the repeatable--reference-image/--reference-video/--reference-audio— reference flags only on the endpoints that publish those slots); the CLI rejects any flag outside the selected endpoint's contract. Compose the storyline/audio plan and anytimeline.activePerformanceEndSeconds/timeline.tailStrategyinstruction into the single--promptnarrative, then map the supported render bucket to--duration; timeline authoring fields have no separate flags or request fields, and there is no request-JSON envelope to author.- Bind references explicitly: say what
[image 1],[image 2],[audio 1], or[video 1]controls. Do not rely onsame as previous,content above, or unbound local handles in final requests. - Upload local reference media to hosted storage with
postplus media-file upload --skill seedance-submitter --input-file <file> --mime <mime> --output <upload.json>, then passoutput.mediaReference— a persistentpostplus-media://reference that never expires — into the Seedance media flags (for example--reference-image <output.mediaReference>). The hosted boundary exchanges it for a fresh signed URL at provider send time, so upload once and reuse the same reference across later submissions.output.data.download_urlis a signed URL that expires; preferoutput.mediaReference. - Do not claim that uploading through PostPlus hosted storage automatically
grants Moyu real-person exemption. Automatic Moyu asset-library escalation is
enabled only for the enterprise Seedance 2.0
first_framepath with real end-to-end evidence.reference_imageremained privacy-blocked in a recorded run afterasset://rewrite, and no paid Seedance 2.5 exemption smoke has been approved; both paths fail with the provider's typed policy boundary.
Review And Handoff
- Before submission, verify validation passed, every segment is self-contained, references are bound, required media exists, source basis is explicit, and the output path is durable.
- Seedance 2.5 support is contract-verified by official/live provider material and local submit/poll/result/billing mocks. Until an approved paid smoke checks the MP4, actual duration, resolution, audio track, and settlement, do not label those output properties artifact-proven.
- If a render is pending, return the segment id, manifest path, the
output.data.idgeneration handle, the poll commandpostplus media poll --handle <output.data.id>, and expected localrenders/output path. The poll command waits in-command (re-checks every 8s for up to 45s per invocation;--wait-seconds 0= single check): rerun the same command while the render stays pending instead of re-submitting or writing a tighter retry loop. - Save a finished render to disk with
postplus media-file download --url <fresh-output-url> --output-file <renders/...>(or--reference <postplus-media://...>for media that lives in hosted storage); provider output URLs are temporary, so download while fresh.
Stop Conditions
- Stop when required user intent, source evidence, or owned input artifacts are missing and guessing would change the result.
- If an owned CLI or script command fails, report the exact error and stop. Do not bypass the failure with metadata-only answers, readiness probing, local payload rewrites, fallback providers, or unpublished tools.
Public Command Boundary
- Choose the smallest matching command or workflow from the user input and run it directly.
- Readiness diagnostics:
postplus doctor --skill seedance-submitter. - Poll a pending render:
postplus media poll --handle <output.data.id>(waits in-command up to 45s per invocation; rerun while pending). - Use
postplus media schema --jsononly when constructing or repairing an unknown request shape. - Run the hosted submit with the generated command below; do not call provider APIs directly.
postplus media create video-seedance-2-fast-image \
--prompt <prompt> \
--image <image> \
--output <result.json>
- If the CLI returns a quote-confirmation challenge, run
postplus quote confirm --json --challenge-file <challenge.json>and retry with the returned token.
Comments
Markdown supported