Commit Graph
10 Commits
Author SHA1 Message Date
alexzmsandClaude Opus 5.5 16e412f5e0 Merge hao-ai-lab/FastVideo main into alex/openai-data-url-refs
Conflict in request_adapter.py with #2001, which adds continuation_video and
materializes it through _materialize_video. This branch replaced that helper
with materialize_clip, so continuation_video now goes through materialize_clip
as well, with the same "continuation" upload name. As a result it gets the same
policy as the other video fields: media_roots, the private-URL check, the size
cap, and base64 data:video/... URLs.

- docs/design/server_contracts/openai.md: continuation_video is listed in the
  video row of the media-source table.
- docs/inference/fasth3_omniref.md: continuation_video may be a data:video URL.
- test_openai_serving_engine.py: an inline continuation video is decoded,
  tracked and removed, and a data:audio one is refused.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 01:33:06 +00:00
alexzmsandClaude Opus 5.5 1fa29f201e [feat] OpenAI video API: accept data: URLs for video and audio references
`POST /v1/videos` decoded `data:image/...` references but refused
`data:` video references and passed every `audio_url` to the pipeline
unchanged, so clients without a public URL could not send a reference
video or audio file (SGLang Diffusion accepts all three).

- `video_reference` / `video_path` / `video_url` accept
  `data:video/...;base64,` and `audio_reference` accepts
  `data:audio/...;base64,`. Each decoded file is capped by
  `server.media_reference_max_bytes` (checked from the payload length
  before decoding), written under `output_dir/uploads`, kept in field
  order, and deleted when the job ends.
- Invalid base64, a non-base64 data URL, or a media type that does not
  match the field returns HTTP 400. Percent escapes and line-wrapped
  payloads decode, as in SGLang.
- Audio references are now materialized like video references: http(s)
  URLs go through the media policy download (public addresses, byte
  cap) and local paths must sit under `server.media_roots`. Before, the
  raw string reached PyAV, which opened any local file or URL.
- `docs/design/server_contracts/openai.md` lists the accepted forms per
  field.

Fixes #2018

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 20:50:41 +00:00
sudhirpol522 8839ba8d4d [bugfix] Add OpenAI-compatible image generation endpoint (#1840) 2026-09-14 17:55:56 -07:00
Aryan KumarandAryan Kumar 26064193e2 [feat] Add an H3 server cookbook and prompt playground (#1798)
Co-authored-by: Aryan Kumar <aryan5v@users.noreply.github.com>
2026-08-31 22:14:33 -07:00
William Lin a159b63c67 [bugfix] Harden OpenAI serving after post-merge review (#1782) 2026-08-28 22:29:24 -07:00
William Lin 3987b9ddcd [feat] Align multimodal OpenAI serving APIs (#1781) 2026-08-28 10:09:58 -07:00
William Lin c4e108de78 [docs]: modernize documentation build (#1503) 2026-06-28 02:02:09 -07:00
William Lin 1d15d974fa [misc]: cleanup outdated or unneeded agent infrastructure (#1504) 2026-06-27 19:37:49 -07:00
6392bd40a9 [feat] Dreamverse 10/14: Add serving API contracts (#1333)
Co-authored-by: SolitaryThinker <wlsaidhi@gmail.com>
Co-authored-by: Matthew Noto <99706358+RandNMR73@users.noreply.github.com>
Co-authored-by: XOR-op <17672363+XOR-op@users.noreply.github.com>
Co-authored-by: Zhang Peiyuan <42993249+jzhang38@users.noreply.github.com>
2026-05-14 10:07:01 -07:00
William Lin 95fd29e0cb [feat] Streaming WebSocket server skeleton (single generator + fMP4) (#1251) 2026-04-26 00:33:49 -07:00