Compare commits

...
Author SHA1 Message Date
Paladinium 3d4b94be7d Merge pull request #567 from Paladinium/main_improve_github_actions
Improve paths-filter for Docker github action
2025-03-19 21:50:25 +01:00
ekoc 1c66968873 Improve paths-filter for Docker github action 2025-03-19 21:49:34 +01:00
erew123 492dbe58c0 Merge pull request #543 from Paladinium/main
Adding Github actions for building Docker to main
2025-02-27 06:40:00 +00:00
ekoc 871a100a8a Adding Github actions for building the docker images 2025-02-26 21:28:48 +01:00
ekoc 3aacf3f27f Adding Github actions for building the docker images 2025-02-26 20:21:46 +01:00
ekoc fbd09a24b6 Adding Github actions for building the docker images 2025-02-22 16:40:25 +01:00
erew123 f6669c912c Update feature_request.md 2024-12-08 03:17:17 +00:00
erew123 6a45c03b04 Update python-ci.yml 2024-11-27 19:45:22 +00:00
erew123 84a28ca95c Update publish-docker.yml 2024-11-27 19:45:01 +00:00
erew123 6fda08cb53 Delete .github/workflows/main.yml 2024-11-27 03:55:36 +00:00
erew123 754cfeed9e Create python-ci.yml 2024-11-27 03:53:39 +00:00
erew123 e61aaca243 Create main.yml 2024-11-27 03:51:26 +00:00
erew123 8828ecb3af Update publish-docker.yml 2024-11-27 03:15:00 +00:00
erew123 abd1e4f13f Update README.md 2024-11-24 22:24:40 +00:00
erew123 a6b3a77fd8 Update README.md 2024-11-24 22:24:10 +00:00
erew123 d304032279 Update README.md 2024-11-24 20:23:49 +00:00
erew123 f4bc0081f4 Update README.md 2024-11-11 14:08:06 +00:00
erew123 1ff02ce1a4 Update README.md 2024-10-16 00:27:20 +01:00
erew123 5e39b546ef Update README.md 2024-10-16 00:26:30 +01:00
erew123 a39a4ebb89 Update README.md 2024-10-05 23:34:54 +01:00
erew123 510bc2d1a3 Update README.md 2024-08-15 09:27:17 +01:00
erew123 4ca5ae68ea Update requirements_textgen.txt 2024-08-15 09:03:58 +01:00
erew123 1a8a20f4ee Add files via upload 2024-07-01 09:57:58 +01:00
erew123 80eb4e5302 Merge pull request #249 from dpkirchner/tune-docker
Tune docker
2024-06-19 10:50:14 +01:00
erew123 9ff0bf10ab Wrong upload (no actual change here)
Must be careful to watch github swapping between branches when uploading!
2024-06-17 21:02:19 +01:00
erew123 d020a0f9a2 removed debug lines 2024-06-17 21:00:08 +01:00
erew123 012b987ab8 Force PyTorch 2.2.1 2024-06-14 13:10:17 +01:00
David Kirchner 24a0a457a1 Add a health check to docker compose (monitor with docker ps) 2024-06-11 10:47:25 -07:00
David Kirchner 663e267d4c Allow user to specify a docker image using compose
This makes it easier to test local changes. Usage is basically:

$ docker build -t whatever:latest .
$ IMAGE=whatever:latest docker compose up -d
2024-06-11 09:36:26 -07:00
David Kirchner f174a61aee Reorder dockerfile to avoid rebuilding modules on all code changes 2024-06-11 09:28:55 -07:00
erew123 c9b5aef80b Update README.md 2024-06-06 23:23:18 +01:00
erew123 f107173b58 Update README.md 2024-06-06 21:16:39 +01:00
erew123 9b530eda75 Update README.md 2024-06-06 21:16:20 +01:00
11 changed files with 286 additions and 13 deletions

No files matched your search

