Skip to content

Commit 17be191

Browse files
authored
Merge branch 'main' into backmerge/release-sdk-0.13.3
2 parents a91b682 + 725bec0 commit 17be191

6 files changed

Lines changed: 788 additions & 185 deletions

File tree

packages/cli/CHANGELOG.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,55 @@
11
# Changelog
22

3+
# QVAC CLI v0.7.0 Release Notes
4+
5+
📦 **NPM:** https://www.npmjs.com/package/@qvac/cli/v/0.7.0
6+
7+
This release adds image-to-video generation and audio encoding to the OpenAI-compatible HTTP server. It also fixes token accounting and `finish_reason` reporting across all chat-category routes.
8+
9+
## New Features
10+
11+
### Image-to-video via POST /v1/videos
12+
13+
`POST /v1/videos` now supports img2vid in addition to txt2vid. Supply the reference image as a multipart file field (the form the OpenAI SDK sends for `Uploadable`), as a JSON `{ image_url }` (base64 data URI or HTTP(S) URL up to 100 MB), or as a JSON `{ file_id }` referencing a previously uploaded file. Mode is inferred automatically from the presence of `input_reference`.
14+
15+
```typescript
16+
import OpenAI, { toFile } from 'openai'
17+
import fs from 'node:fs'
18+
19+
const client = new OpenAI({ baseURL: 'http://localhost:11434/v1' })
20+
21+
// img2vid via local file (multipart)
22+
const job = await client.videos.create({
23+
model: 'wan-i2v',
24+
prompt: 'subject slowly turns and smiles',
25+
input_reference: await toFile(fs.createReadStream('./frame.png'), 'frame.png'),
26+
})
27+
28+
// img2vid via data URI (JSON)
29+
const job2 = await client.videos.create({
30+
model: 'wan-i2v',
31+
prompt: 'subject slowly turns and smiles',
32+
input_reference: { image_url: 'data:image/png;base64,...' },
33+
})
34+
```
35+
36+
### Audio encoding — mp3, opus, aac, flac
37+
38+
`POST /v1/audio/speech` now supports `response_format: "mp3"`, `"opus"`, `"aac"`, and `"flac"` in addition to `wav` and `pcm`. Encoding is handled by `ffmpeg` on the server's `PATH`; if ffmpeg is absent, these formats return `503 transcode_unavailable`. Use `qvac doctor` to check availability.
39+
40+
Two new discovery endpoints are also available:
41+
42+
```
43+
GET /v1/audio/voices → list of configured TTS voices
44+
GET /v1/audio/models → list of loaded (READY) TTS models
45+
```
46+
47+
## Bug Fixes
48+
49+
### Correct finish_reason and token accounting
50+
51+
`finish_reason: "length"` is now returned when generation is truncated by `max_tokens` or `max_completion_tokens` (previously always `"stop"`). The Responses API equivalent is `status: "incomplete"` with `incomplete_details.reason: "max_output_tokens"`. Token counts (`completion_tokens` / `output_tokens`) now consistently use the SDK's `generatedTokens` stats across `/v1/chat/completions`, `/v1/completions`, and `/v1/responses`.
52+
353
## [0.6.0]
454

555
Release Date: 2026-06-02

0 commit comments

Comments
 (0)