GPU image variants for Blackwell / RTX 50-series (:latest-cu128, :vX.Y.Z-cu128, amd64 only) with PyTorch cu128 wheels (#443). Default :latest and new :latest-cu126 alias stay on cu126 for Maxwell/Pascal compatibility.
Integration test suite (api/tests/integration/, opt-in integration marker) and a tts-api-test-client image that round-trips speech through faster-whisper against a live server. Run via docker/docker-compose.test.yml.
Web UI footer badge showing the server version from /config.
Breaking changes
/v1/audio/voices items in the voices array changed from plain strings to {"id", "name"} objects (#462) to match OpenWebUI/similar clients, and allow metadata in the response. Clients reading entries as strings will break; pass ?legacy=true to restore the old item shape.
api_version now read from the VERSION file instead of hardcoded.
Removed the legacy docker/{cpu,gpu}/Dockerfile; the .optimized variants are the only build files now.
Docker images carry OCI metadata so GHCR pages render properly. Integration compose defaults to the published test-client image.
ROCm image defaults to MIOPEN_FIND_MODE=2 so the on-disk kernel cache is reused instead of re-searched per process, and ships an opt-in warmup script at docker/rocm/warmup_miopen.py to pre-populate it. Recipe and benchmarks from @realugbun in #454.
Fixed
WAV responses drop junk size-field trailer that decoded as a click at chunk end. (#463)
ROCm MIOpen cache set to persist across compose restarts; switched bind mounts to named volumes at the path MIOpen writes to (prior mounts targeted an inaccessible location).
cpu/gpu composes set DOWNLOAD_MODEL=true for an idempotent model fetch on startup.
VERSION shipped into images so /config reports the real server version.
Silence trimming no longer treats full-scale-negative samples as silent (int16abs() overflow).
Fixed invalid escape sequences in the text-normalizer URL regex.
CI test job uses the CPU PyTorch build and excludes integration tests by default.
Configuration
📅Schedule: (UTC)
Branch creation
At any time (no schedule defined)
Automerge
At any time (no schedule defined)
🚦Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕Ignore: Close this PR and you won't be reminded about this update again.
If you want to rebase/retry this PR, check this box
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
| [ghcr.io/remsky/kokoro-fastapi-cpu](https://github.com/remsky/Kokoro-FastAPI) | minor | `v0.3.0` → `v0.4.0` |
---
### Release Notes
<details>
<summary>remsky/Kokoro-FastAPI (ghcr.io/remsky/kokoro-fastapi-cpu)</summary>
### [`v0.4.0`](https://github.com/remsky/Kokoro-FastAPI/blob/HEAD/CHANGELOG.md#v040---2026-05-24)
[Compare Source](https://github.com/remsky/Kokoro-FastAPI/compare/v0.3.0...v0.4.0)
##### Added
- GPU image variants for Blackwell / RTX 50-series (`:latest-cu128`, `:vX.Y.Z-cu128`, amd64 only) with PyTorch cu128 wheels ([#​443](https://github.com/remsky/Kokoro-FastAPI/issues/443)). Default `:latest` and new `:latest-cu126` alias stay on cu126 for Maxwell/Pascal compatibility.
- Integration test suite (`api/tests/integration/`, opt-in `integration` marker) and a `tts-api-test-client` image that round-trips speech through faster-whisper against a live server. Run via `docker/docker-compose.test.yml`.
- Web UI footer badge showing the server version from `/config`.
##### Breaking changes
- `/v1/audio/voices` items in the `voices` array changed from plain strings to `{"id", "name"}` objects ([#​462](https://github.com/remsky/Kokoro-FastAPI/issues/462)) to match OpenWebUI/similar clients, and allow metadata in the response. Clients reading entries as strings will break; pass `?legacy=true` to restore the old item shape.
- Old: `{"voices": ["af_heart", ...]}`
- New: `{"voices": [{"id": "af_heart", "name": "af_heart"}, ...]}`
##### Changed
- `api_version` now read from the `VERSION` file instead of hardcoded.
- Removed the legacy `docker/{cpu,gpu}/Dockerfile`; the `.optimized` variants are the only build files now.
- Docker images carry OCI metadata so GHCR pages render properly. Integration compose defaults to the published test-client image.
- ROCm image defaults to `MIOPEN_FIND_MODE=2` so the on-disk kernel cache is reused instead of re-searched per process, and ships an opt-in warmup script at `docker/rocm/warmup_miopen.py` to pre-populate it. Recipe and benchmarks from [@​realugbun](https://github.com/realugbun) in [#​454](https://github.com/remsky/Kokoro-FastAPI/issues/454).
##### Fixed
- WAV responses drop junk size-field trailer that decoded as a click at chunk end. ([#​463](https://github.com/remsky/Kokoro-FastAPI/issues/463))
- ROCm MIOpen cache set to persist across compose restarts; switched bind mounts to named volumes at the path MIOpen writes to (prior mounts targeted an inaccessible location).
- cpu/gpu composes set `DOWNLOAD_MODEL=true` for an idempotent model fetch on startup.
- `VERSION` shipped into images so `/config` reports the real server version.
- Silence trimming no longer treats full-scale-negative samples as silent (`int16` `abs()` overflow).
- Fixed invalid escape sequences in the text-normalizer URL regex.
- CI test job uses the CPU PyTorch build and excludes integration tests by default.
</details>
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xOTQuMCIsInVwZGF0ZWRJblZlciI6IjQzLjE5NC4wIiwidGFyZ2V0QnJhbmNoIjoiZnJlc2gtc3RhcnQiLCJsYWJlbHMiOltdfQ==-->
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
This PR contains the following updates:
v0.3.0→v0.4.0Release Notes
remsky/Kokoro-FastAPI (ghcr.io/remsky/kokoro-fastapi-cpu)
v0.4.0Compare Source
Added
:latest-cu128,:vX.Y.Z-cu128, amd64 only) with PyTorch cu128 wheels (#443). Default:latestand new:latest-cu126alias stay on cu126 for Maxwell/Pascal compatibility.api/tests/integration/, opt-inintegrationmarker) and atts-api-test-clientimage that round-trips speech through faster-whisper against a live server. Run viadocker/docker-compose.test.yml./config.Breaking changes
/v1/audio/voicesitems in thevoicesarray changed from plain strings to{"id", "name"}objects (#462) to match OpenWebUI/similar clients, and allow metadata in the response. Clients reading entries as strings will break; pass?legacy=trueto restore the old item shape.{"voices": ["af_heart", ...]}{"voices": [{"id": "af_heart", "name": "af_heart"}, ...]}Changed
api_versionnow read from theVERSIONfile instead of hardcoded.docker/{cpu,gpu}/Dockerfile; the.optimizedvariants are the only build files now.MIOPEN_FIND_MODE=2so the on-disk kernel cache is reused instead of re-searched per process, and ships an opt-in warmup script atdocker/rocm/warmup_miopen.pyto pre-populate it. Recipe and benchmarks from @realugbun in #454.Fixed
DOWNLOAD_MODEL=truefor an idempotent model fetch on startup.VERSIONshipped into images so/configreports the real server version.int16abs()overflow).Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate.