`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>
FastVideo documentation
Canonical guides live in this directory. The Blume application in docs-site builds and publishes them at haoailab.com/FastVideo.
See Documenting FastVideo for local setup,
source ownership, page structure, validation, and deployment. The existing
GitHub Pages workflow publishes Blume from main with the same domain and base
path. MkDocs is no longer part of the build.
Cookbook sources
Recipe metadata, shared JavaScript, and tests remain under docs/. From the
repository root:
npm ci --prefix docs
npm run build:catalog --prefix docs
npm run check:cookbook --prefix docs
npm run test:cookbook --prefix docs
python -m unittest discover -s docs/tests -p 'test_*.py'
The combined browser bundle, notices, index and catalogs are generated together
under assets/cookbook-config/. Do not hand-edit or commit those outputs.
The site preparation builds and copies them into Blume's public assets.
See the recipe authoring guide and
configuration API contract before changing the schema.
The capacity estimation guide covers reusable
hardware/component catalogs and optional recorded inference runs in existing
model manifests.