+1
View File
@@ -0,0 +1 @@
blank_issues_enabled: false
@@ -7,6 +7,9 @@ assignees: ''
--- ---
**Please confirm you have read the current Features request list**
https://github.com/erew123/alltalk_tts/discussions/74
**Is your feature request related to a problem? Please describe.** **Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
+73
View File
@@ -0,0 +1,73 @@
name: 'Setting up docker'
inputs:
DOCKERHUB_USERNAME:
description: "Docker hub username"
required: true
DOCKERHUB_REPO_NAME:
description: "Docker hub repo name"
required: true
DOCKERHUB_TOKEN:
description: "Docker hub token"
required: true
runs:
using: "composite"
steps:
- name: Free Disk Space (Ubuntu)
uses: jlumbroso/free-disk-space@v1.3.1
with:
tool-cache: true
swap-storage: false
large-packages: false
- name: Read variables
shell: bash
run: |
source ./docker/variables.sh
for key in "${!ALLTALK_VARS[@]}"
do
echo "${key}=${ALLTALK_VARS[${key}]}"
echo "${key}=${ALLTALK_VARS[${key}]}" >> $GITHUB_ENV
done
- name: Extract version from Git Tag
shell: bash {0}
run: |
# Use the git tag if existing, otherwise 'latest':
DOCKER_TAG=$( echo "${{ github.ref }}" | grep -q tags | cut -d'/' -f 3 )
if [ -z "${DOCKER_TAG}" ]; then
DOCKER_TAG="latest"
fi
echo "Using DOCKER_TAG=${DOCKER_TAG}"
echo "DOCKER_TAG=${DOCKER_TAG}" >> $GITHUB_ENV
- name: Extract Docker Hub User and Repo Name
shell: bash
env:
DOCKERHUB_USERNAME: ${{ inputs.DOCKERHUB_USERNAME }}
DOCKERHUB_REPO_NAME: ${{ inputs.DOCKERHUB_REPO_NAME }}
run: |
if [ -n "${DOCKERHUB_USERNAME}" ]; then
echo "Using Github repository variable 'DOCKERHUB_USERNAME' as Docker hub username with value: '${DOCKERHUB_USERNAME}'"
echo "DOCKERHUB_USERNAME=${DOCKERHUB_USERNAME}" >> $GITHUB_ENV
else
echo "Using Github repository name as Docker hub username"
echo "DOCKERHUB_USERNAME=$(echo ${{ github.repository }} | cut -d'/' -f 1)" >> $GITHUB_ENV
fi
if [ -n "${DOCKERHUB_REPO_NAME}" ]; then
echo "Using Github repository variable 'DOCKERHUB_REPO_NAME' as Docker hub repo name with value: '${DOCKERHUB_REPO_NAME}'"
echo "DOCKERHUB_REPO_NAME=${DOCKERHUB_REPO_NAME}" >> $GITHUB_ENV
else
echo "Using Github repository name as Docker hub repo name"
echo "DOCKERHUB_REPO_NAME=$(echo ${{ github.repository }} | cut -d'/' -f 2)" >> $GITHUB_ENV
fi
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ inputs.DOCKERHUB_USERNAME }}
password: ${{ inputs.DOCKERHUB_TOKEN }}
+124
View File
@@ -0,0 +1,124 @@
name: Publish Docker v2
on:
workflow_dispatch:
release:
types: [ published ]
push:
branches:
- 'alltalkbeta'
tags:
- 'v*'
# Limit the concurrency of entire workflow runs for a specific branch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build_base_environment_docker_image:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup docker
uses: ./.github/actions/docker-setup
with:
DOCKERHUB_USERNAME: ${{ vars.DOCKERHUB_USERNAME }}
DOCKERHUB_REPO_NAME: ${{ vars.DOCKERHUB_REPO_NAME }}
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
images: |
${{ env.DOCKERHUB_USERNAME }}/${{ env.DOCKERHUB_REPO_NAME }}_environment
tags: |
# Use sematic versioning on push tag event:
type=semver,pattern={{version}}
# set latest tag for main and alltalkbeta branch:
type=raw,value=latest,enable=${{ github.ref == format('refs/heads/{0}', 'main') || github.ref == format('refs/heads/{0}', 'alltalkbeta') }}
- uses: dorny/paths-filter@v3
id: changes
with:
base: 'alltalkbeta'
filters: |
docker-base:
- 'docker/variables.sh'
- 'docker/base/Dockerfile'
docker-workflow:
- '.github/workflows/publish-docker*.yml'
- name: Build and push base Docker image
if: |
steps.changes.outputs.docker-base == 'true' ||
steps.changes.outputs.docker-workflow == 'true' ||
github.event_name == 'release' ||
(github.event_name == 'push' && contains(github.ref, 'refs/tags/'))
uses: docker/build-push-action@v6
with:
context: ./docker/base
file: ./docker/base/Dockerfile
platforms: "linux/amd64"
push: true
build-args: |
CUDA_VERSION=${{ env.CUDA_VERSION }}
PYTHON_VERSION=${{ env.PYTHON_VERSION }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=registry,ref=${{ env.DOCKERHUB_USERNAME }}/${{ env.DOCKERHUB_REPO_NAME }}_environment:buildcache
cache-to: type=registry,ref=${{ env.DOCKERHUB_USERNAME }}/${{ env.DOCKERHUB_REPO_NAME }}_environment:buildcache,mode=max
build_main_docker_image:
needs: build_base_environment_docker_image
runs-on: ubuntu-latest
strategy:
matrix:
tts: [ xtts, vits, piper ]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup docker
uses: ./.github/actions/docker-setup
with:
DOCKERHUB_USERNAME: ${{ vars.DOCKERHUB_USERNAME }}
DOCKERHUB_REPO_NAME: ${{ vars.DOCKERHUB_REPO_NAME }}
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
images: |
${{ env.DOCKERHUB_USERNAME }}/${{ env.DOCKERHUB_REPO_NAME }}
flavor: |
suffix=-${{ matrix.tts }},onlatest=true
tags: |
# Use sematic versioning on push tag event:
type=semver,pattern={{version}}
# set latest tag for main and alltalkbeta branch:
type=raw,value=latest,enable=${{ github.ref == format('refs/heads/{0}', 'main') || github.ref == format('refs/heads/{0}', 'alltalkbeta') }}
- name: Build and push base Docker image
uses: docker/build-push-action@v6
with:
context: .
file: ./Dockerfile
platforms: "linux/amd64"
push: true
build-args: |
TTS_MODEL=${{ matrix.tts }}
ALLTALK_DIR=${{ env.ALLTALK_DIR }}
DEEPSPEED_VERSION=${{ env.DEEPSPEED_VERSION }}
DOCKER_TAG=${{ env.DOCKER_TAG }}
DOCKER_REPOSITORY=${{ env.DOCKERHUB_USERNAME }}/
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=registry,ref=${{ env.DOCKERHUB_USERNAME }}/${{ env.DOCKERHUB_REPO_NAME }}:buildcache-${{ matrix.tts }}
cache-to: type=registry,ref=${{ env.DOCKERHUB_USERNAME }}/${{ env.DOCKERHUB_REPO_NAME }}:buildcache-${{ matrix.tts }},mode=max
+3 -3
View File
@@ -1,8 +1,8 @@
name: Publish Docker image name: Publish Docker image (main branch)
on: on:
push: # push:
branches: [main] # branches: [main]
release: release:
types: [published] types: [published]
workflow_dispatch: workflow_dispatch:
+53
View File
@@ -0,0 +1,53 @@
# This workflow will install Python dependencies, run tests and lint with a single version of Python
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python
name: Python CI
on: [push, pull_request]
permissions:
contents: read
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.11.9
uses: actions/setup-python@v3
if: ${{ hashFiles('./test') != '' }}
with:
python-version: "3.11.9"
- name: Install dependencies
if: ${{ hashFiles('./test') != '' }}
run: |
python -m pip install --upgrade pip
if [ -f system/requirements/requirements_unit_test.txt ]; then
pip install -r system/requirements/requirements_unit_test.txt;
fi
- name: Test with pytest
if: ${{ hashFiles('./test') != '' }}
run: |
pytest test --doctest-modules --junitxml=junit/test-results.xml --cov=com --cov-report=xml --cov-report=html
- name: Surface failing tests
if: always()
uses: pmeier/pytest-results-action@v0.6.0
with:
# A list of JUnit XML files, directories containing the former, and wildcard
# patterns to process.
# See @actions/glob for supported patterns.
path: junit/test-results.xml
# (Optional) Add a summary of the results at the top of the report
summary: true
# (Optional) Select which results should be included in the report.
# Follows the same syntax as `pytest -r`
display-options: fEX
# (Optional) Fail the workflow if no JUnit XML was found.
fail-on-empty: false
# (Optional) Title of the test results section in the workflow summary
title: Test results
+2 -1
View File
@@ -9,10 +9,11 @@ RUN apt-get update && apt-get upgrade -y \
&& ln -s /usr/bin/python3 /usr/bin/python && ln -s /usr/bin/python3 /usr/bin/python
WORKDIR /app WORKDIR /app
COPY . .
ENV CUDA_DOCKER_ARCH=all ENV CUDA_DOCKER_ARCH=all
COPY system/requirements/requirements_docker.txt system/requirements/requirements_docker.txt
RUN pip install --no-cache-dir --no-deps -r system/requirements/requirements_docker.txt && \ RUN pip install --no-cache-dir --no-deps -r system/requirements/requirements_docker.txt && \
pip install --no-cache-dir deepspeed pip install --no-cache-dir deepspeed
COPY . .
EXPOSE 7851 7852 EXPOSE 7851 7852
RUN chmod +x launch.sh RUN chmod +x launch.sh
+17 -5
View File
@@ -1,5 +1,13 @@
# AllTalk TTS # AllTalk TTS
AllTalk is an updated version of the Coqui_tts extension for Text Generation web UI. Features include:
## AllTalk version 2
# [Click here to go to AllTalk Version 2](https://github.com/erew123/alltalk_tts/tree/alltalkbeta)
AllTalk v2 significantly enhances v1, introducing new features while addressing many previous issues. Although still evolving, v2 offers a stable build and is the recommended version for most users as this is where update and development work is now focused.
## ⚠️ AllTalk v1 - Everything BELOW this point is for AllTalk v1⚠️
AllTalk version 1 is an updated version of the Coqui_tts extension for Text Generation web UI. Features include:
- **Can be run as a** [standalone application](https://github.com/erew123/alltalk_tts/#-quick-setup-text-generation-webui--standalone-installation) **or part of :** - **Can be run as a** [standalone application](https://github.com/erew123/alltalk_tts/#-quick-setup-text-generation-webui--standalone-installation) **or part of :**
- **Text-generation-webui** [link](https://github.com/oobabooga/text-generation-webui) - **Text-generation-webui** [link](https://github.com/oobabooga/text-generation-webui)
@@ -57,9 +65,13 @@ If AllTalk has been helpful to you, consider showing your support through a dona
--- ---
### 🟩 Quick Setup (Text-generation-webui & Standalone Installation) # [Click here if you want AllTalk Version 2](https://github.com/erew123/alltalk_tts/tree/alltalkbeta)
Quick setup scripts are available for users on Windows 10/11 and Linux. Instructional videos for both setup processes are linked below. ## ⚠️ Everything on this page is for AllTalk v1 not AllTalk v2 ⚠️
### 🟩 Quick Setup AllTalk Version 1 (Text-generation-webui & Standalone Installation)
AllTalk version 1 - Quick setup scripts are available for users on Windows 10/11 and Linux. Instructional videos for both setup processes are linked below.
- Ensure that **Git** is installed on your system as it is required for cloning the repository. If you do not have Git installed, visit [**Git's official website**](https://git-scm.com/downloads) to download and install it. - Ensure that **Git** is installed on your system as it is required for cloning the repository. If you do not have Git installed, visit [**Git's official website**](https://git-scm.com/downloads) to download and install it.
- Windows users must install C++ development tools for Python to compile Python packages. Detailed information and a link to these tools can be found in the help section [**Windows & Python requirements for compiling packages**](https://github.com/erew123/alltalk_tts#-help-with-problems). - Windows users must install C++ development tools for Python to compile Python packages. Detailed information and a link to these tools can be found in the help section [**Windows & Python requirements for compiling packages**](https://github.com/erew123/alltalk_tts#-help-with-problems).
@@ -143,11 +155,11 @@ As for Google Colab, there is partial compatibility with AllTalk, though with so
--- ---
### 🟩 Manual Installation - As part of Text generation web UI (inc. macOSX) ### 🟩 Manual Installation AllTalk Version 1 - As part of Text generation web UI (inc. macOSX)
<details> <details>
<summary>MANUAL INSTALLATION - Text-Generation-webui</summary> <summary>MANUAL INSTALLATION - Text-Generation-webui</summary>
### Manual Installation for Text Generation Web UI ### Manual Installation AllTalk Version 1 for Text Generation Web UI
If you're using a Mac or prefer a manual installation for any other reason, please follow the steps below. This guide is compatible with the current release of Text Generation Web UI as of December 2023. Consider updating your installation if it's been a while, [update instructions here](https://github.com/oobabooga/text-generation-webui?tab=readme-ov-file#how-to-install). If you're using a Mac or prefer a manual installation for any other reason, please follow the steps below. This guide is compatible with the current release of Text Generation Web UI as of December 2023. Consider updating your installation if it's been a while, [update instructions here](https://github.com/oobabooga/text-generation-webui?tab=readme-ov-file#how-to-install).
+1 -1
View File
@@ -325,7 +325,7 @@ install_custom_standalone() {
echo " Downloading and installing PyTorch. This step can take a long time" echo " Downloading and installing PyTorch. This step can take a long time"
echo " depending on your internet connection and hard drive speed. Please" echo " depending on your internet connection and hard drive speed. Please"
echo " be patient." echo " be patient."
pip install torch>=2.2.1+cu121 torchaudio>=2.2.1+cu121 --upgrade --force-reinstall --extra-index-url https://download.pytorch.org/whl/cu121 pip install torch==2.2.1+cu121 torchaudio==2.2.1+cu121 --upgrade --force-reinstall --extra-index-url https://download.pytorch.org/whl/cu121
echo echo
echo " Installing additional requirements." echo " Installing additional requirements."
echo echo
+7 -1
View File
@@ -1,7 +1,7 @@
version: '3.8' version: '3.8'
services: services:
alltalk-tts: alltalk-tts:
image: alltalk:v1-9c image: ${IMAGE:-alltalk:v1-9c}
restart: unless-stopped restart: unless-stopped
ports: ports:
- "7851:7851" - "7851:7851"
@@ -12,6 +12,12 @@ services:
- ./voices:/app/voices/ - ./voices:/app/voices/
- ./finetune/put-voice-samples-in-here:/app/finetune/put-voice-samples-in-here - ./finetune/put-voice-samples-in-here:/app/finetune/put-voice-samples-in-here
- ./dockerconfig.json:/app/confignew.json - ./dockerconfig.json:/app/confignew.json
healthcheck:
test: ["CMD", "wget", "-qO-", "http://localhost:7851/api/ready"]
interval: 1m30s
timeout: 30s
retries: 5
start_period: 30s
deploy: deploy:
resources: resources:
reservations: reservations:
+2 -2
View File
@@ -3,8 +3,8 @@ soundfile>=0.12.1
uvicorn>=0.24.0.post1 uvicorn>=0.24.0.post1
transformers>=4.37.1 transformers>=4.37.1
TTS>=0.22.0 TTS>=0.22.0
torch>=2.1.0+cu118 torch>=2.1.0
torchaudio>=2.1.0+cu118 torchaudio>=2.1.0
fastapi>=0.104.1 fastapi>=0.104.1
Jinja2>=3.1.2 Jinja2>=3.1.2
requests>=2.31.0 requests>=2.31.0