1
0
mirror of https://github.com/fumiama/RVC-Models-Downloader.git synced 2026-01-22 07:43:47 +09:00

5 Commits

Author SHA1 Message Date
源文雨
2b6ca35a6d feat: customizable ua (#2) 2024-05-18 20:29:23 +09:00
源文雨
e6b2709814 Merge pull request #3 from pengooseDev/main
Docs: Add README_kr.md & Linting
2024-05-13 00:04:50 +09:00
pengoosedev
0bcc668b80 docs: add READ_kr link & Linting docs 2024-05-12 20:21:10 +09:00
pengoosedev
97c40d407e docs: add README_kr 2024-05-12 20:20:29 +09:00
源文雨
a37825d740 chore: update deps 2024-05-03 00:30:51 +09:00
9 changed files with 270 additions and 79 deletions

View File

@@ -1,30 +1,43 @@
# 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 🤗).
![tui demo](https://github.com/RVC-Project/RVC-Models-Downloader/assets/41315874/db577dfb-8a6d-4909-b071-9d36cc77afc6)
## Quick Start
### Preparation
1. Download the program at [Release](https://github.com/RVC-Project/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
```
#### Latest General Pack of RVC (Windows Only)
```bash
rvcmd packs/general/latest
```
#### ffmpeg Tools (Windows Only)
```bash
rvcmd tools/ffmpeg
```
### Customized Download
#### Ex.1. Download ffmpeg Tools & Latest Intel Pack
1. Write and save the following `cust.yaml`.
```yaml
BaseURL: https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main
@@ -36,8 +49,11 @@ rvcmd tools/ffmpeg
```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 +66,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 +83,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,6 +96,8 @@ 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
-w uint
connection waiting seconds (default 4)
'target/to/download'
@@ -104,6 +127,7 @@ All available targets:
tools:
ffmpeg
```
## Demo Video
https://github.com/RVC-Project/RVC-Models-Downloader/assets/41315874/da2b5827-8b1a-45f8-a9c0-03a5618ad5f8

135
README_kr.md Normal file
View File

@@ -0,0 +1,135 @@
# RVC-Models-Downloader
[English](README.md) | [简体中文](README_sc.md) | 한국어
yaml의 batch 파일을 쉽게 다운로드 할 수 있는 도구입니다. (Hugging Face 🤗의 RVC 모델 등).
![tui demo](https://github.com/RVC-Project/RVC-Models-Downloader/assets/41315874/db577dfb-8a6d-4909-b071-9d36cc77afc6)
## 빠른 시작
### 준비
1. [릴리스](https://github.com/RVC-Project/RVC-Models-Downloader/releases) 페이지에서 프로그램을 다운로드를 받아주세요.
2. 해당 프로그램을 RVC의 루트 디렉토리(또는 파일을 다운로드하고 싶은 위치)에 넣어주세요.
3. 이 도구를 어디에서나 사용할 수 있도록 `PATH`에 추가할 수도 있습니다. 패키지 매니저를 통해 이 프로그램을 설치했다면 이미 `PATH`에 등록되어 있을 수 있습니다.
### 다운로드
#### RVC의 모든 자산
```bash
rvcmd assets/all
```
#### RVC의 최신 일반 팩 (Windows 전용)
```bash
rvcmd packs/general/latest
```
#### ffmpeg 도구 (Windows 전용)
```bash
rvcmd tools/ffmpeg
```
### 사용자 정의 다운로드
#### 예시 1. ffmpeg 도구 & 최신 인텔 팩 다운로드
1. 다음 내용을 포함한 `cust.yaml`을 작성하고 저장합니다.
```yaml
BaseURL: https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main
Targets:
- Refer: tools/ffmpeg
- Refer: packs/intel/latest
```
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
-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
```
## 데모 비디오
https://github.com/RVC-Project/RVC-Models-Downloader/assets/41315874/da2b5827-8b1a-45f8-a9c0-03a5618ad5f8

View File

@@ -1,30 +1,43 @@
# RVC 模型下载器
[English](README.md) | 简体中文
[English](README.md) | 简体中文 | [한국어](README_kr.md)
一个能够批量下载`yaml`清单内文件的简单工具(例如 Hugging Face 🤗 中的 RVC 模型)。
![tui demo](https://github.com/RVC-Project/RVC-Models-Downloader/assets/41315874/db577dfb-8a6d-4909-b071-9d36cc77afc6)
## 快速开始
### 准备工作
1. 在[发布](https://github.com/RVC-Project/RVC-Models-Downloader/releases)页面下载程序。
2. 将此程序放入 RVC 的根目录(或您想要下载文件的任何位置)。
3. 您也可以将它添加到`PATH`中以便在任何地方使用此工具。如果您已经通过包管理器安装了此程序,那么它可能已经位于`PATH`
### 下载
#### RVC 的所有资源文件
```bash
rvcmd assets/all
```
#### RVC 的最新通用整合包(仅限 Windows
```bash
rvcmd packs/general/latest
```
#### ffmpeg 工具(仅限 Windows
```bash
rvcmd tools/ffmpeg
```
### 自定义下载
#### 示例 1. 下载 ffmpeg 工具和最新的 Intel 包
1. 编写并保存以下`cust.yaml`
```yaml
BaseURL: https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main
@@ -36,8 +49,11 @@ rvcmd tools/ffmpeg
```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
@@ -50,8 +66,11 @@ rvcmd tools/ffmpeg
Copy: # files to download
- 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
@@ -64,7 +83,9 @@ rvcmd tools/ffmpeg
```bash
rvcmd -c cust
```
## 完整用法
```bash
Usage: rvcmd [-notrs] [-dns dns.yaml] 'target/to/download'
-c use custom yaml instruction
@@ -75,6 +96,8 @@ 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
-w uint
connection waiting seconds (default 4)
'target/to/download'

2
go.mod
View File

@@ -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-20240502091919-c887e26289a8
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
View File

@@ -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-20240502091919-c887e26289a8 h1:mVOgOhlrF0ra8/BkwVA71ev/1HkzAgDn8gWU2UNbDU8=
github.com/fumiama/terasu v0.0.0-20240502091919-c887e26289a8/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=

View File

@@ -20,8 +20,6 @@ import (
//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"
var (
notui = false
sc screen
@@ -33,6 +31,7 @@ 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")
flag.BoolVar(&notui, "notui", false, "use plain text instead of TUI")
flag.Parse()
args := flag.Args()
@@ -89,7 +88,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], "", *ua, time.Second*time.Duration(*wait), *cust, !*ntrs, *force)
ch <- struct{}{}
if err != nil {
errorln(err)

6
net.go
View File

@@ -15,7 +15,7 @@ import (
"github.com/pkg/errors"
)
func (c *config) download(path, prefix string, waits time.Duration, usecust, usetrs, force bool) error {
func (c *config) download(path, prefix, 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
@@ -24,7 +24,7 @@ func (c *config) download(path, prefix string, waits time.Duration, usecust, use
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)+".", ua, waits, usecust, usetrs, force)
if err != nil {
return err
}
@@ -70,7 +70,9 @@ func (c *config) download(path, prefix string, waits time.Duration, usecust, use
return
}
infof("#%s%d get: %s", prefix, i+1, req.URL)
if len(ua) > 0 {
req.Header.Add("user-agent", ua)
}
var resp *http.Response
if usetrs {
resp, err = http2.DefaultClient.Do(req)

5
ua.go Normal file
View 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
View 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"