mirror of
https://github.com/fumiama/RVC-Models-Downloader.git
synced 2026-01-22 07:43:47 +09:00
Compare commits
14 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8312d008be | ||
|
|
9adfe30580 | ||
|
|
7a172aef42 | ||
|
|
ff8949393c | ||
|
|
bdb4b458b9 | ||
|
|
2be2bcb536 | ||
|
|
4c39b7de22 | ||
|
|
24ed668d84 | ||
|
|
3808e901be | ||
|
|
2b6ca35a6d | ||
|
|
e6b2709814 | ||
|
|
0bcc668b80 | ||
|
|
97c40d407e | ||
|
|
a37825d740 |
2
.github/workflows/release.yml
vendored
2
.github/workflows/release.yml
vendored
@@ -15,6 +15,8 @@ jobs:
|
||||
|
||||
- name: Set up Go
|
||||
uses: actions/setup-go@master
|
||||
with:
|
||||
go-version: 1.22
|
||||
|
||||
- name: Run GoReleaser
|
||||
uses: goreleaser/goreleaser-action@master
|
||||
|
||||
3
.gitignore
vendored
3
.gitignore
vendored
@@ -25,3 +25,6 @@ go.work
|
||||
|
||||
# MacOS system file
|
||||
.DS_Store
|
||||
|
||||
# build result
|
||||
/build
|
||||
|
||||
@@ -81,7 +81,7 @@ archives:
|
||||
|
||||
nfpms:
|
||||
- license: AGPL 3.0
|
||||
homepage: https://github.com/RVC-Project/RVC-Models-Downloader
|
||||
homepage: https://github.com/fumiama/RVC-Models-Downloader
|
||||
file_name_template: "rvcmd_{{ .Os }}_{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}"
|
||||
formats:
|
||||
- deb
|
||||
|
||||
33
Makefile
Normal file
33
Makefile
Normal file
@@ -0,0 +1,33 @@
|
||||
PROJECT_NAME := rvcmd
|
||||
BUILD_PATH := build
|
||||
RUN_CMD := -h
|
||||
|
||||
GOOS := $(go env GOOS)
|
||||
GOARCH := $(go env GOARCH)
|
||||
GO_SRC_WIN := $(shell find . -maxdepth 1 -name '*.go' | grep -v '_test.go$$' | grep -v '_windows.go$$')
|
||||
GO_SRC_NO_WIN := $(shell echo $(GO_SRC_WIN) | grep -v '_windows.go$$')
|
||||
|
||||
all:
|
||||
@$(MAKE) -e bin
|
||||
bin: gen dir tidy
|
||||
@if [[ "$(GOARCH)" == "windows" ]]; then \
|
||||
GOOS=$(GOOS) GOARCH=$(GOARCH) go build -ldflags "-s -w" -trimpath -o $(BUILD_PATH)/$(PROJECT_NAME).exe; \
|
||||
else \
|
||||
GOOS=$(GOOS) GOARCH=$(GOARCH) go build -ldflags "-s -w" -trimpath -o $(BUILD_PATH)/$(PROJECT_NAME); \
|
||||
fi
|
||||
run: bin
|
||||
@if [[ "$(GOARCH)" == "windows" ]]; then \
|
||||
$(BUILD_PATH)/$(PROJECT_NAME).exe $(RUN_CMD); \
|
||||
else \
|
||||
$(BUILD_PATH)/$(PROJECT_NAME) $(RUN_CMD); \
|
||||
fi
|
||||
gen:
|
||||
@go generate
|
||||
tidy:
|
||||
@go mod tidy
|
||||
dir:
|
||||
@if [ ! -d "$(BUILD_PATH)" ]; then mkdir $(BUILD_PATH); fi
|
||||
clean:
|
||||
@if [ -d "$(BUILD_PATH)" ]; then \
|
||||
rm -rf $(BUILD_PATH)/$(PROJECT_NAME)*; \
|
||||
fi
|
||||
71
README.md
71
README.md
@@ -1,43 +1,53 @@
|
||||
# RVC-Models-Downloader
|
||||
English | [简体中文](README_sc.md)
|
||||
|
||||
English | [简体中文](README_sc.md) | [한국어](README_kr.md)
|
||||
|
||||
Easy tool to download a batch of files listed in yaml (ex. RVC models in Hugging Face 🤗).
|
||||
|
||||

|
||||

|
||||
|
||||
## Quick Start
|
||||
|
||||
### Preparation
|
||||
1. Download the program at [Release](https://github.com/RVC-Project/RVC-Models-Downloader/releases) page.
|
||||
|
||||
1. Download the program at [Release](https://github.com/fumiama/RVC-Models-Downloader/releases) page.
|
||||
2. Put this program into the root directory of RVC (or whatever position you want to download some files into).
|
||||
3. You can also add it to the `PATH` to use this tool everywhere. If you have installed this program by a package manager, it may be already in the `PATH`.
|
||||
|
||||
### Download
|
||||
|
||||
#### All Assets of RVC
|
||||
|
||||
```bash
|
||||
rvcmd assets/all
|
||||
rvcmd assets/rvc
|
||||
```
|
||||
#### Latest General Pack of RVC (Windows Only)
|
||||
|
||||
#### All Assets of ChatTTS
|
||||
|
||||
```bash
|
||||
rvcmd packs/general/latest
|
||||
```
|
||||
#### ffmpeg Tools (Windows Only)
|
||||
```bash
|
||||
rvcmd tools/ffmpeg
|
||||
rvcmd -w 1 assets/chtts
|
||||
```
|
||||
|
||||
### Customized Download
|
||||
#### Ex.1. Download ffmpeg Tools & Latest Intel Pack
|
||||
|
||||
#### Ex.1. Download hubert & rmvpe
|
||||
|
||||
1. Write and save the following `cust.yaml`.
|
||||
```yaml
|
||||
BaseURL: https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main
|
||||
BaseURL: https://huggingface.co/fumiama/RVC-Pretrained-Models/resolve/main
|
||||
Targets:
|
||||
- Refer: tools/ffmpeg
|
||||
- Refer: packs/intel/latest
|
||||
- Refer: hubert
|
||||
- Refer: rmvpe
|
||||
```
|
||||
2. Run `rvcmd` in the same folder.
|
||||
```bash
|
||||
rvcmd -c cust
|
||||
```
|
||||
|
||||
#### Ex.2. Download other Repositories in 🤗
|
||||
|
||||
> Use [Stable Diffusion v1-5](https://huggingface.co/runwayml/stable-diffusion-v1-5) as the example.
|
||||
|
||||
1. Write and save the following `cust.yaml`.
|
||||
```yaml
|
||||
BaseURL: https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main
|
||||
@@ -50,8 +60,11 @@ rvcmd tools/ffmpeg
|
||||
Copy: # files to download
|
||||
- vae/diffusion_pytorch_model.bin
|
||||
```
|
||||
|
||||
#### Ex.3. Download Releases in GitHub
|
||||
|
||||
> Use [yousa-ling-diffsinger-v1.3](https://github.com/yousa-ling-official-production/yousa-ling-diffsinger-v1/releases/tag/v1.3) as the example.
|
||||
|
||||
1. Write and save the following `cust.yaml`.
|
||||
```yaml
|
||||
BaseURL: https://github.com/yousa-ling-official-production/yousa-ling-diffsinger-v1/releases/download/v1.3
|
||||
@@ -64,7 +77,9 @@ rvcmd tools/ffmpeg
|
||||
```bash
|
||||
rvcmd -c cust
|
||||
```
|
||||
|
||||
## Full Usage
|
||||
|
||||
```bash
|
||||
Usage: rvcmd [-notrs] [-dns dns.yaml] 'target/to/download'
|
||||
-c use custom yaml instruction
|
||||
@@ -75,35 +90,17 @@ Usage: rvcmd [-notrs] [-dns dns.yaml] 'target/to/download'
|
||||
use standard TLS client
|
||||
-notui
|
||||
use plain text instead of TUI
|
||||
-ua string
|
||||
customize user agent (default "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0")
|
||||
-w uint
|
||||
connection waiting seconds (default 4)
|
||||
'target/to/download'
|
||||
like packs/general/latest
|
||||
All available targets:
|
||||
assets:
|
||||
all hubert rmvpe uvr5 v1 v2
|
||||
packs:
|
||||
amd:
|
||||
latest
|
||||
v2:
|
||||
20230813 20231006
|
||||
general:
|
||||
latest
|
||||
v1:
|
||||
20230331 20230416 20230428 20230508 20230513 20230516 20230717
|
||||
v2:
|
||||
20230528 20230618
|
||||
intel:
|
||||
latest
|
||||
v2:
|
||||
20230813 20231006
|
||||
nvidia:
|
||||
latest
|
||||
v2:
|
||||
20230813 20231006
|
||||
tools:
|
||||
ffmpeg
|
||||
chtts hubert rmvpe rvc uvr5 v1 v2
|
||||
```
|
||||
|
||||
## Demo Video
|
||||
|
||||
https://github.com/RVC-Project/RVC-Models-Downloader/assets/41315874/da2b5827-8b1a-45f8-a9c0-03a5618ad5f8
|
||||
https://github.com/fumiama/RVC-Models-Downloader/assets/41315874/da2b5827-8b1a-45f8-a9c0-03a5618ad5f8
|
||||
|
||||
106
README_kr.md
Normal file
106
README_kr.md
Normal file
@@ -0,0 +1,106 @@
|
||||
# RVC-Models-Downloader
|
||||
|
||||
[English](README.md) | [简体中文](README_sc.md) | 한국어
|
||||
|
||||
yaml의 batch 파일을 쉽게 다운로드 할 수 있는 도구입니다. (Hugging Face 🤗의 RVC 모델 등).
|
||||
|
||||

|
||||
|
||||
## 빠른 시작
|
||||
|
||||
### 준비
|
||||
|
||||
1. [릴리스](https://github.com/fumiama/RVC-Models-Downloader/releases) 페이지에서 프로그램을 다운로드를 받아주세요.
|
||||
2. 해당 프로그램을 RVC의 루트 디렉토리(또는 파일을 다운로드하고 싶은 위치)에 넣어주세요.
|
||||
3. 이 도구를 어디에서나 사용할 수 있도록 `PATH`에 추가할 수도 있습니다. 패키지 매니저를 통해 이 프로그램을 설치했다면 이미 `PATH`에 등록되어 있을 수 있습니다.
|
||||
|
||||
### 다운로드
|
||||
|
||||
#### RVC의 모든 자산
|
||||
|
||||
```bash
|
||||
rvcmd assets/rvc
|
||||
```
|
||||
|
||||
#### ChatTTS의 모든 자산
|
||||
|
||||
```bash
|
||||
rvcmd -w 1 assets/chtts
|
||||
```
|
||||
|
||||
### 사용자 정의 다운로드
|
||||
|
||||
#### 예시 1. hubert & rmvpe 다운로드
|
||||
|
||||
1. 다음 내용을 포함한 `cust.yaml`을 작성하고 저장합니다.
|
||||
```yaml
|
||||
BaseURL: https://huggingface.co/fumiama/RVC-Pretrained-Models/resolve/main
|
||||
Targets:
|
||||
- Refer: hubert
|
||||
- Refer: rmvpe
|
||||
```
|
||||
2. 같은 폴더에서 `rvcmd`를 실행합니다.
|
||||
```bash
|
||||
rvcmd -c cust
|
||||
```
|
||||
|
||||
#### 예시 2. 🤗의 다른 저장소 다운로드
|
||||
|
||||
> [Stable Diffusion v1-5](https://huggingface.co/runwayml/stable-diffusion-v1-5)를 예시로 사용합니다.
|
||||
|
||||
1. 다음 내용을 포함한 `cust.yaml`을 작성하고 저장합니다.
|
||||
```yaml
|
||||
BaseURL: https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main
|
||||
Targets:
|
||||
- Folder: sd1.5 # 다운로드할 폴더
|
||||
Copy: # 다운로드할 파일
|
||||
- v1-5-pruned-emaonly.ckpt
|
||||
- v1-5-pruned-emaonly.safetensors
|
||||
- Folder: sd1.5/vae # 다운로드할 폴더
|
||||
Copy: # 다운로드할 파일
|
||||
- vae/diffusion_pytorch_model.bin
|
||||
```
|
||||
|
||||
#### 예시 3. GitHub에서 릴리스 다운로드
|
||||
|
||||
> [yousa-ling-diffsinger-v1.3](https://github.com/yousa-ling-official-production/yousa-ling-diffsinger-v1/releases/tag/v1.3)를 예시로 사용합니다.
|
||||
|
||||
1. 다음 내용을 포함한 `cust.yaml`을 작성하고 저장합니다.
|
||||
```yaml
|
||||
BaseURL: https://github.com/yousa-ling-official-production/yousa-ling-diffsinger-v1/releases/download/v1.3
|
||||
Targets:
|
||||
- Folder: . # 다운로드할 폴더
|
||||
Copy: # 다운로드할 파일
|
||||
- yousaV1.3.zip
|
||||
```
|
||||
2. 같은 폴더에서 `rvcmd`를 실행합니다.
|
||||
```bash
|
||||
rvcmd -c cust
|
||||
```
|
||||
|
||||
## 전체 사용법
|
||||
|
||||
```bash
|
||||
Usage: rvcmd [-notrs] [-dns dns.yaml] 'target/to/download'
|
||||
-c use custom yaml instruction
|
||||
-dns string
|
||||
custom dns.yaml
|
||||
-f force download even file exists
|
||||
-notrs
|
||||
use standard TLS client
|
||||
-notui
|
||||
use plain text instead of TUI
|
||||
-ua string
|
||||
customize user agent (default "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0")
|
||||
-w uint
|
||||
connection waiting seconds (default 4)
|
||||
'target/to/download'
|
||||
like packs/general/latest
|
||||
All available targets:
|
||||
assets:
|
||||
chtts hubert rmvpe rvc uvr5 v1 v2
|
||||
```
|
||||
|
||||
## 데모 비디오
|
||||
|
||||
https://github.com/fumiama/RVC-Models-Downloader/assets/41315874/da2b5827-8b1a-45f8-a9c0-03a5618ad5f8
|
||||
77
README_sc.md
77
README_sc.md
@@ -1,43 +1,52 @@
|
||||
# RVC模型下载器
|
||||
[English](README.md) | 简体中文
|
||||
# RVC 模型下载器
|
||||
|
||||
[English](README.md) | 简体中文 | [한국어](README_kr.md)
|
||||
|
||||
一个能够批量下载`yaml`清单内文件的简单工具(例如 Hugging Face 🤗 中的 RVC 模型)。
|
||||
|
||||

|
||||

|
||||
|
||||
## 快速开始
|
||||
|
||||
### 准备工作
|
||||
1. 在[发布](https://github.com/RVC-Project/RVC-Models-Downloader/releases)页面下载程序。
|
||||
2. 将此程序放入RVC的根目录(或您想要下载文件的任何位置)。
|
||||
|
||||
1. 在[发布](https://github.com/fumiama/RVC-Models-Downloader/releases)页面下载程序。
|
||||
2. 将此程序放入 RVC 的根目录(或您想要下载文件的任何位置)。
|
||||
3. 您也可以将它添加到`PATH`中以便在任何地方使用此工具。如果您已经通过包管理器安装了此程序,那么它可能已经位于`PATH`。
|
||||
|
||||
### 下载
|
||||
#### RVC的所有资源文件
|
||||
|
||||
#### RVC 的所有资源文件
|
||||
|
||||
```bash
|
||||
rvcmd assets/all
|
||||
```
|
||||
#### RVC的最新通用整合包(仅限Windows)
|
||||
|
||||
#### ChatTTS 的所有资源文件
|
||||
```bash
|
||||
rvcmd packs/general/latest
|
||||
```
|
||||
#### ffmpeg工具(仅限Windows)
|
||||
```bash
|
||||
rvcmd tools/ffmpeg
|
||||
rvcmd -w 1 assets/chtts
|
||||
```
|
||||
|
||||
### 自定义下载
|
||||
#### 示例1. 下载ffmpeg工具和最新的Intel包
|
||||
|
||||
#### 示例 1. 下载 hubert 和 rmvpe
|
||||
|
||||
1. 编写并保存以下`cust.yaml`。
|
||||
```yaml
|
||||
BaseURL: https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main
|
||||
BaseURL: https://huggingface.co/fumiama/RVC-Pretrained-Models/resolve/main
|
||||
Targets:
|
||||
- Refer: tools/ffmpeg
|
||||
- Refer: packs/intel/latest
|
||||
- Refer: hubert
|
||||
- Refer: rmvpe
|
||||
```
|
||||
2. 在同一文件夹中运行`rvcmd`。
|
||||
```bash
|
||||
rvcmd -c cust
|
||||
```
|
||||
#### 示例2. 下载🤗中的其他仓库
|
||||
|
||||
#### 示例 2. 下载 🤗 中的其他仓库
|
||||
|
||||
> 以 [Stable Diffusion v1-5](https://huggingface.co/runwayml/stable-diffusion-v1-5) 为例。
|
||||
|
||||
1. 编写并保存以下`cust.yaml`。
|
||||
```yaml
|
||||
BaseURL: https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main
|
||||
@@ -50,8 +59,11 @@ rvcmd tools/ffmpeg
|
||||
Copy: # files to download
|
||||
- vae/diffusion_pytorch_model.bin
|
||||
```
|
||||
#### 示例3. 下载GitHub中的发布版本
|
||||
|
||||
#### 示例 3. 下载 GitHub 中的发布版本
|
||||
|
||||
> 以 [yousa-ling-diffsinger-v1.3](https://github.com/yousa-ling-official-production/yousa-ling-diffsinger-v1/releases/tag/v1.3) 为例。
|
||||
|
||||
1. 编写并保存以下`cust.yaml`。
|
||||
```yaml
|
||||
BaseURL: https://github.com/yousa-ling-official-production/yousa-ling-diffsinger-v1/releases/download/v1.3
|
||||
@@ -64,7 +76,9 @@ rvcmd tools/ffmpeg
|
||||
```bash
|
||||
rvcmd -c cust
|
||||
```
|
||||
|
||||
## 完整用法
|
||||
|
||||
```bash
|
||||
Usage: rvcmd [-notrs] [-dns dns.yaml] 'target/to/download'
|
||||
-c use custom yaml instruction
|
||||
@@ -75,36 +89,17 @@ Usage: rvcmd [-notrs] [-dns dns.yaml] 'target/to/download'
|
||||
use standard TLS client
|
||||
-notui
|
||||
use plain text instead of TUI
|
||||
-ua string
|
||||
customize user agent (default "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0")
|
||||
-w uint
|
||||
connection waiting seconds (default 4)
|
||||
'target/to/download'
|
||||
like packs/general/latest
|
||||
All available targets:
|
||||
assets:
|
||||
all hubert rmvpe uvr5 v1 v2
|
||||
packs:
|
||||
amd:
|
||||
latest
|
||||
v2:
|
||||
20230813 20231006
|
||||
general:
|
||||
latest
|
||||
v1:
|
||||
20230331 20230416 20230428 20230508 20230513 20230516 20230717
|
||||
v2:
|
||||
20230528 20230618
|
||||
intel:
|
||||
latest
|
||||
v2:
|
||||
20230813 20231006
|
||||
nvidia:
|
||||
latest
|
||||
v2:
|
||||
20230813 20231006
|
||||
tools:
|
||||
ffmpeg
|
||||
chtts hubert rmvpe rvc uvr5 v1 v2
|
||||
```
|
||||
|
||||
## 示例录屏
|
||||
|
||||
https://github.com/RVC-Project/RVC-Models-Downloader/assets/41315874/da2b5827-8b1a-45f8-a9c0-03a5618ad5f8
|
||||
https://github.com/fumiama/RVC-Models-Downloader/assets/41315874/da2b5827-8b1a-45f8-a9c0-03a5618ad5f8
|
||||
|
||||
17
assets/chtts.yaml
Normal file
17
assets/chtts.yaml
Normal file
@@ -0,0 +1,17 @@
|
||||
BaseURL: https://huggingface.co/2Noise/ChatTTS/resolve/main
|
||||
Targets:
|
||||
- Folder: asset
|
||||
Copy:
|
||||
- asset/Decoder.safetensors
|
||||
- asset/DVAE.safetensors
|
||||
- asset/Embed.safetensors
|
||||
- asset/Vocos.safetensors
|
||||
- Folder: asset/gpt
|
||||
Copy:
|
||||
- asset/gpt/config.json
|
||||
- asset/gpt/model.safetensors
|
||||
- Folder: asset/tokenizer
|
||||
Copy:
|
||||
- asset/tokenizer/special_tokens_map.json
|
||||
- asset/tokenizer/tokenizer_config.json
|
||||
- asset/tokenizer/tokenizer.json
|
||||
@@ -1,5 +1,5 @@
|
||||
BaseURL: https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main
|
||||
BaseURL: https://huggingface.co/fumiama/RVC-Pretrained-Models/resolve/main
|
||||
Targets:
|
||||
- Folder: assets/hubert
|
||||
Copy:
|
||||
- hubert_base.pt
|
||||
- hubert/hubert_base.pt
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
BaseURL: https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main
|
||||
BaseURL: https://huggingface.co/fumiama/RVC-Pretrained-Models/resolve/main
|
||||
Targets:
|
||||
- Folder: assets/rmvpe
|
||||
Copy:
|
||||
- rmvpe.pt
|
||||
- rmvpe.onnx
|
||||
- rmvpe/rmvpe.pt
|
||||
- rmvpe/rmvpe.onnx
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
BaseURL: https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main
|
||||
BaseURL: https://huggingface.co/fumiama/RVC-Pretrained-Models/resolve/main
|
||||
Targets:
|
||||
- Refer: hubert
|
||||
- Refer: rmvpe
|
||||
@@ -1,4 +1,4 @@
|
||||
BaseURL: https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main
|
||||
BaseURL: https://huggingface.co/fumiama/RVC-Pretrained-Models/resolve/main
|
||||
Targets:
|
||||
- Folder: assets/uvr5_weights
|
||||
Copy:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
BaseURL: https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main
|
||||
BaseURL: https://huggingface.co/fumiama/RVC-Pretrained-Models/resolve/main
|
||||
Targets:
|
||||
- Refer: hubert
|
||||
- Folder: assets/pretrained
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
BaseURL: https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main
|
||||
BaseURL: https://huggingface.co/fumiama/RVC-Pretrained-Models/resolve/main
|
||||
Targets:
|
||||
- Refer: hubert
|
||||
- Folder: assets/pretrained_v2
|
||||
|
||||
40
dns.yaml
40
dns.yaml
@@ -1,28 +1,28 @@
|
||||
Servers: {}
|
||||
Fallbacks:
|
||||
cdn-lfs.huggingface.co:
|
||||
- 3.163.218.77
|
||||
- 3.163.218.75
|
||||
- 3.163.218.60
|
||||
- 3.163.218.88
|
||||
- 2600:9000:26a9:6e00:11:f807:5180:93a1
|
||||
- 2600:9000:26a9:8400:11:f807:5180:93a1
|
||||
- 2600:9000:26a9:e400:11:f807:5180:93a1
|
||||
- 2600:9000:26a9:6400:11:f807:5180:93a1
|
||||
- 2600:9000:26a9:f400:11:f807:5180:93a1
|
||||
- 2600:9000:26a9:ec00:11:f807:5180:93a1
|
||||
- 2600:9000:26a9:6600:11:f807:5180:93a1
|
||||
- 2600:9000:26a9:fa00:11:f807:5180:93a1
|
||||
- 13.249.146.70
|
||||
- 13.249.146.79
|
||||
- 13.249.146.118
|
||||
- 13.249.146.81
|
||||
- 2600:9000:2112:1200:11:f807:5180:93a1
|
||||
- 2600:9000:2112:5600:11:f807:5180:93a1
|
||||
- 2600:9000:2112:bc00:11:f807:5180:93a1
|
||||
- 2600:9000:2112:c200:11:f807:5180:93a1
|
||||
- 2600:9000:2112:da00:11:f807:5180:93a1
|
||||
- 2600:9000:2112:7600:11:f807:5180:93a1
|
||||
- 2600:9000:2112:6600:11:f807:5180:93a1
|
||||
- 2600:9000:2112:be00:11:f807:5180:93a1
|
||||
huggingface.co:
|
||||
- 18.65.159.75
|
||||
- 18.65.159.63
|
||||
- 18.65.159.2
|
||||
- 18.65.159.20
|
||||
- 2600:9000:2218:9200:17:b174:6d00:93a1
|
||||
- 2600:9000:2218:e00:17:b174:6d00:93a1
|
||||
- 2600:9000:2218:4800:17:b174:6d00:93a1
|
||||
- 2600:9000:2218:6c00:17:b174:6d00:93a1
|
||||
- 2600:9000:2218:b200:17:b174:6d00:93a1
|
||||
- 2600:9000:2218:6800:17:b174:6d00:93a1
|
||||
- 2600:9000:2218:c800:17:b174:6d00:93a1
|
||||
- 2600:9000:2218:2e00:17:b174:6d00:93a1
|
||||
- 2600:9000:2218:2400:17:b174:6d00:93a1
|
||||
- 2600:9000:2218:5c00:17:b174:6d00:93a1
|
||||
- 2600:9000:2218:de00:17:b174:6d00:93a1
|
||||
- 2600:9000:2218:3600:17:b174:6d00:93a1
|
||||
- 2600:9000:2218:3000:17:b174:6d00:93a1
|
||||
- 2600:9000:2218:3200:17:b174:6d00:93a1
|
||||
- 2600:9000:2218:2600:17:b174:6d00:93a1
|
||||
- 2600:9000:2218:a200:17:b174:6d00:93a1
|
||||
|
||||
2
go.mod
2
go.mod
@@ -3,7 +3,7 @@ module rvcmd
|
||||
go 1.22.1
|
||||
|
||||
require (
|
||||
github.com/fumiama/terasu v0.0.0-20240420161109-c8c0088d72cd
|
||||
github.com/fumiama/terasu v0.0.0-20240710095334-67a8daa3a979
|
||||
github.com/gizak/termui/v3 v3.1.0
|
||||
github.com/pkg/errors v0.9.1
|
||||
github.com/sirupsen/logrus v1.9.3
|
||||
|
||||
4
go.sum
4
go.sum
@@ -5,8 +5,8 @@ github.com/RomiChan/syncx v0.0.0-20240418144900-b7402ffdebc7/go.mod h1:vD7Ra3Q9o
|
||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/fumiama/terasu v0.0.0-20240420161109-c8c0088d72cd h1:cEUaAUdb1uVyOfEenCMtU3lUMELTVwepn/g7UL/CK54=
|
||||
github.com/fumiama/terasu v0.0.0-20240420161109-c8c0088d72cd/go.mod h1:afchyfKAb7J/zvaENtYzjIEPVbwiEjJaow05zzT4usM=
|
||||
github.com/fumiama/terasu v0.0.0-20240710095334-67a8daa3a979 h1:1xSO4SvPfiw5TVeaS5ASFcl82rXH3jG8Obab0+JOC/8=
|
||||
github.com/fumiama/terasu v0.0.0-20240710095334-67a8daa3a979/go.mod h1:UVx8YP1jKKL1Cj+uy+OnQRM2Ih6U36Mqy9GSf7jabsI=
|
||||
github.com/gizak/termui/v3 v3.1.0 h1:ZZmVDgwHl7gR7elfKf1xc4IudXZ5qqfDh4wExk4Iajc=
|
||||
github.com/gizak/termui/v3 v3.1.0/go.mod h1:bXQEBkJpzxUAKf0+xq9MSWAvWZlE7c+aidmyFlkYTrY=
|
||||
github.com/mattn/go-runewidth v0.0.2 h1:UnlwIPBGaTZfPQ6T1IGzPI0EkYAQmT9fAEJ/poFC63o=
|
||||
|
||||
16
main.go
16
main.go
@@ -18,9 +18,7 @@ import (
|
||||
_ "rvcmd/console"
|
||||
)
|
||||
|
||||
//go:generate ./pckcfg.sh assets packs tools
|
||||
|
||||
const ua = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0"
|
||||
//go:generate ./pckcfg.sh assets
|
||||
|
||||
var (
|
||||
notui = false
|
||||
@@ -33,10 +31,13 @@ func main() {
|
||||
cust := flag.Bool("c", false, "use custom yaml instruction")
|
||||
force := flag.Bool("f", false, "force download even file exists")
|
||||
wait := flag.Uint("w", 4, "connection waiting seconds")
|
||||
ua := flag.String("ua", defua, "customize user agent")
|
||||
h := flag.Bool("h", false, "display this help")
|
||||
home := flag.String("H", ".", "download under this path")
|
||||
flag.BoolVar(¬ui, "notui", false, "use plain text instead of TUI")
|
||||
flag.Parse()
|
||||
args := flag.Args()
|
||||
if len(args) != 1 {
|
||||
if len(args) != 1 || *h {
|
||||
fmt.Println("Usage:", os.Args[0], "[-notrs] [-dns dns.yaml] 'target/to/download'")
|
||||
flag.PrintDefaults()
|
||||
fmt.Println(" 'target/to/download'\n like packs/general/latest")
|
||||
@@ -44,6 +45,11 @@ func main() {
|
||||
fmt.Println(cmdlst.String())
|
||||
return
|
||||
}
|
||||
err := os.MkdirAll(*home, 0755)
|
||||
if err != nil {
|
||||
logrus.Errorln("mkdirs of path", *home, "err:", err)
|
||||
return
|
||||
}
|
||||
if notui {
|
||||
logrus.Infoln("RVC Models Downloader start at", time.Now().Local().Format(time.DateTime+" (MST)"))
|
||||
logrus.Infof("operating system: %s, architecture: %s", runtime.GOOS, runtime.GOARCH)
|
||||
@@ -89,7 +95,7 @@ func main() {
|
||||
}
|
||||
ch := make(chan struct{})
|
||||
go func() {
|
||||
err := usercfg.download(args[0], "", time.Second*time.Duration(*wait), *cust, !*ntrs, *force)
|
||||
err := usercfg.download(args[0], "", *home, *ua, time.Second*time.Duration(*wait), *cust, !*ntrs, *force)
|
||||
ch <- struct{}{}
|
||||
if err != nil {
|
||||
errorln(err)
|
||||
|
||||
24
net.go
24
net.go
@@ -5,26 +5,27 @@ import (
|
||||
"io"
|
||||
"net/http"
|
||||
"os"
|
||||
"path"
|
||||
"runtime"
|
||||
"strconv"
|
||||
"strings"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"github.com/fumiama/terasu/http2"
|
||||
trshttp "github.com/fumiama/terasu/http"
|
||||
"github.com/pkg/errors"
|
||||
)
|
||||
|
||||
func (c *config) download(path, prefix string, waits time.Duration, usecust, usetrs, force bool) error {
|
||||
func (c *config) download(p, prefix, home, ua string, waits time.Duration, usecust, usetrs, force bool) error {
|
||||
for i, t := range c.Targets {
|
||||
if t.Refer != "" {
|
||||
refp := path[:strings.LastIndex(path, "/")+1] + t.Refer
|
||||
refp := p[:strings.LastIndex(p, "/")+1] + t.Refer
|
||||
infof("#%s%d refer to target '%s'.", prefix, i+1, refp)
|
||||
refcfg, err := readconfig(refp, usecust)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
err = refcfg.download(refp, prefix+strconv.Itoa(i+1)+".", waits, usecust, usetrs, force)
|
||||
err = refcfg.download(refp, prefix+strconv.Itoa(i+1)+".", home, ua, waits, usecust, usetrs, force)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -38,11 +39,12 @@ func (c *config) download(path, prefix string, waits time.Duration, usecust, use
|
||||
warnf("#%s%d target required Arch: %s but you are %s, skip.", prefix, i+1, t.Arch, runtime.GOARCH)
|
||||
continue
|
||||
}
|
||||
err := os.MkdirAll(t.Folder, 0755)
|
||||
homefolder := path.Join(home, t.Folder)
|
||||
err := os.MkdirAll(homefolder, 0755)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, fmt.Sprintf("#%s%d make target folder '%s'", prefix, i+1, t.Folder))
|
||||
return errors.Wrap(err, fmt.Sprintf("#%s%d make target folder '%s'", prefix, i+1, homefolder))
|
||||
}
|
||||
infof("#%s%d open target folder '%s'.", prefix, i+1, t.Folder)
|
||||
infof("#%s%d open target folder '%s'.", prefix, i+1, homefolder)
|
||||
if len(t.Copy) == 0 {
|
||||
warnf("#%s%d empty copy target.", prefix, i+1)
|
||||
continue
|
||||
@@ -57,7 +59,7 @@ func (c *config) download(path, prefix string, waits time.Duration, usecust, use
|
||||
if sleep > time.Millisecond {
|
||||
time.Sleep(sleep)
|
||||
}
|
||||
fname := t.Folder + "/" + cp[strings.LastIndex(cp, "/")+1:]
|
||||
fname := path.Join(homefolder, cp[strings.LastIndex(cp, "/")+1:])
|
||||
if !force {
|
||||
if _, err := os.Stat(fname); err == nil || os.IsExist(err) {
|
||||
warnf("#%s%d skip exist file %s", prefix, i+1, fname)
|
||||
@@ -70,10 +72,12 @@ func (c *config) download(path, prefix string, waits time.Duration, usecust, use
|
||||
return
|
||||
}
|
||||
infof("#%s%d get: %s", prefix, i+1, req.URL)
|
||||
req.Header.Add("user-agent", ua)
|
||||
if len(ua) > 0 {
|
||||
req.Header.Add("user-agent", ua)
|
||||
}
|
||||
var resp *http.Response
|
||||
if usetrs {
|
||||
resp, err = http2.DefaultClient.Do(req)
|
||||
resp, err = trshttp.DefaultClient.Do(req)
|
||||
} else {
|
||||
resp, err = http.DefaultClient.Do(req)
|
||||
}
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
BaseURL: https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main
|
||||
Targets:
|
||||
- Refer: v2/20231006
|
||||
@@ -1,7 +0,0 @@
|
||||
BaseURL: https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main
|
||||
Targets:
|
||||
- Folder: .
|
||||
Copy:
|
||||
- RVC0813AMD_Intel.7z
|
||||
OS: windows
|
||||
Arch: amd64
|
||||
@@ -1,7 +0,0 @@
|
||||
BaseURL: https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main
|
||||
Targets:
|
||||
- Folder: .
|
||||
Copy:
|
||||
- RVC1006AMD_Intel.7z
|
||||
OS: windows
|
||||
Arch: amd64
|
||||
@@ -1,7 +0,0 @@
|
||||
BaseURL: https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main
|
||||
Targets:
|
||||
- Folder: .
|
||||
Copy:
|
||||
- RVC-beta.7z
|
||||
OS: windows
|
||||
Arch: amd64
|
||||
@@ -1,7 +0,0 @@
|
||||
BaseURL: https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main
|
||||
Targets:
|
||||
- Folder: .
|
||||
Copy:
|
||||
- RVC-beta-v20230331.7z
|
||||
OS: windows
|
||||
Arch: amd64
|
||||
@@ -1,7 +0,0 @@
|
||||
BaseURL: https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main
|
||||
Targets:
|
||||
- Folder: .
|
||||
Copy:
|
||||
- RVC-beta20230416.7z
|
||||
OS: windows
|
||||
Arch: amd64
|
||||
@@ -1,7 +0,0 @@
|
||||
BaseURL: https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main
|
||||
Targets:
|
||||
- Folder: .
|
||||
Copy:
|
||||
- RVC-beta20230428.7z
|
||||
OS: windows
|
||||
Arch: amd64
|
||||
@@ -1,7 +0,0 @@
|
||||
BaseURL: https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main
|
||||
Targets:
|
||||
- Folder: .
|
||||
Copy:
|
||||
- RVC-beta20230508.7z
|
||||
OS: windows
|
||||
Arch: amd64
|
||||
@@ -1,7 +0,0 @@
|
||||
BaseURL: https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main
|
||||
Targets:
|
||||
- Folder: .
|
||||
Copy:
|
||||
- RVC-beta-20230513.7z
|
||||
OS: windows
|
||||
Arch: amd64
|
||||
@@ -1,7 +0,0 @@
|
||||
BaseURL: https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main
|
||||
Targets:
|
||||
- Folder: .
|
||||
Copy:
|
||||
- RVC-beta20230516.7z
|
||||
OS: windows
|
||||
Arch: amd64
|
||||
@@ -1,7 +0,0 @@
|
||||
BaseURL: https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main
|
||||
Targets:
|
||||
- Folder: .
|
||||
Copy:
|
||||
- RVC-beta0717.7z
|
||||
OS: windows
|
||||
Arch: amd64
|
||||
@@ -1,7 +0,0 @@
|
||||
BaseURL: https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main
|
||||
Targets:
|
||||
- Folder: .
|
||||
Copy:
|
||||
- RVC-beta-v2-0528.7z
|
||||
OS: windows
|
||||
Arch: amd64
|
||||
@@ -1,7 +0,0 @@
|
||||
BaseURL: https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main
|
||||
Targets:
|
||||
- Folder: .
|
||||
Copy:
|
||||
- RVC-beta-v2-0618.7z
|
||||
OS: windows
|
||||
Arch: amd64
|
||||
@@ -1,3 +0,0 @@
|
||||
BaseURL: https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main
|
||||
Targets:
|
||||
- Refer: v2/20231006
|
||||
@@ -1,7 +0,0 @@
|
||||
BaseURL: https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main
|
||||
Targets:
|
||||
- Folder: .
|
||||
Copy:
|
||||
- RVC0813AMD_Intel.7z
|
||||
OS: windows
|
||||
Arch: amd64
|
||||
@@ -1,7 +0,0 @@
|
||||
BaseURL: https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main
|
||||
Targets:
|
||||
- Folder: .
|
||||
Copy:
|
||||
- RVC1006AMD_Intel.7z
|
||||
OS: windows
|
||||
Arch: amd64
|
||||
@@ -1,3 +0,0 @@
|
||||
BaseURL: https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main
|
||||
Targets:
|
||||
- Refer: v2/20231006
|
||||
@@ -1,7 +0,0 @@
|
||||
BaseURL: https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main
|
||||
Targets:
|
||||
- Folder: .
|
||||
Copy:
|
||||
- RVC0813Nvidia.7z
|
||||
OS: windows
|
||||
Arch: amd64
|
||||
@@ -1,7 +0,0 @@
|
||||
BaseURL: https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main
|
||||
Targets:
|
||||
- Folder: .
|
||||
Copy:
|
||||
- RVC1006Nvidia.7z
|
||||
OS: windows
|
||||
Arch: amd64
|
||||
@@ -1,8 +0,0 @@
|
||||
BaseURL: https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main
|
||||
Targets:
|
||||
- Folder: .
|
||||
Copy:
|
||||
- ffmpeg.exe
|
||||
- ffprobe.exe
|
||||
OS: windows
|
||||
Arch: amd64
|
||||
5
ua.go
Normal file
5
ua.go
Normal file
@@ -0,0 +1,5 @@
|
||||
//go:build !windows
|
||||
|
||||
package main
|
||||
|
||||
const defua = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0"
|
||||
3
ua_windows.go
Normal file
3
ua_windows.go
Normal file
@@ -0,0 +1,3 @@
|
||||
package main
|
||||
|
||||
const defua = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0"
|
||||
Reference in New Issue
Block a user