Skip to content

Honor video duration ranges and sparse duration options - #1892

Draft
matthewpenkala wants to merge 2 commits into
storytold:mainfrom
matthewpenkala:contrib/honor-video-duration-ranges
Draft

Honor video duration ranges and sparse duration options#1892
matthewpenkala wants to merge 2 commits into
storytold:mainfrom
matthewpenkala:contrib/honor-video-duration-ranges

Conversation

@matthewpenkala

Copy link
Copy Markdown

Summary

  • Hydrate continuous duration ranges, sparse duration options, defaults, and image-specific maximums from model listings.
  • Resolve one effective duration contract for controls, generation requests, and cost estimates.
  • Keep sparse choices index-driven so options such as [5, 10] cannot emit unsupported intermediate values.
  • Apply image-duration caps only to media actually included in the effective request mode.
  • Commit and send the value visible when Generate is pressed, including an immediately changed slider value.
  • Clear stale estimates and keep estimate/request duration projection aligned.

Why

Video listings can describe either continuous ranges or discrete supported durations. The existing prompt flow treated those contracts inconsistently, which could expose unsupported selections, estimate one duration while sending another, or apply an image cap to hidden media omitted from the request.

This centralizes the behavior without model-specific branching.

Validation

Focused coverage exercises:

  • valid and contradictory duration ranges;
  • normalized, deduplicated sparse options;
  • default and nearest-option selection;
  • image-specific caps versus video/audio-only references;
  • effective reference mode with stale hidden end-frame state;
  • immediate selection followed by Generate;
  • request/estimate projection parity; and
  • stale estimate/loading cleanup.

git diff --check and contribution-scope scans pass.

Integration status

This is the first layer of a deliberately serialized reference-media series. It also composes with the estimate-lifecycle work in #1884 and the aspect-default work in #1885. The PR is opened as a draft so those smaller shared-consumer changes can land first; this branch will then be rebased onto current main, revalidated, and marked ready without replacing either behavior.

Related work

#1408 and #1186 also touch PromptBoxVideo.tsx, but address multishot and batch generation behavior rather than generic model duration contracts.

Origin and scope

This change was isolated from a broader downstream integration and reduced to a generic, self-contained upstream contribution. Private deployment/release-specific material and artifacts are intentionally excluded.

@netlify

netlify Bot commented Aug 11, 2026

Copy link
Copy Markdown

👷 Deploy request for artcraft-webapp pending review.

Visit the deploys page to approve it

Name Link
🔨 Latest commit 76efc3c

@netlify

netlify Bot commented Aug 11, 2026

Copy link
Copy Markdown

Deploy Preview for storyteller-docs ready!

Name Link
🔨 Latest commit 76efc3c
🔍 Latest deploy log https://app.netlify.com/projects/storyteller-docs/deploys/6a8381b8ee94fd0008874770
😎 Deploy Preview https://deploy-preview-1892--storyteller-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@netlify

netlify Bot commented Aug 11, 2026

Copy link
Copy Markdown

Deploy Preview for artcraft-dashboard ready!

Name Link
🔨 Latest commit 76efc3c
🔍 Latest deploy log https://app.netlify.com/projects/artcraft-dashboard/deploys/6a8381b8ea1e23000838a884
😎 Deploy Preview https://deploy-preview-1892--artcraft-dashboard.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant