Compare commits
33
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3d4b94be7d | ||
|
|
1c66968873 | ||
|
|
492dbe58c0 | ||
|
|
871a100a8a | ||
|
|
3aacf3f27f | ||
|
|
fbd09a24b6 | ||
|
|
f6669c912c | ||
|
|
6a45c03b04 | ||
|
|
84a28ca95c | ||
|
|
6fda08cb53 | ||
|
|
754cfeed9e | ||
|
|
e61aaca243 | ||
|
|
8828ecb3af | ||
|
|
abd1e4f13f | ||
|
|
a6b3a77fd8 | ||
|
|
d304032279 | ||
|
|
f4bc0081f4 | ||
|
|
1ff02ce1a4 | ||
|
|
5e39b546ef | ||
|
|
a39a4ebb89 | ||
|
|
510bc2d1a3 | ||
|
|
4ca5ae68ea | ||
|
|
1a8a20f4ee | ||
|
|
80eb4e5302 | ||
|
|
9ff0bf10ab | ||
|
|
d020a0f9a2 | ||
|
|
012b987ab8 | ||
|
|
24a0a457a1 | ||
|
|
663e267d4c | ||
|
|
f174a61aee | ||
|
|
c9b5aef80b | ||
|
|
f107173b58 | ||
|
|
9b530eda75 |
No files matched your search
@@ -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.**
|
||||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
||||
|
||||
|
||||
@@ -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 }}
|
||||
@@ -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
|
||||
@@ -1,8 +1,8 @@
|
||||
name: Publish Docker image
|
||||
name: Publish Docker image (main branch)
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [main]
|
||||
# push:
|
||||
# branches: [main]
|
||||
release:
|
||||
types: [published]
|
||||
workflow_dispatch:
|
||||
|
||||
@@ -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
@@ -9,10 +9,11 @@ RUN apt-get update && apt-get upgrade -y \
|
||||
&& ln -s /usr/bin/python3 /usr/bin/python
|
||||
|
||||
WORKDIR /app
|
||||
COPY . .
|
||||
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 && \
|
||||
pip install --no-cache-dir deepspeed
|
||||
COPY . .
|
||||
|
||||
EXPOSE 7851 7852
|
||||
RUN chmod +x launch.sh
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
# 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 :**
|
||||
- **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.
|
||||
- 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>
|
||||
<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).
|
||||
|
||||
|
||||
+1
-1
@@ -325,7 +325,7 @@ install_custom_standalone() {
|
||||
echo " Downloading and installing PyTorch. This step can take a long time"
|
||||
echo " depending on your internet connection and hard drive speed. Please"
|
||||
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 " Installing additional requirements."
|
||||
echo
|
||||
|
||||
+7
-1
@@ -1,7 +1,7 @@
|
||||
version: '3.8'
|
||||
services:
|
||||
alltalk-tts:
|
||||
image: alltalk:v1-9c
|
||||
image: ${IMAGE:-alltalk:v1-9c}
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "7851:7851"
|
||||
@@ -12,6 +12,12 @@ services:
|
||||
- ./voices:/app/voices/
|
||||
- ./finetune/put-voice-samples-in-here:/app/finetune/put-voice-samples-in-here
|
||||
- ./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:
|
||||
resources:
|
||||
reservations:
|
||||
|
||||
@@ -3,8 +3,8 @@ soundfile>=0.12.1
|
||||
uvicorn>=0.24.0.post1
|
||||
transformers>=4.37.1
|
||||
TTS>=0.22.0
|
||||
torch>=2.1.0+cu118
|
||||
torchaudio>=2.1.0+cu118
|
||||
torch>=2.1.0
|
||||
torchaudio>=2.1.0
|
||||
fastapi>=0.104.1
|
||||
Jinja2>=3.1.2
|
||||
requests>=2.31.0
|
||||
|
||||
Reference in new issue
Block a user