xtts-webui๋Š” ์ž์—ฐ์Šค๋Ÿฌ์šด ์Œ์„ฑ์ƒ์„ฑ xtts๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฝ๊ฒŒ ๋งŒ๋“  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋‹ค.

https://github.com/daswer123/xtts-webui.git

 

GitHub - daswer123/xtts-webui: Webui for using XTTS and for finetuning it

Webui for using XTTS and for finetuning it. Contribute to daswer123/xtts-webui development by creating an account on GitHub.

github.com

 

*  ์œˆ๋„์šฐ์— ์„ค์น˜ ํ•˜๊ธฐ

- ๊นƒํ—™์— ์„ค๋ช…๋œ๋Œ€๋กœ ์•„์ฃผ ๊ฐ„๋‹จํ•˜๊ฒŒ ์„ค์น˜๋œ๋‹ค. ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฐฐ์น˜ํŒŒ์ผ์„ ์ž˜ ๋งŒ๋“ค์—ˆ๋‹ค.

1. git clone https://github.com/daswer123/xtts-webui.git xtts
2. cd xtts
3. 'install.bat' ์‹คํ–‰
- ํ•œ์ฐธ์„ ์„ค์น˜ํ•œ๋‹ค.
4. 'start_xtts_webui.bat' ์‹คํ–‰
๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํ•œ์ฐธ์„ ์„ค์น˜ํ•œ๋‹ค.
5. ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ์‹คํ–‰๋œ๋‹ค. ์›นํŽ˜์ด์ง€๊ฐ€ ๋œฌ๋‹ค.

 

 

์‚ฌ์šฉ๋ฒ•์€ ๋‹ค์Œ ํฌ์ŠคํŒ…์— ์ •๋ฆฌํ•œ๋‹ค.

์˜ฌํ•ด ์ดˆ ์ฒ˜์Œ ํ…Œ๋ฌด์—์„œ ์‹คํ—˜์‚ผ์•„ ๊ฐ€๋ฐฉ๊ณผ ๋ฌด์„  ์ด์–ดํฐ์„ ์ƒ€๋‹ค.

 

 

๋ชจ๋‹ˆํ„ฐ ํ™”๋ฉด์œผ๋กœ๋Š” ๊ทธ๋Ÿด๋“ฏํ–ˆ์œผ๋‚˜ ์‹ค์ œ๋กœ ๋ฐ›์•„๋ณด๋‹ˆ ์žฌ์งˆ์ด ์ด์ƒํ–ˆ๋‹ค. ๋ถ€์Šค๋Ÿญ ๊ฑฐ๋ฆฌ๋Š” ๋น„๋‹๊ฐ™์•˜๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋„ˆ๋ฌด๋‚˜ ๊ฐ€๋ฒผ์› ๋‹ค. ๊ทธ๋ƒฅ ๋ณด๊ธฐ์—๋„ ์‹ผํ‹ฐ ์ž‘๋ ฌ์ด์—ˆ๋‹ค. ์‹ค์ œ๋กœ๋„ ์ŒŒ์œผ๋‹ˆ ํ• ๋ง์€ ์—†์—ˆ๋‹ค.

๋ฌด์„ ์ด์–ดํฐ์€ ์ถฉ์ „๋‹จ์ž๊ฐ€ micro usb ์˜›๋‚  ๋ฐฉ์‹์ด์—ˆ๋‹ค. ์†Œ๋ฆฌ๋Š” ๋‚˜์˜์ง€ ์•Š์•˜์ง€๋งŒ ๊ธฐ๋Šฅ์— ๋ฌธ์ œ๊ฐ€ ๋งŽ์•˜๋‹ค. ์ด์–ดํฐ์„ ๊ท€์—์„œ ์ œ๊ฑฐํ•˜๊ณ  ์ผ€์ด์Šค์— ๋„ฃ์–ด๋„ ์Œ์•…์ด ๊ณ„์† ํ˜๋Ÿฌ๋‚˜์™”๋‹ค. ํœด๋Œ€ํฐ๊ณผ ์ด์–ดํฐ์˜ ์—ฐ๊ฒฐ์ด ์ž๋™์œผ๋กœ ๋Š์–ด์ง€์ง€ ์•Š์•˜๋‹ค. ํœด๋Œ€ํฐ์—์„œ ์ง์ ‘ ์Œ์•…์„ ๋ฉˆ์ถฐ์•ผ๋งŒ ์ด์–ดํฐ์—์„œ ๋‚˜์˜ค๋˜ ์†Œ๋ฆฌ๊ฐ€ ๋ฉˆ์ท„๋‹ค. ํœด๋Œ€ํฐ์—์„œ ๋ธ”๋ฃจํˆฌ์Šค ์ ‘์†์„ ์ง์ ‘ ๋Š์–ด์ค˜์•ผ๋งŒ ํ–ˆ๋‹ค.

 

ํ•œ๋งˆ๋””๋กœ ์“ฐ๋ ˆ๊ธฐ์˜€๋‹ค.

 

๋‹น์‹œ ํ…Œ๋ฌด์—์„œ ๊ฒฐ์ œ ์ •๋ณด๋ฅผ ๋นผ๊ฐ„๋‹ค๋Š” ์†Œ๋ฌธ๋„ ๋‚˜๋Œ์•˜๋‹ค. ๋ฐ”๋กœ ์นด๋“œ์ •๋ณด๋ฅผ ์‚ญ์ œํ•˜๊ณ  ์•ฑ๋„ ์ง€์› ๋‹ค.

๋‚ด๊ฐ€ ๋‹ค์‹œ ํ…Œ๋ฌด๋กœ ๋Œ์•„์˜จ๊ฑด ์–ด์ด์—†๊ฒŒ๋„ ์นจ์ฐฉ๋งจ์˜ ํ…Œ๋ฌด๊นก ์˜์ƒ ๋•Œ๋ฌธ์ด์—ˆ๋‹ค.

 

๊ตฌ๋…ํ•˜์ง€๋„ ์•Š๋Š” ์‚ฌ๋žŒ์˜ ์˜์ƒ์ด ์ถ”์ฒœ์œผ๋กœ ๋œฌ ์ด์œ ๋Š” ์•„๋งˆ๋„ ์ธ๊ธฐ๊ธ‰์ƒ์Šน ๋™์˜์ƒ์ด์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด๊ฒ ์ง€๋งŒ ์–ด์จŒ๋“  ์ € ์˜์ƒ์„ ๋ณด๊ณ  ํ…Œ๋ฌด์—์„œ์„œ ๋ฌด์—‡์„ ์‚ฌ๊ณ  ๋ฌด์—‡์„ ์‚ฌ์ง€ ๋ง์•„์•ผํ• ์ง€ ๊ฐ์„ ์žก์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

 

ํ…Œ๋ฌด์—์„œ ์‚ฌ์ง€ ๋ง์•„์•ผ ํ• ๊ฒƒ - ์‹ ๋ฐœ์ด๋‚˜ ๊ฐ€๋ฐฉ์ฒ˜๋Ÿผ ๊ธฐ๋Šฅ๊ณผ ํ’ˆ์งˆ์ด ์ค‘์š”ํ•œ ์ œํ’ˆ๋“ค, ํ™”ํ•™์  ์ž‘์šฉ์ด ๋“ค์–ด๊ฐ€๋Š” ๋ชจ๋“  ์ œํ’ˆ๋“ค

 

ํ…Œ๋ฌด์—์„œ ์‚ฌ๋ฉด ๊ดœ์ฐฎ์€ ๊ฒƒ - ์ผ๋ฐ˜ ์˜๋ฅ˜๋‚˜ ๋ชจ์ž์ฒ˜๋Ÿผ ํ•œ๋ฒˆ ๋นจ๊ณ  ์ž…์œผ๋ฉด ๋˜๋Š” ์˜ท๋“ค, ํ•œ๊ตญ์—์„œ ์‚ฌ๊ธฐ ์–ด๋ ค์šด ๋””์ž์ธ์˜ ์˜ท๋“ค, ์˜จ๊ฐ– ์ข…๋ฅ˜์˜ ์ผ€์ด์Šค๋‚˜ ์‹œ๊ณ„์ค„, ๋ฒจํŠธ, ์Šคํ‹ฐ์ปค ๊ฐ™์€ ๊ฐ’์‹ผ ์•…์„ธ์„œ๋ฆฌ๋“ค,

 

ํ…Œ๋ฌด์—์„œ ์‚ฌ๋ฉด ์•„์ฃผ ์ข‹์€ ๊ฒƒ - ํ•œ๊ตญ์—์„œ ์‚ฌ๊ธฐ ์–ด๋ ต๊ฑฐ๋‚˜ ์‚ฌ๋ฉด ๋ฐ”๊ฐ€์ง€ ์“ฐ๋Š” ์ „์ž์ œํ’ˆ๋“ค, ์ŠคํŽ™์ด ํ™•์‹คํžˆ ์ •ํ•ด์ ธ์žˆ๋Š” ๊ฐ’์‹ผ ์ „์ž์ œํ’ˆ๋“ค. ์˜ˆ๋ฅผ๋“ค์–ด, sd card adapter, hdmi dummy(์ด 2๊ฐœ๋Š” ํ•œ๊ตญ์—์„œ ๋„์ €ํžˆ ์‚ด์ˆ˜๊ฐ€ ์—†์—ˆ๋‹ค), ์ž…๋ฌธ์ž์šฉ ๋“œ๋ก ์ด๋‚˜ rc car, ์Šค๋งˆํŠธ ์‹œ๊ณ„(์ด 3๊ฐ€์ง€๋Š” ์ค‘๊ตญ์ด ์›”๋“œ ๋„˜๋ฒ„์›์ธ๊ฑฐ ๊ฐ™๋‹ค), ์˜จ๋„/์Šต๋„๊ณ„, dp cable์ฒ˜๋Ÿผ ์ŠคํŽ™์ด ํ™•์‹คํ•œ ์ „์ž์ œํ’ˆ๋“ค

 

์‚ด๋•Œ ์ฃผ์˜ํ•ดํ•  ๊ฒƒ๋“ค - ์žฌ์งˆ๊ณผ ์ŠคํŽ™. ๊ฐœ์ธ์ ์œผ๋กœ ๋ฉด์„ ์ข‹์•„ํ•˜๋Š”๋ฐ ์˜๋ฅ˜ ์ค‘์— ์ƒ๋‹น์ˆ˜๊ฐ€ ์•„๋ž˜์™€ ๊ฐ™์ด ํด๋ฆฌ์—์Šคํ…Œ๋ฅด์˜€๋‹ค. ๋””์ž์ธ๋งŒ ๋ณด๊ณ  ์ด๋ป์„œ ์ƒ€๋‹ค๊ฐ€ ๋‚˜์ค‘์— ํ›„ํšŒํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ฆฌ๋ทฐ๋ฅผ ๋ณด๋ฉด ์ด ์žฌ์งˆ์„ ์ข‹์•„ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค๋„ ๊ฝค ์žˆ๋Š”๊ฑฐ ๊ฐ™๊ธดํ•˜๋‹ค.

์ŠคํŽ™๋„ ์œ ์˜ํ•ด์„œ ๋ด์•ผํ•œ๋‹ค. ์ถฉ์ „๋ฐฉ์‹์ด ์–ด๋–ค์ง€, ๋ฐฐํ„ฐ๋ฆฌ๊ฐ€ ์–ผ๋งˆ๋‚˜ ๊ฐ€๋Š”์ง€ ๋“ฑ๋“ฑ ๋””ํ…Œ์ผํ•œ ์‚ฌํ•ญ๋“ค์ด ๋ณด์ด์ง€ ์•Š๋Š”๋‹ค๋ฉด ์ผ๋‹จ ์˜์‹ฌ์„ ํ•ด์•ผํ•œ๋‹ค. ์˜›๋‚  ๊ทœ๊ฒฉ์ผ์ˆ˜์žˆ๋‹ค.

 

 

> ๊ฒฐ๋ก 

1. ๊ฐ€๊ฒฉ์„ ์ฟ ํŒก๊ณผ ๋น„๊ตํ•ด๋„ ์–ด๋–ค๊ฑด ์ ˆ๋ฐ˜์ด๊ณ  ์ƒ๋‹น์ˆ˜๋Š” 1/4 ๊ฐ€๊ฒฉ์ด๋‹ค.

2. ํ’ˆ์งˆ์€ ์ฟ ํŒก๊ณผ ๋˜์ด๋˜์ดํ•˜๋‹ค. ๋ฐฐ์†ก๊ธฐ๊ฐ„๋งŒ ํ•œ~์ฐธ ์ฐจ์ด๋‚  ๋ฟ์ด๋‹ค.

3. ๋‚˜์ค‘์—๋ณด๋ฉด ๋‚ด๊ฐ€ ์‚ฐ ์ œํ’ˆ์˜ ๊ฐ€๊ฒฉ์ด ์ ˆ๋ฐ˜์œผ๋กœ ๋–จ์–ด์ ธ ์žˆ์„ ๋•Œ๊ฐ€ ์žˆ๋Š”๋ฐ ์ด๋•Œ๋Š” ๊ฐ€๊ฒฉ ์žฌ์กฐ์ • ์‹ ์ฒญํ•˜๋ฉด ๋œ๋‹ค.

- ์ด๊ฒŒ ์ œ์ผ ์‹ ๊ธฐํ–ˆ๋‹ค. ๊ตฌ์ž…ํ•œ์ง€ ๊ฝค ์˜ค๋žœ ์‹œ๊ฐ„์ด ์ง€๋‚œ ์ œํ’ˆ๋„ ๊ฐ€๊ฒฉ์กฐ์ •์ด ๊ฐ€๋Šฅํ–ˆ๋‹ค.

- ๋‚ด์ฃผ๋ฌธ์— ๋“ค์–ด๊ฐ€๋ฉด ์•„๋ž˜ ์Šค์ƒท์ฒ˜๋Ÿผ '๊ฐ€๊ฒฉ์กฐ์ •' ๋ฒ„ํŠผ์ด ๋ณด์ผ๊ฒƒ์ด๋‹ค. ์ด๊ฒŒ ๋ญ”๊ฐ€ ์‹ถ์–ด ๋ˆŒ๋Ÿฌ๋ดค๋”๋‹ˆ ๋‚ด๊ฐ€ ๊ตฌ๋งคํ•œ ๊ฐ€๊ฒฉ๊ณผ ํ˜„์žฌ ํŒ๋งค์ค‘์ธ ๊ฐ€๊ฒฉ๊ณผ ๋น„๊ตํ•ด์„œ ๊ทธ ์ฐจ์ต๋งŒํผ ๋ฐ”๋กœ ํฌ๋ ˆ๋”ง์œผ๋กœ ๋ณด์ƒํ•ด์ฃผ์—ˆ๋‹ค. ๋‹ค๋งŒ ํ•œ๋ฒˆ๋งŒ ๋œ๋‹คใ…‹

- ์ด๊ฑด ์ •๋ง '์‹ ๋ขฐ'๋ฅผ ์ฃผ๋Š” ๊ธฐ๋Šฅ์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ์‚ฌ์—…์ ์œผ๋กœ๋‚˜ ๊ฐœ๋ฐœ์ ์œผ๋กœ๋‚˜ ๋„์ž…ํ•˜๊ธฐ ์–ด๋ ค์šด ๊ธฐ๋Šฅ์ธ๋ฐ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ž˜ ์ ์šฉ๋˜์–ด์žˆ๋‹ค.

4. ํ˜น์‹œ๋‚˜ํ•ด์„œ ๊ตฌ์ž… ํ›„ ๋ฐ”๋กœ ํ™˜๋ถˆ๋„ ํ•ด๋ณด๊ณ  3์ผ ํ›„ ํ™˜๋ถˆ๋„ ํ•ด๋ดค๋Š”๋ฐ ๋ชจ๋‘ ์ž˜ ๋˜์—ˆ๋‹ค.

5. ํ†ต๊ด€์— ๊ณ„์† ๋ฌถ์—ฌ์žˆ๊ธฐ์— as์ƒ๋‹ด๋„ ํ•ด๋ณด์•˜๋Š”๋ฐ ๊ฝค ํ™•์‹คํ•˜๊ฒŒ ์ผ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์คฌ๋‹ค. ๋‚ด ๋ฌผ๊ฑด์ด ํ˜„์žฌ ์–ด๋””์— ์žˆ๊ณ  ์–ธ์ œ ์ฒ˜๋ฆฌ๋ ์ง€๋„ ์•Œ๋ ค์ฃผ์—ˆ๋‹ค.

6. ํ…Œ๋ฌด์—์„œ ์ „์„ธ๊ณ„์ธ๋“ค์˜ ๋ฆฌ๋ทฐ๋ฅผ ์ฝ๋Š”๊ฒƒ๋„ ๊ฝค ์žฌ๋ฏธ์žˆ๋‹ค.

7. ๋ชจ๋“  ์ œํ’ˆ์ด ๊ตฌ๊ฒจ์ ธ์„œ ์˜จ๋‹ค. ๊ตฌ๊ฒจ์ง€๋ฉด ์•ˆ๋˜๋Š” ๋ฌผ๊ฑด์€ ์‚ฌ์ง€ ์•Š๋Š”๋‹ค.

8. ๊ฐ€์žฅ ๋งŒ์กฑ์Šค๋Ÿฌ์› ๋˜ ๋ฌผ๊ฑด์€ ๋“œ๋ก ๊ณผ ์Šค๋งˆํŠธ ์›Œ์น˜์˜€๋‹ค. ๋‘˜ ํ•ฉ์ณ๋„ 3๋งŒ์› ์ฆˆ์Œ์ด์—ˆ๋Š”๋ฐ ์„ฑ๋Šฅ์€ ์ถฉ๊ฒฉ์ ์œผ๋กœ ์ข‹์•˜๋‹ค. 

9. ๋‚ด ๊ฐœ์ธ์ •๋ณด์•ผ ๋ญ, ์ด๋ฏธ ๋Œ€ํ•œ๋ฏผ๊ตญ์˜ ๋Œ€๊ธฐ์—…๋“ค์ด ์ „์„ธ๊ณ„์— ๊ณต์œ ํ•œ ์ •๋ณด์ด๋‹ˆ ์ด์— ๋Œ€ํ•ด์„  ๋งˆ์Œ์„ ๋น„์› ๋‹ค.

- ์ง€๋‚œ๋ฒˆ ํ‹ฐ๋ชฌ์—์„œ ์ „๊ธฐ์ž์ „๊ฑฐ ์‚ฌ๊ธฐ๋ฅผ ๋‹นํ•œ ํ›„ 'ํŒ๋งค์ž๊ฐ€ ์—ฐ๋ฝ์ด ๋˜์ง€ ์•Š์•„ ํ™˜๋ถˆ ๋ถˆ๊ฐ€'๋ผ๋Š” ํฌ๋Œ€์˜ ํ•‘๊ณ„๋ฅผ ๋“ฃ๊ณ ๋Š” ์˜ค๋งŒ์ •์ด ๋–จ์–ด์กŒ๋‹ค. ์‹ฌ์ง€์–ด ์†Œ๋น„์ž๋ณดํ˜ธ์› ๋‹ด๋‹น์ž๋ถ„๋„ ๋˜‘๊ฐ™์ด ์ด์•ผ๊ธฐํ–ˆ๋‹ค. ํ‹ฐ๋ชฌ์€ ํ•ญ์ƒ ์ด๋ ‡๊ฒŒ ๋‚˜์˜ค๋Š”๋ฐ ๋ฒ•์ ์œผ๋กœ ์–ด๋–ป๊ฒŒ ํ• ์ˆ˜๊ฐ€ ์—†๋‹ค๊ณ . ์—ํœด, ์ ์–ด๋„ ํ‹ฐ๋ชฌ๋ณด๋‹จ ํ…Œ๋ฌด๊ฐ€ ํ›จ์”ฌ ๋” ์‹ ๋ขฐ๊ฐ€ ๊ฐ„๋‹ค.

 

์•ž์œผ๋กœ๋„ ๊ณ„์† ์‚ฌ์šฉํ• ๊ฑฐ๋‹ค. ๋ชจ๋‘๊ฐ€ ์š•ํ•ด๋„ ๋‚˜๋Š” ํ…Œ๋ฌด๊ฐ€ ์ข‹๋‹ค.

 

โ— ๋™๊ธฐ

AI์ž‘์—…์„ ํ•˜๋‹ค๋ณด๋ฉด 4090์˜ 24GB vram์ด ๊ฐ„๋‹น๊ฐ„๋‹น ํ• ๋•Œ๊ฐ€ ์žˆ๋‹ค.

๋ณดํ†ต llama2 13b ๋ชจ๋ธ์ด๋‚˜ Mixtral์˜ 8x7B ๋ชจ๋ธ์€ ์–‘์žํ™” ์‹œ์ผœ ๋Œ๋ฆด ์ˆ˜ ์žˆ์ง€๋งŒ max length ์กฐ์ ˆ์„ ์„ฌ์„ธ?ํ•˜๊ฒŒ ํ•ด์•ผํ•œ๋‹ค.

 

yanolja-eeve์˜ ๊ฒฝ์šฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋‹ค. ๋ฉ”๋ชจ๋ฆฌ 100๋ฉ”๊ฐ€ ์ฐจ์ด๋กœ ๊ฐ€๋”์”ฉ out of memory ๋ฉ”์‹œ์ง€๋ฅผ ํ† ํ•ด๋‚ผ๋•Œ๊ฐ€ ์žˆ๋‹ค.

์ด๋•Œ๋Š” ๋ฉ”๋ชจ๋ฆฌ 100, 200๋ฉ”๊ฐ€๋„ ์†Œ์ค‘ํ•œ๋ฐ ์ด ๊ฒฝ์šฐ ๋ชจ๋‹ˆํ„ฐ ์ถœ๋ ฅ์— ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ๋งŒ ์ค„์—ฌ๋„ ํฐ ๋„์›€์ด ๋œ๋‹ค. ๋‚ด ๋ชจ๋‹ˆํ„ฐ์˜ ๊ฒฝ์šฐ ๋Œ€๋žต 300๋ฉ”๊ฐ€ ์ด์ƒ์„ ๋จน๋Š”๋‹ค. 

 

๊ทธ๋ž˜์„œ ์ปดํ“จํ„ฐ๋ฅผ ์•ž์— ๋‘๊ณ ๋„ ์ง์ ‘ ์ ‘์†ํ•˜์ง€ ์•Š๊ณ 

hdmi ๋”๋ฏธ ํ”Œ๋Ÿฌ๊ทธ๋ฅผ ์ด์šฉํ•œ ๊ฐ€์ƒ์˜ ๋ชจ๋‹ˆํ„ฐ์— ssh๋กœ ์›๊ฒฉ์ ‘์†ํ•ด vram์„ ์•„๊ปด์“ฐ๊ธฐ๋„ ํ–ˆ๋‹ค.

 

์ž ์‹œ๋งˆ๋‚˜ ๋‚ด์žฅ ๊ทธ๋ž˜ํ”ฝ์„ ์ด์šฉํ•˜์ž๋Š” ์ƒ๊ฐ๋„ ํ–ˆ์—ˆ์ง€๋งŒ

๋‹น์‹œ hp์—์„œ ๊ตฌ์ž…ํ•œ ์˜ค๋ฉ˜pc์˜ ๋‚ด๋ถ€ ๋ชจ๋‹ˆํ„ฐ dp๋‹จ์ž๋Š” ์•„์˜ˆ ๋ง‰ํ˜€์„œ ์ถœ๊ณ ๊ฐ€ ๋˜์–ด ์ด๊ฑธ ๋นผ๋‚ด๋Š” ๊ฒƒ๋„ ๊ท€์ฐฎ์€ ์ผ์ด์–ด์„œ ๋ฏธ๋ฃจ๊ณ  ์žˆ์—ˆ๋‹ค.

 

ํ•˜์ง€๋งŒ ์š”์ƒˆ ๋‚ ์”จ๊ฐ€ ๋”์›Œ์ ธ ์‚ฌ๋ฌด์‹ค ์ฐฝ๋ฌธ์— ๋…ธ์ถœ๋˜์–ด ์žˆ๋Š” ๋ฐ”๊นฅ ํŒŒํ‹ฐ์…˜์€ ์‚ฌ์šฉํ•˜๊ธฐ ํž˜๋“ค์–ด์กŒ๋‹ค. ์—ฌ๊ธฐ๋Š” ์—์–ด์ปจ ๋ฐ”๋žŒ๋„ ๋ง‰ํ˜€์žˆ๋‹ค. ์„ ํ’๊ธฐ ๋งŒ์œผ๋ก  4090์—์„œ ๋ฟœ์–ด๋‚ด๋Š” ์—ด๊ธฐ๋ฅผ ๊ฐ๋‹นํ• ์ˆ˜ ์—†์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋Œ€๋Œ€์ ์œผ๋กœ ์‚ฌ๋ฌด์‹ค ๊ตฌ์กฐ๋ฅผ ๋ฐ”๊พธ๋ฉฐ ์ด๋ฒˆ ๊ธฐํšŒ์— ๋ฏธ๋ค„๋’€๋˜ ์ž‘์—…์„ ์ง„ํ–‰ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.

 

โ— ์ƒํƒœ

1. ์„œ๋ฒ„PC์—์„œ ํ•ญ์ƒ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋‹ˆํ„ฐ๋ฅผ 4090 ๋ฐ์Šคํฌํƒ‘์—์„œ๋„ ๋ณด์กฐ ๋ชจ๋‹ˆํ„ฐ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ๋งฅ๋ถ์—์„œ๋„ ๋ณด์กฐ๋ชจ๋‹ˆํ„ฐ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ, ์ฆ‰ 3๊ฐœ์˜ ์ปดํ“จํ„ฐ๊ฐ€ ํ•˜๋‚˜์˜ ๋ชจ๋‹ˆํ„ฐ๋ฅผ ๋ชจ๋‘ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๊ตฌ์กฐ๋ฅผ ์—ฎ์—ˆ๋‹ค. ์–ด์ฐจํ”ผ ์„œ๋ฒ„๋Š” ๋ชจ๋‹ˆํ„ฐ๊ฐ€ ๊ฑฐ์˜ ํ•„์š”ํ•˜์ง€ ์•Š๊ณ  ํ•„์š”ํ•˜๋‹ค ํ•ด๋„ ์›๊ฒฉ์œผ๋กœ ๋ถ™์–ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ํ›จ์”ฌ ๋” ๋งŽ๊ธฐ ๋•Œ๋ฌธ์ด์—ˆ๋‹ค.

2. 4090pc์—๋Š” ์œˆ๋„์šฐ์™€ ์šฐ๋ถ„ํˆฌ๊ฐ€ ํ•จ๊ป˜ ๊น”๋ ค ์žˆ๊ณ  ์ฒ˜์Œ ๋ถ€ํŒ…์‹œ grub์—์„œ os๋ฅผ ์„ ํƒํ•ด ์‹คํ–‰ํ•œ๋‹ค.

 

3. 4090 PC์˜ ๊ฒฝ์šฐ. ์ด์ œ๊นŒ์ง„ 5120x1440 ๋ชจ๋‹ˆํ„ฐ ํ•˜๋‚˜๋งŒ ์ผ๋Š”๋ฐ ๋ณด์กฐ ๋ชจ๋‹ˆํ„ฐ ํ•˜๋‚˜๊ฐ€ ๋” ์ƒ๊ธฐ๋‹ˆ ์ด๋ ‡๊ฒŒ ํŽธํ•  ์ˆ˜๊ฐ€ ์—†์—ˆ๋‹ค.  stable diffusion์€ ์œˆ๋„์šฐ ๊ธฐ๋ฐ˜์œผ๋กœ ๋Œ๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— - ์œˆ๋„์šฐ๊ฐ€ ๋ฐ”๋กœ ํŽธ์ง‘ํ•  ์ˆ˜ ์žˆ์–ด ์šฐ๋ถ„ํˆฌ ํ™˜๊ฒฝ๋ณด๋‹ค ํ›จ์”ฌ ๋‚ซ๋‹ค - ๊ทธ๋Ÿฐ๋ฐ ์œˆ๋„์šฐ๋Š” ๋‚ด์žฅ ๊ทธ๋ž˜ํ”ฝ ์นด๋“œ๋ฅผ ์ž๋™์œผ๋กœ ์ธ์‹ํ•˜์ง€๋งŒ ์šฐ๋ถ„ํˆฌ๋Š” ๋‚ด์žฅ ๊ทธ๋ž˜ํ”ฝ ์นด๋“œ๋ฅผ ์ธ์‹ํ•˜์ง€ ๋ชปํ–ˆ๋‹ค.

4. ๋Œ€๋ถ€๋ถ„์˜ ai๊ฐœ๋ฐœ์ด๋‚˜ llm์€ ๋ชจ๋‘ ์šฐ๋ถ„ํˆฌ ๊ธฐ๋ฐ˜์œผ๋กœ ๋Œ๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Š” ์‹ฌ๊ฐํ•œ ๋ฌธ์ œ์˜€๋‹ค.

 

 

โ— ํ•ด๊ฒฐ

์•„๋ž˜ ๋งํฌ๋ฅผ ํ†ตํ•ด ํ•ด๊ฒฐํ–ˆ๋‹ค.

 

Ubuntu, intel ๋‚ด์žฅ ๊ทธ๋ž˜ํ”ฝ ์‚ฌ์šฉํ•˜๊ธฐ

nvidia ์™ธ์žฅ ๊ทธ๋ž˜ํ”ฝ์นด๋“œ๊ฐ€ ๋‹ฌ๋ฆฐ Ubuntu 20.04 ์—์„œ ์ž‘์—… ์„ ํ–‰์กฐ๊ฑด: 1. ๋‚ด์žฅ ๊ทธ๋ž˜ํ”ฝ์ด ํฌํ•จ๋œ intel CPU ์‚ฌ์šฉ 2. motherboard์—์„œ ๋‚ด์žฅ GPU ์‚ฌ์šฉ enable 3. ๋ชจ๋‹ˆํ„ฐ ์ถœ๋ ฅ ์ผ€์ด๋ธ” ๋˜๋Š” ๋”๋ฏธ ํ”Œ๋Ÿฌ๊ทธ๊ฐ€ ๊ทธ๋ž˜ํ”ฝ์นด๋“œ๊ฐ€ ์•„

honbul.tistory.com

 

์„ธ์ƒ์—! ๋ณดํ†ต ์ด๋Ÿฐ ๊ฒฝ์šฐ ์™ธ๊ตญ์‚ฌ์ดํŠธ๋ฅผ ์ˆ˜๋„์—†์ด ๋“ค๋ฝ๋‚ ๋ฝ ๊ฑฐ๋ฆฌ๋ฉฐ ํ•œ์ฐธ ๊ณ ์ƒํ•ด์•ผํ•˜๋Š”๋ฐ ์œ„ ํ•œ๊ตญ๋ถ„์ด ์•„์ฃผ ์นœ์ ˆํ•˜๊ณ  ์ƒ์„ธํ•˜๊ฒŒ ์ด๋ฏธ ์ •๋ฆฌํ•ด ๋†“์œผ์…”์„œ ์•„๋ฌด ๊ณ ์ƒ๋„ ํ•˜์ง€ ์•Š์•˜๋‹ค.

 

์†”์งํžˆ ์šฐ๋ถ„ํˆฌ์— ๊ด€ํ•œ ๋Œ€๋ถ€๋ถ„์˜ ํ•œ๊ตญ ์ •๋ณด๋Š” '์ž˜๋ชป๋œ' ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•„ ๋ฐ˜์‹ ๋ฐ˜์˜ํ•˜๋ฉด์„œ ์ž‘์—…ํ–ˆ๋Š”๋ฐ

๋„ˆ๋ฌด ๋‚˜์ด์Šคํ•˜๊ฒŒ working์ด ๋˜์—ˆ๋‹ค. ํŠน๋ณ„ํžˆ ๋” ๊ฐ์‚ฌํ•œ ๋งˆ์Œ์ด ๋“ค์–ด ์ด๋ ‡๊ฒŒ ๊ธ€์„ ์ •๋ฆฌํ•œ๋‹ค.

๋“œ๋””์–ด ํ•œ์คŒ์˜ vram์„ ์•„๋‚„์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค.

์˜ค๋žœ๋งŒ์— stable diffusion webui์— ์ ‘์†ํ–ˆ๋”๋‹ˆ, ์•„์˜ˆ ๋Œ์•„๊ฐ€์ง€๊ฐ€ ์•Š์•˜๋‹ค.

์ฒดํฌํฌ์ธํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ํ”„๋กฌํ”„ํŠธ๋ฅผ ๋„ฃ๊ณ  ์ƒ์„ฑ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ด๋„ ์ด๋ฏธ์ง€ ์ž์ฒด๊ฐ€ ์ƒ์„ฑ๋˜์ง€ ์•Š์•˜๋‹ค.

 

* xformers์—์„œ ์ง€์›ํ•˜๋Š” ํ† ์น˜ ๋ฒ„์ „ ๋ฌธ์ œ

xformer๋Š” ์ด๋ฏธ์ง€ ์ƒ์„ฑ ๊ฐ€์†ํ™” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋‹ค. ์—…๋ฐ์ดํŠธ ๋˜๋ฉด์„œ torch 2.1.2๋ฒ„์ „์„ ์š”๊ตฌํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋‚ด torch๋ฒ„์ „์€ 2.0.1์ด์—ˆ๋‹ค. ์—…๊ทธ๋ ˆ์ด๋“œ ๋ฐฉ๋ฒ•์€ ๊ฐ„๋‹จํ•˜๋‹ค.

1. webui-user.bat ํŒŒ์ผ์„ ์—ฐ๋‹ค. 

set COMMANDLINE_ARGS=--reinstall-xformers --medvram --xformers --reinstall-torch

2. ์œ„์ฒ˜๋Ÿผ --reinstall-torch ์ธ์ž๋ฅผ ์ถ”๊ฐ€ํ•œํ›„ ์ €์žฅํ•˜๊ณ  ๋‹ค์‹œ webui-user.bat์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•œ๋‹ค.

3. ๊ทธ๋Ÿฌ๋ฉด ์•Œ์•„์„œ ๋ฒ„์ „์„ torch๋ฒ„์ „์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•œ๋‹ค.

4. ์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ์œ„  --reinstall-torch ๋Š” ์ œ๊ฑฐํ•˜๊ณ  ์›๋ž˜๋Œ€๋กœ ์ธ์ž๋“ค์„ ๋˜๋Œ๋ฆฐ๋‹ค.

5. ํ•ด๊ฒฐ

 

 

์ด์ œ ์ด๋ฏธ์ง€๋Š” ์ƒ์„ฑ์ด ๋˜๋Š”๋ฐ controlnet ์ด ๋ง์ฝ์ด์—ˆ๋‹ค. 

Error running process:  E:\Libraries\stable-diff-sdxl\models\Stable-diffusion\extensions\sd-webui-controlnet\scripts\controlnet.py

Traceback (most recent call last):

* controlnet ์„ ๋‹ค์‹œ ์„ค์น˜ํ•˜๋ฉด ๋œ๋‹ค

https://www.reddit.com/r/StableDiffusion/comments/11dba9p/controlnet_error_after_update/

๋ ˆ๋”ง์— ๋‚˜์˜จ ๋ฐฉ๋ฒ•๋Œ€๋กœ ํ•˜๋‹ˆ ํ•ด๊ฒฐ์ด ๋œ๋‹ค.

1. ๋จผ์ € extensions\sd-webui-controlnet\models ์•ˆ์— ์žˆ๋Š” ๊ธฐ์กด ๋ชจ๋ธ ํŒŒ์ผ๋“ค์„ ๋‹ค๋ฅธ ๊ณณ์œผ๋กœ ์ด๋™์‹œ์ผœ๋†“๋Š”๋‹ค.

2. ๋‹ค์Œ extensions\sd-webui-controlnet\ ๋ฅผ ์‚ญ์ œํ•œ๋‹ค.

3. ๋‹ค์Œ Extensions > Installed์— ๋“ค์–ด๊ฐ€ controlnet ์˜ ์ฒดํฌ๋ฅผ ํ’€๊ณ  Apply and restart UI๋ฅผ ํด๋ฆญํ•œ๋‹ค.

4. cmd ์ฐฝ์„ ๋‹ซ๊ณ  ๋‹ค์‹œ ์‹œ์ž‘ํ•œ๋‹ค. (๊ผญ ํ•ด์•ผํ•˜๋‚˜ ์‹ถ๊ธดํ•œ๋ฐ ๋‚˜๋Š” ํ–ˆ๋‹ค)

5. Install from URLํƒญ์œผ๋กœ ์ด๋™ํ•ด ๋‹ค์‹œ controlnet์„ ์ถ”๊ฐ€ํ•œ๋‹ค. 

https://github.com/Mikubill/sd-webui-controlnet

 

6. restart UIํ•˜๋‹ˆ ์—๋Ÿฌ์—†์ด ์ปจํŠธ๋กค ๋„ท์ด ์ž˜ ๋Œ์•„๊ฐ„๋‹ค. 

7. ํ™•์žฅํƒญ์— ๋“ค์–ด์˜จ ๊น€์— Check for updates ํ›„ ๋‹ค์‹œ restart UI๋ฅผ ํ•ด์„œ ๋ชจ๋“  ๋ชจ๋“ˆ๋“ค์„ ์ตœ์‹ ์œผ๋กœ ์—…๋ฐ์ดํŠธ ํ–ˆ๋‹ค.

8. ํ•ด๊ฒฐ

 

 

๊ทธ๋Ÿผ์—๋„ ์˜ค๋ฅ˜๋“ค์ด ์Ÿ์•„์กŒ๋‹ค. ํ•˜๋‚˜์”ฉ ํ•ด๊ฒฐํ•ด๋ณธ๋‹ค.

* Error loading script: m2m_ui.py ์˜ค๋ฅ˜

- https://github.com/Scholar01/sd-webui-mov2mov/issues/146

1. ์œ„ ๊นƒํ—™ ์ด์Šˆ๋ฅผ ํ†ตํ•ด ํ•ด๊ฒฐํ–ˆ๋‹ค. ๋จผ์ € modules/ui.py ํŒŒ์ผ์„ ์—ฐ๋‹ค. 

2. ์•„๋ž˜ ํ•จ์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์ €์žฅํ•œ๋‹ค.

def create_sampler_and_steps_selection(choices, tabname):
    return scripts.scripts_txt2img.script('Sampler').steps, scripts.scripts_txt2img.script('Sampler').sampler_name

3. ๋‹ค์‹œ ์‹คํ–‰ํ•˜๋ฉด ํ•ด๋‹น ์—๋Ÿฌ ๋ฉ”์‹œ์ง€๊ฐ€ ์‚ฌ๋ผ์ง„๋‹ค. ์—…๋ฐ์ดํŠธ ์ค‘ ํ•จ์ˆ˜ ๋ˆ„๋ฝ์ด ์žˆ์—ˆ๋‚˜๋ณด๋‹ค.

4. ํ•ด๊ฒฐ

 

 

ํ•˜์ง€๋งŒ ๊ทธ๋Ÿผ์—๋„ ์—๋Ÿฌ๊ฐ€ ์•„์ง ๋‚จ์•„์žˆ๋‹ค.

* activating extra network lora: TypeError ์˜ค๋ฅ˜

- https://github.com/AUTOMATIC1111/stable-diffusion-webui/issues/13561

 

[Bug]: activating extra network lora: TypeError · Issue #13561 · AUTOMATIC1111/stable-diffusion-webui

Is there an existing issue for this? I have searched the existing issues and checked the recent builds/commits What happened? activating extra network lora: TypeError Traceback (most recent call la...

github.com

 

1. ์œ„ ๊นƒํ—™ ์ด์Šˆ์—์„œ ํ•ด๊ฒฐํ–ˆ๋‹ค.

2. ์„ธ์ƒ์—, ๊ฐ€์žฅ ๋ณ„๊ฑฐ ์•„๋‹Œ ์˜ค๋ฅ˜์˜€๋‹ค.

3. ์•„๋ž˜์ฒ˜๋Ÿผ Add network to prompt๋ฅผ none์œผ๋กœ ํ•˜๊ณ  ์žฌ์‹œ์ž‘ํ•˜๋‹ˆ ์‚ฌ๋ผ์กŒ๋‹ค.

 

 

* No module named 'basicsr' ์˜ค๋ฅ˜

*** Error loading script: main.py
    Traceback (most recent call last):
      File "E:\AI\stable-diffusion-webui-master\modules\scripts.py", line 527, in load_scripts
        script_module = script_loading.load_module(scriptfile.path)
      File "E:\AI\stable-diffusion-webui-master\modules\script_loading.py", line 10, in load_module
        module_spec.loader.exec_module(module)
      File "<frozen importlib._bootstrap_external>", line 883, in exec_module
      File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
      File "E:\AI\stable-diffusion-webui-master\extensions\openpose-editor\scripts\main.py", line 14, in <module>
        from basicsr.utils.download_util import load_file_from_url
    ModuleNotFoundError: No module named 'basicsr'

- open pose๋ฅผ ์•„๋ฌด๋ฆฌ ๋‹ค์‹œ ๊น”์•„๋„ ํ•ด๊ฒฐ์ด ์•ˆ๋˜์—ˆ๋‹ค
- https://github.com/AUTOMATIC1111/stable-diffusion-webui/issues/15094 ์ด ์ด์Šˆ์—์„œ ํ•ด๊ฒฐํ–ˆ๋‹ค.

1. ๋จผ์ € sd ๊ธฐ๋ณธ ๋ฃจํŠธ ํด๋”์—์„œ ์•„๋ž˜ ์ˆœ์„œ๋Œ€๋กœ ํ•˜๋‚˜์”ฉ ํ„ฐ๋ฏธ๋„์— ์‹คํ–‰ํ•˜๋ฉด ๋œ๋‹ค.

- ํŒŒ์ด์ฌ ๊ฐ€์ƒ๋กœ์ปฌํ™˜๊ฒฝ์œผ๋กœ ๊ฐ€์„œ basicsr๋ฅผ ์„ค์น˜ํ•˜๊ณ  ๋‹ค์‹œ ๋กœ์ปฌํ™˜๊ฒฝ์„ ๋‚˜์˜ค๋Š” ์Šคํฌ๋ฆฝํŠธ๋‹ค.

venv\scripts\activate.bat
pip install basicsr
venv\scripts\deactivate.bat

 

* ๋ชจ๋‘ ํ•ด๊ฒฐ

์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ์—†์ด ์•„๋ฆ„๋‹ต๊ฒŒ ๋กœ๋”ฉ๋œ๋‹ค. 

 

sd3๊ฐ€ ๋‚˜๋ฝ์œผ๋กœ ๊ฐ€๊ณ  stable diffusion ์ƒํƒœ๊ณ„๊ฐ€ ์˜คํ”ˆ์†Œ์Šค์— ์ง‘์ค‘ํ•˜๋ฉฐ ์ž์ฒด ์„ฑ์žฅํ•˜๋‹ค๋ณด๋‹ˆ ์ •์‹ ์—†๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ๋ฐœ์ „ํ•˜๋Š”๊ฑฐ ๊ฐ™๋‹ค. text generation webui๋„ ๊ทธ๋ ‡๊ณ  ์ด์ชฝ์€ ํ•œ๋‹ฌ๋งŒ ์ง€๋‚˜๋„ ๋Œ๋ฆฌ๋ฉด ์—๋Ÿฌ๊ฐ€ 'ํƒ„์ƒ'ํ•œ๋‹ค.

 

๊ทธ๋ž˜์„œ ๋„ˆ๋ฌด ์ข‹๋‹ค. ์—๋Ÿฌ๊ฐ€ ๋‚œ๋‹ค๋Š”๊ฑด ๋ฌด์–ธ๊ฐ€ ํ•˜๊ณ  ์žˆ๋‹ค๋Š” ๋œป์ด๋‹ˆ ๋ง์ด๋‹ค.

๋„๋‹ค๋ฆฌ ๊ณ ๊ธ‰ ๋ฒˆ์—ญ์ด ์–ด๋Š์ •๋„ ์•ˆ์ •๋จ์— ๋”ฐ๋ผ ์ฝ”๋“œ ๊ณต๊ฐœ๋ฅผ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

  1. vram์ด 23์ด์ƒ์ผ๋•Œ ์•ผ๋†€์ž ๋ชจ๋ธ์‚ฌ์šฉ ๊ฐ€๋Šฅ
  2. ์šด์˜์ฒด์ œ๊ฐ€ ๋ฆฌ๋ˆ…์Šค์ผ ๊ฒฝ์šฐ vllm(AI ๊ฐ€์† ๋ชจ๋“ˆ) ์‚ฌ์šฉ ๊ฐ€๋Šฅ
  3. ๋ฒˆ์—ญ ํ”„๋กฌํ”„ํŠธ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•
  4. ํ•„ํ„ฐ ๋ฌธ๊ตฌ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•

ํ˜„์žฌ ์ฝ”๋“œ๋Š” ๊ฐœ๋ฐœ์ž์ธ ์ €์—๊ฒŒ๋งŒ ๋งž์ถฐ์ ธ ์žˆ์–ด ๋นˆํ‹ˆ์ด ๋งŽ์Šต๋‹ˆ๋‹ค.

๋ชจ๋‘๊ฐ€ ์“ธ์ˆ˜ ์žˆ๊ฒŒ ๋ฐ”๊พธ๋Š”๋ฐ์—๋Š” ์‹œ๊ฐ„์ด ์ข€ ๊ฑธ๋ฆด ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

์†Œ์Šค์ฝ”๋“œ ์ „๋ฉด ๊ณต๊ฐœ ํ›„ ๋‹ค์‹œ ๊ณต์ง€ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!


ํ˜„์žฌ(24.07.19) eeve(๊ณ ๊ธ‰๋ฒˆ์—ญ)๋ชจ๋ธ์„ ํŒŒ์ธํŠœ๋‹ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ๋ฐฉ์‹์œผ๋กœ ์ „์ฒ˜๋ฆฌ, ํ›„์ฒ˜๋ฆฌ, ํ”„๋กฌํ”„ํŠธ ์—”์ง€๋‹ˆ์–ด๋ง์„ ํ…Œ์ŠคํŠธ ํ•ด๋ณด์•˜์ง€๋งŒ

๋ฒˆ์—ญ ์ถœ๋ ฅ์‹œ ๋ฐœ์ƒํ•˜๋Š” ํ™˜๊ฐํ˜„์ƒ์„ ์ œ๊ฑฐํ•˜๊ธฐ ์–ด๋ ค์› ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

 

์˜ค๋Š˜ 3์ฐจ ํŒŒ์ธํŠœ๋‹ ๊ฒฐ๊ณผ๋ฌผ์„ ์ด์šฉํ•ด ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๊ณ  ์žˆ๋Š”๋ฐ ์ง€๊ธˆ๊นŒ์ง€๋Š” ๊ฒฐ๊ณผ๊ฐ€ ํฌ๋ง์ ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค. => ๋‹ค์‹œ ๋น„๊ด€์ ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค

gguf๋ชจ๋ธ๋„ ํ•จ๊ป˜ ๋งŒ๋“ค๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ cpu๋ฅผ ์ด์šฉํ•ด ๊ตฌ๋™์‹œํ‚ฌ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๋ณด๋‹ค ๋งŽ์€ ๋ถ„๋“ค์ด ๋„๋‹ค๋ฆฌ ๊ณ ๊ธ‰๋ชจ๋ธ์„ ์‚ฌ์šฉํ•ด ๋ณด์‹ค์ˆ˜ ์žˆ๊ฒŒ ์ตœ๋Œ€ํ•œ ๋นจ๋ฆฌ ์ž‘์—…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.


์˜ค๋Š˜(24.07.21) ํ…Œ์ŠคํŠธ์—์„œ ๋งŒ์กฑํ• ๋งŒํ•œ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์™”์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์ง€๊ธˆ ๊ธฐ๋ถ„์ด ์ข‹์Šต๋‹ˆ๋‹คใ…‹ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ํ…Œ์ŠคํŠธ๋ฅผ ์กฐ๊ธˆ ๋” ์ง„ํ–‰ํ•œ ํ›„ ์™„์„ฑ๋œ eeve-dodari๋ชจ๋ธ๊ณผ gguf๋ฒ„์ „์˜ ํ—ˆ๊น…์ŠคํŽ˜์ด์Šค ์ฃผ์†Œ๋ฅผ ๊ณต์œ ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!


์ง€๊ธˆ์ด 24.07.21 ์ผ์š”์ผ ์ƒˆ๋ฒฝ 3์‹œ 30๋ถ„.

ํŒŒ์ธํŠœ๋‹์ด ์„ฑ๊ณต์ ์œผ๋กœ ๋œ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. 

์‹ฌ์ง€์–ด ํ›„์ฒ˜๋ฆฌ๋ฅผ ํ•˜์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค. - ๊ทธ๋™์•ˆ ai์˜ ํ™˜๊ฐํ˜„์ƒ ๋•Œ๋ฌธ์— ์—„์ฒญ๋‚œ ํ›„์ฒ˜๋ฆฌ๋ฅผ ํ•ด์•ผ๋งŒ ํ–ˆ๊ณ  ๊ทธ๋ ‡๊ฒŒ ํ–ˆ์–ด๋„ ์—ฌ์ „ํžˆ ๋งŽ์€ ํ™˜๊ฐ๋ฌธ๊ตฌ๋“ค์„ ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค - ๋งˆ์น˜ transformer์˜ pipeline์—์„œ translation์„ ์‚ฌ์šฉํ•œ ๊ฒƒ๊ณผ ๊ฐ™์€ ์ฒ˜๋ฆฌ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ๊ฐ„๋‹จํ•œ ๋ฐ์ดํ„ฐ์…‹์œผ๋กœ ์ด๋ฆฌ๋„ ๊น”๋”ํ•˜๊ฒŒ ํ•ด๊ฒฐ๋ ์ค„์€ ๋ชฐ๋ž๋„ค์š”. 

 

 

* ํ—ˆ๊น…์ŠคํŽ˜์ด์Šค eeve-dodari ๋ชจ๋ธ ๋งํฌ

https://huggingface.co/blueflag/eeve-yanolja-dodari

 

* eeve-dodari-gguf ๋ชจ๋ธ ๋งํฌ (8bit์–‘์žํ™”)

https://huggingface.co/blueflag/eeve-yanolja-dodari_gguf

 

* basic template

prompt = f'''
Translate Human sentences into {์–ธ์–ด์„ค์ •. Korean or English} in short. Do not add anything else.\nHuman: {๋ฒˆ์—ญํ•  ๋ฌธ๊ตฌ}\nAssistant:\n
'''

 

* ์ง์ ‘ ๋ชจ๋ธ ๋กœ๋”ฉํ•˜์—ฌ ์‚ฌ์šฉํ•˜์‹ค ๋ถ„๋“ค์—๊ฒŒ

์œ„ ๋ชจ๋ธ์„ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์œผ์‹  ํ›„ prompt๋ฅผ ์œ„์™€ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ ๋ฒˆ์—ญ์š”์ฒญํ•˜์‹œ๋ฉด ์•„์ฃผ ๊น”๋”ํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์‹ค์ˆ˜ ์žˆ์„ ๊ฒ๋‹ˆ๋‹ค.

 

 

์ด๋ฒˆ ํŒŒ์ธํŠœ๋‹ ์ž‘์—…์— ๋ฐ€๋ ค ๋„๋‹ค๋ฆฌ ๊ณ ๊ธ‰๋ชจ๋ธ ์ฝ”๋“œ ๊ณต๊ฐœ๊ฐ€ ๋”์šฑ ๋Šฆ์–ด์กŒ๋„ค์š”. ํ•˜์ง€๋งŒ ์ด๋ฒˆ ํŒŒ์ธํŠœ๋‹ ์„ฑ๊ณผ๊ฐ€ ์ข‹์€ ๋งŒํผ ์ฝ”๋“œ๋“ค์„ ๋”์šฑ ๋‹ค๋“ฌ์–ด ๊ณต๊ฐœํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

* ๋„ค์ด๋ฒ„ ์Šค๋งˆํŠธ ์Šคํ† ์–ด๋ฅผ ํ†ตํ•ด ๋„๋‹ค๋ฆฌ๋ฅผ ์ด์šฉํ•˜์‹ค์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

1. ๋„๋‹ค๋ฆฌ ํ…์ŠคํŠธ txt ๊ณ ๊ธ‰ ๋ฒˆ์—ญํ•˜๋Ÿฌ ๊ฐ€๊ธฐ
2. ๋„๋‹ค๋ฆฌ ์ „์ž์ฑ… epub ๊ณ ๊ธ‰ ๋ฒˆ์—ญํ•˜๋Ÿฌ ๊ฐ€๊ธฐ
3. ๋„๋ผ๋ฆฌ 70๋ถ„ ์ž์œ ๋ฒˆ์—ญํ•˜๋Ÿฌ ๊ฐ€๊ธฐ

* ๋™๊ธฐ

1. ๊ธฐ์ˆ ๊ด€๋ จ ์˜์ƒ์€ ์ž๋™์ƒ์„ฑ ์ž๋ง‰์ด๋ผ๋„ ์–ด์ฐŒ์–ด์ฐŒ ํ•ด๋ณผ๋งŒํ•˜์ง€๋งŒ ๋‹คํ๋ฉ˜ํ„ฐ๋ฆฌ๋‚˜ ์ธํ„ฐ๋ทฐ ์˜์ƒ์˜ ๊ฒฝ์šฐ ๋„์ €ํžˆ ํ™”๋ฉด์„ ๋”ฐ๋ผ๊ฐˆ์ˆ˜ ์—†์—ˆ๋‹ค.

2. ๋†’์€ ์ˆ˜์ค€์ด ์•„๋‹ˆ์–ด๋„ ์ข‹์œผ๋‹ˆ ๋‚ด์šฉ์„ ์–ด๋Š ์ •๋„๋Š” ๋”ฐ๋ผ๊ฐ€๊ฒŒ ํ•ด์ค„ ๋ฒˆ์—ญ์ด ํ•„์š”ํ–ˆ๋‹ค.

 

* ๊ธฐ๋Šฅ

1. ์ด์— ๋„๋‹ค๋ฆฌ ์— ์ž๋ง‰๋ฒˆ์—ญ(srtํŒŒ์ผ) ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ–ˆ๋‹ค.

2. smi ๋ฒˆ์—ญ๋„ ์ถ”๊ฐ€ํ• ๊นŒํ•ด์„œ ์•Œ์•„๋ณด๋‹ˆ ์ด๊ฑด ํ•œ๊ตญ์—์„œ๋งŒ ์‚ฌ์šฉํ•˜๋Š” ํŒŒ์ผํ˜•์‹์ด๋ผ ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ๋นผ๋ฒ„๋ ธ๋‹ค.

3. ์‚ฌ์šฉ๋ฒ•์€ ๋‹ค๋ฅธ ๋ฒˆ์—ญ๊ณผ ์™„์ „ํžˆ ๋™์ผํ•˜๋‹ค. srtํŒŒ์ผ์„ ๋“œ๋ž˜๊ทธ ํ•˜์—ฌ ์ฒจ๋ถ€ํ•œ ํ›„ ๋ฒˆ์—ญ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ๋œ๋‹ค.

 

* ์œ ํŠœ๋ธŒ ์˜์ƒ์— ๋Œ€ํ•˜์—ฌ

1. ์‚ฌ์‹ค ์œ ํŠœ๋ธŒ ์ฃผ์†Œ๋งŒ ๋„ฃ์œผ๋ฉด ์˜์ƒ๊ณผ ์ž๋ง‰์„ ์ž๋™์œผ๋กœ ๋ฐ›๊ณ  ๋ฒˆ์—ญ๊นŒ์ง€ ํ•˜๋Š”๊ฑธ ์ด๋ฏธ ๊ฐœ๋ฐœํ–ˆ๋‹ค.

2. ๊ทธ๋Ÿฐ๋ฐ ๋น„์Šทํ•œ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ whisper-webui ๊ฐ€ ์ด๋ฏธ ์žˆ๋‹ค.

3. ๋‹ค๋ฅธ ์ ์ด๋ผ๋ฉด whisper-webui๊ฐ€ ai๋ฅผ ์ด์šฉํ•ด ์ง์ ‘ ์Œ์„ฑ์„ ๋“ฃ๊ณ  ์ž๋ง‰ํŒŒ์ผ์„ ์ƒ์„ฑํ•œ ํ›„ ๊ทธ๊ฑธ ๋ฒˆ์—ญํ•˜๋Š” ๊ฑฐ๊ณ 

4. ๋‚ด๊ฐ€ ๋งŒ๋“ ๊ฑด ์œ ํŠœ๋ธŒ์—์„œ ์ž๋™์ƒ์„ฑํ–ˆ๊ฑฐ๋‚˜ ํ˜น์€ ์ด๋ฏธ ์ œ๊ณต๋œ ์ž๋ง‰ ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œ ํ•œํ›„ ๊ทธ๊ฑธ ๋ฒˆ์—ญํ•œ๋‹ค๋Š” ์ฐจ์ด๋‹ค.

5. ๊ทธ๋ž˜์„œ ์ด๊ฑด ๋‚˜๋งŒ ์“ฐ๊ธฐ๋กœ ํ–ˆ๋‹ค.

 

* ๋ฒˆ์—ญ ํ’ˆ์งˆ

1. ์ผ๋ฐ˜ ํ…์ŠคํŠธ ๋ฒˆ์—ญ์— ๋น„ํ•ด ํ™•์‹คํžˆ ๋–จ์–ด์ง„๋‹ค.

2. ์ž๋™์ƒ์„ฑ์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ์›๋ณธ ์ž๋ง‰์˜ ํ’ˆ์งˆ์ด ์ข‹์ง€ ์•Š๊ณ 

3. ์ „์ฒด ๋ฌธ์žฅ์ด ์•„๋‹Œ ๋ฌธ์žฅ์˜ ์ผ๋ถ€๋ถ„๋งŒ ๋ฒˆ์—ญ์„ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

4. ๋ฌธ๋งฅ์— ๋งž์ถ˜ ๋ฒˆ์—ญ์„ ์œ„ํ•ด ํ…์ŠคํŠธ๋งŒ ์ญ‰ ๋ฝ‘์•„๋ดค๋Š”๋ฐ ์ด๊ฒŒ ๋ฌธ์žฅ ๊ตฌ๋ถ„์ด ๋˜์ง€ ์•Š์•„ ์ „์ฒด ์ž๋ง‰์ด ํ•˜๋‚˜์˜ ๋ฌธ์žฅ์œผ๋กœ ์ธ์‹๋˜์–ด ๋ฒ„๋ ธ๋‹ค. ๊ทธ๋ž˜์„œ ๋ฒˆ์—ญ์„ ์‹œ๋„์กฐ์ฐจ ํ• ์ˆ˜ ์—†์—ˆ๋‹ค. ์œ ํŠœ๋ธŒ ๋ฒˆ์—ญ์ด ์™œ ๊ทธ๋ ‡๊ฒŒ ํ›„์กŒ๋Š”์ง€ ์ดํ•ด๋˜๋Š” ์ˆœ๊ฐ„์ด์—ˆ๋‹ค.

 

* ์•Œ๋ฆผ

๋„๋‹ค๋ฆฌ ๊ณ ๊ธ‰๋ฒˆ์—ญ ์Šคํ† ์–ด๋ฅผ ์˜คํ”ˆํ–ˆ๋‹ค.

์ „์ž์ฑ… ๋ฒˆ์—ญ,  ํ…์ŠคํŠธ ๋ฒˆ์—ญ,  70๋ถ„ ์„œ๋ฒ„ ์ด์šฉ

 

 

๊ฒฐ๋ก ๋ถ€ํ„ฐ ๋งํ•˜์ž๋ฉด, coqui tts - xtts๋Š” ์ง€๋‚œ 2024๋…„ 1์›” 3์ผ๋ถ€๋กœ shutdown ๋˜์—ˆ๋‹ค.
https://twitter.com/_josh_meyer_/status/1742522906041635166
 

X์˜ Josh Meyer๋‹˜(@_josh_meyer_)

Coqui is shutting down. It's sad news to start the new year, but I want to take a minute to recognize everything we accomplished and thank the great people who made it possible. First things first: the Team I'm honored to have worked with such brilliant, d

twitter.com

 

* ๋™๊ธฐ

๋‚ด๊ฐ€ ์›ํ•˜๋Š” ๋ชฉ์†Œ๋ฆฌ๋กœ ๋ฌด์ œํ•œ ์ƒ์„ฑ๊ฐ€๋Šฅํ•œ ๋ฌด๋ฃŒ tts๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

 

* ๊ณผ์ •

1. ์—ฌ๋Ÿฌ ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ, openVoice v2์™€ coqui-tts(xtts) v2๊ฐ€ ๊ฐ€์žฅ ํ›Œ๋ฅญํ–ˆ๋‹ค.

2. ์ด ๊ณผ์ •์—์„œ ์ผ๋ž˜๋ธ๋žฉ์Šค https://elevenlabs.io/ ์˜ ๋†€๋ผ์šด ๋ฐœ์ „ ์†๋„์— ์˜คํ”ˆ์†Œ์Šค๋“ค์ด ๋” ์ด์ƒ ๋”ฐ๋ผ๊ฐ€์ง€ ๋ชปํ•จ์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค.

3. ์‹ค์ œ๋กœ ๋Œ๋ ค๋ณด๋‹ˆ ๊ทธ ์ˆ˜์ค€์ฐจ์ด๊ฐ€ ์ปธ๋‹ค. ์ด์ œ ์ผ๋ž˜๋ธ๋žฉ์Šค์˜ ๊ฒฝ์Ÿ์ƒ๋Œ€๋Š” ์˜คํ”ˆ์†Œ์Šค ์ง„ํ˜•์ด ์•„๋‹ˆ๋ผ openAI๋กœ ๋ณด์ธ๋‹ค. ์‹ฌ์ง€์–ด xtts๋Š” ์ด๋ฏธ 1์›”์ดˆ์— ๋ฌธ์„ ๋‹ซ์•˜๋‹ค.

4. chatGPT 4o์™€ ์ผ๋ž˜๋ธ๋žฉ์Šค์˜ ํ’ˆ์งˆ์„ ๋ณด๋ฉด ์ด์ œ ์˜คํ”ˆ์†Œ์Šค ์ง„ํ˜•์— ๊ทธ๊ฐ„์˜ ๋…ธ๋ ฅ๋“ค์€ ๋ฌผ๊ฑฐํ’ˆ์ด ๋ ๊ฑฐ ๊ฐ™์€ ๋Š๋‚Œ์ด ๋“ ๋‹ค. stable diffusion์˜ ๊นƒํ—™๋งŒ ๋ณด์•„๋„ ๋งˆ์ง€๋ง‰ commit์ด 2๋…„์ „์ด๋‹ค. ์ด์ œ ์ƒํƒœ๊ณ„๋Š” stable diffusion์ด ์•„๋‹ˆ๋ผ stable diffusion webUI๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ๋Œ์•„๊ฐ„๋‹ค. ํ•˜์ง€๋งŒ stable diffusion 3๋Š” 3๋‹ฌ์ „์— ์ด๋ฏธ ๋‚˜์™”๋‹ค. ๊ณต๊ฐœ๊ฐ€ ๋˜์ง€ ์•Š์•˜์„ ๋ฟ์ด๋‹ค.

5. ์ด์ œ ๋‚จ์€๊ฑด meta ๋ฟ์œผ๋กœ ๋ณด์ธ๋‹ค. (์ œ๋ฐœ grok์ด ํž˜์„ ๋‚ด์ฃผ๊ธธ)

6. ๊ทธ๋Ÿผ์—๋„ '๋ฌด์ œํ•œ'๊ณผ '๋ฌด๋ฃŒ'๋ผ๋Š” ์žฅ์ ์€ '์‚ฌ์šฉ์˜ ๋ถˆํŽธํ•จ'๊ณผ 'ํ’ˆ์งˆ์˜ ๋–จ์–ด์ง'์ด๋ผ๋Š” ๊ฐ•๋ ฅํ•œ ๋‹จ์ ์—๋„ ์–ด๋Š ๋ถ€๋ถ„ ๋Œ€ํ•ญ๊ฐ€๋Šฅํ•œ ๋Œ€๊ฒฐ์ธ์ž๋กœ ๋ณด์˜€๋‹ค.

 

* xtts ์‚ฌ์šฉํ›„ ๋Š๋‚€ ์ 

์žฅ์  - ๊ฝค ์ž์—ฐ์Šค๋Ÿฌ์šด tts๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

๋‹จ์  - ko๋ชจ๋ธ์˜ ๊ฒฝ์šฐ ์˜์–ด๋ฅผ ์ „ํ˜€ ์ฝ์ง€ ๋ชปํ•œ๋‹ค. g2pk2 ๋ชจ๋“ˆ์„ ์ด์šฉํ•ด๋„ ๋งŽ์ด ๋ถ€์กฑํ•˜๋‹ค. ์˜์–ด๋ถ€๋ถ„์—์„œ ๋ฐœ์Œ์ด ์™„์ „ ๋ญ‰๊ฐœ์ง€๋ฉฐ ๊ธฐ๊ณ„์Œ์ด ๋‚˜์˜จ๋‹ค. ์ด๊ฒƒ์ด ๋„ˆ๋ฌด๋‚˜ ์น˜๋ช…์ ์ด๋‹ค. en๋ชจ๋ธ์€ ์˜ค์ง ์˜์–ด๋งŒ ์ฝ์„ ์ˆ˜ ์žˆ๊ณ  ko๋ชจ๋ธ์€ ์˜ค์ง ํ•œ๊ตญ์–ด๋งŒ ์ฝ์„ ์ˆ˜ ์žˆ๋‹ค.

 

 

 

* ์ตœ์ข… ๊ฒฐ๋ก 

๋‹ค์‹œ open voice v2๋กœ ๋Œ์•„์™”๋‹ค. ์ž์—ฐ์Šค๋Ÿฝ์ง€๋Š” ๋ชปํ•ด๋„ ์•ˆ์ •์ ์œผ๋กœ ๊ธด ๊ธ€์„ ์ฝ์–ด์ค€๋‹ค. ์˜์–ด์™€ ํ•œ๊ธ€์ด ์„ž์—ฌ ์žˆ์–ด๋„ ๋ฌธ์ œ์—†๋‹ค. xtts์™€ ๋‹ฌ๋ฆฌ ๊ณ„์† ์—…๋ฐ์ดํŠธ ๋  ๊ฒƒ ๊ฐ™๋‹ค. ์„ค์น˜ ํ™˜๊ฒฝ ์กฐ์„ฑ์ด ์–ด๋ ต์ง€๋งŒ ์‹คํ–‰๋งŒ ๋œ๋‹ค๋ฉด ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค. ๊ทธ๋ž˜์„œ, open voice v2๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์Œ์„ฑ์˜ ํ’ˆ์งˆ์„ ๋†’์ด๋Š” (rvc๋กœ ํ›„์ฒ˜๋ฆฌํ•˜๋Š” ๋“ฑ์˜) ๋ฐฉํ–ฅ์„ ๊ณ ๋ฏผํ•ด๋ณด๋ คํ•œ๋‹ค.

์–ด๋–ป๊ฒŒ๋“   - ๋ฉฐ์น ๊ฐ„ ์—ฐ๊ตฌํ•œ ๊ฒƒ์ด ์•„๊น๊ธฐ๋„ํ•˜๊ณ  - openVoice V2๋กœ ์ข‹์€ ํ’ˆ์งˆ์˜ tts๋ฅผ ๋ฝ‘์•„๋ณด๋ ค ํ–ˆ์ง€๋งŒ ๊ฒฐ๊ตญ ๋ฒ„๋ ธ๋‹ค. ์ž˜ ์•ˆ๋˜์—ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‹ค ๋งŒ๋‚œ๊ฒƒ์ด xtts๋‹ค. ๊ธฐ๋ณธ xtts๋งŒ์œผ๋กœ๋„ openVoice v2๋ณด๋‹ค ํ›จ์”ฌ ์ข‹์ง€๋งŒ finetuning์„ ํ•ด๋ณด๋‹ˆ ๋”์šฑ ๋” ๋น„์Šทํ•ด์กŒ๋‹ค.

๋ฐœ์Œ์ด ์กฐ๊ธˆ ๋ญ‰๊ฐœ์ง€๊ธด ํ•˜๋Š”๋ฐ ์ด๊ฑด ์–ด๋–ป๊ฒŒ ๋งž์ถฐ๋ณผ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค.

๋ˆ„๊ตฌ์˜ ๋ชฉ์†Œ๋ฆฌ๋กœ ๋“ค๋ฆฌ๋Š”๊ฐ€?

 

๊นƒํ—™์ฃผ์†Œ๋Š”

https://github.com/daswer123/xtts-webui

 

GitHub - daswer123/xtts-webui: Webui for using XTTS and for finetuning it

Webui for using XTTS and for finetuning it. Contribute to daswer123/xtts-webui development by creating an account on GitHub.

github.com

 

์ง€๊ธˆ์€ ๋„ˆ๋ฌด ์กธ๋ฆฌ๊ณ  ๋‹ค์Œ ํฌ์ŠคํŠธ์— ์„ค์น˜ ๋ฐ ํŒŒ์ธํŠœ๋‹ํ•˜๋Š” ๊ฒƒ์„ ์ •๋ฆฌํ•˜๊ฒ ๋‹ค.

https://github.com/myshell-ai/OpenVoice

 

GitHub - myshell-ai/OpenVoice: Instant voice cloning by MyShell.

Instant voice cloning by MyShell. Contribute to myshell-ai/OpenVoice development by creating an account on GitHub.

github.com

 

OpenVoice์— ๊ด€์‹ฌ์„ ๊ฐ€์ง€๊ฒŒ ๋œ ์ด์œ ๋Š”, ํ•˜๋‚˜๋‹ค.

"๋ชฉ์†Œ๋ฆฌ ๋ณต์ œ๋ฅผ ํ•˜๊ณ  ์‹ถ๋‹ค. ๋‚ด๊ฐ€ ์ข‹์•„ํ•˜๋Š” ๋ชฉ์†Œ๋ฆฌ๋กœ ํ•œ๊ธ€ ํ…์ŠคํŠธ๋ฅผ ๋ฌด์ œํ•œ์œผ๋กœ ์ฝ์–ด์คฌ์œผ๋ฉด ์ข‹๊ฒ ๋‹ค"

 

๊ธฐ์กด tts๋Š” ๊ธธ์ด์ œํ•œ์ด ์žˆ๊ณ  ์‚ฌ์šฉํ•˜๊ธฐ๋„ ๋ณต์žกํ–ˆ๊ธฐ์— ์ด๊ฒƒ์„ ๋„๋‹ค๋ฆฌ์ฒ˜๋Ÿผ ์•„์ฃผ ๊ฐ„๋‹จํ•˜๊ฒŒ

1. ๋Œ€์šฉ๋Ÿ‰ ํ…์ŠคํŠธ ํŒŒ์ผ ์ฒจ๋ถ€

2. ๋ชฉ์†Œ๋ฆฌ ์ƒ์„ฑ ๋ฒ„ํŠผ ํด๋ฆญ

3. wavํŒŒ์ผ ์ƒ์„ฑ

ํ•ด์ฃผ๋Š” ์•ฑ์„ ๋งŒ๋“ค๊ณ  ์‹ถ์—ˆ๋‹ค. ํ˜„์žฌ๊นŒ์ง€ r&d ๊ฒฐ๊ณผ๋กœ๋Š” ๋ถ€์ •์ ์ด์ง€๋งŒ, ์ด ๋ถ€์ •์  ๊ฒฐ๋ก ๊นŒ์ง€ ๋„๋‹ฌํ•œ ๊ณผ์ •์„ ๊ธฐ๋ก์œผ๋กœ ๋‚จ๊ธฐ๋ คํ•œ๋‹ค.

 

์ผ๋‹จ, V1์€ ๋‹ค๊ตญ์–ด ์ง€์›์ด ์•ˆ๋œ๋‹ค.

์˜์–ด์™€ ์ค‘๊ตญ์–ด๋งŒ ๋œ๋‹ค. ๋งŒ์•ฝ ํ•œ๊ตญ์–ด ๋ฅผ ์ฝ๊ฒŒ ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์ฝ์–ด์ค€๋‹ค. ๋„ค์ดํ‹ฐ๋ธŒ ๋ฏธ๊ตญ์ธ์ด ํ•œ๊ตญ์–ด ๋งํ•˜๋Š”๊ฑฐ ๊ฐ™๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”! ์˜ค๋Š˜์€ ๋‚ ์”จ๊ฐ€ ์ •๋ง ์ข‹๋„ค์š”.

 

* ๊นƒํ—™์—์„œ ์„ค์น˜ํ•˜๊ธฐ

git clone https://github.com/myshell-ai/OpenVoice.git open_voice
cd open_voice

 

* ํ™˜๊ฒฝ๋งŒ๋“ค๊ธฐ - ํŒŒ์ด์ฌ ๋ฒ„์ „์ด ๊ผฌ์—ฌ์„œ conda๋ฅผ ์ด์šฉํ–ˆ๋‹ค.

conda create -n ov python=3.9
conda activate ov
pip install -r requirements.txt

 

* condaํ™˜๊ฒฝ์—์„œ ffmpeg๊ฐ€ ์—†๋‹ค๊ณ  ๋œฌ๋‹ค๋ฉด ์•„๋ž˜์ฒ˜๋Ÿผ ๊ผญ ffmpeg๋ฅผ ์„ค์น˜ํ•ด์ค˜์•ผ ํ•œ๋‹ค.

conda install ffmpeg

 

* cpu๋กœ ๋Œ๋ฆฌ๊ธฐ - cuda๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด pass!

- ํ˜„์žฌ open voice์—์„œ๋Š” cpu๋ฅผ ์‚ฌ์šฉํ• ์ˆ˜๊ฐ€ ์—†๋‹ค. ์ฝ”๋“œ๊ฐ€ ๋ˆ„๋ฝ๋˜์–ด์žˆ๊ณ  ์ด ๋ถ€๋ถ„์„ ์ˆ˜์ •ํ•ด์ฃผ๊ณ  ์žˆ์ง€ ์•Š์•„์„œ ์ง์ ‘ ์ˆ˜์ •ํ•ด์ค˜์•ผ ํ•œ๋‹ค.

๋จผ์ € se_extractor.py ํŒŒ์ผ๋กœ ๊ฐ„ํ›„ 22๋ฒˆ์งธ ์ค„์˜ ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ

device = "cuda" if torch.cuda.is_available() else "cpu"
model = WhisperModel(model_size, device=device, compute_type="float16")

์•„๋ž˜์™€ ๊ฐ™์ด ๋ฐ”๊ฟ”์ค€๋‹ค. 

device, compute_type = ("cuda","float16") if torch.cuda.is_available() else ("cpu", "int8")
model = WhisperModel(model_size, device=device, compute_type=compute_type)

 

 

* ๋‹ค ๋๋‹ค. ์ด์ œ ๋Œ๋ ค๋ณด์ž. ํ•œ๊ตญ์–ด๋ฅผ ์ฝ์–ด๋ณด๊ฒŒ ํ–ˆ๋‹ค. ์˜์–ด๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์•„๋ž˜ ์ฃผ์„์„ ํ’€๋ฉด๋œ๋‹ค.

import os
import torch
from openvoice import se_extractor
from openvoice.api import BaseSpeakerTTS, ToneColorConverter

ckpt_base = 'checkpoints/base_speakers/EN'
ckpt_converter = 'checkpoints/converter'
device="cuda:0" if torch.cuda.is_available() else "cpu"
output_dir = 'outputs'

base_speaker_tts = BaseSpeakerTTS(f'{ckpt_base}/config.json', device=device)
base_speaker_tts.load_ckpt(f'{ckpt_base}/checkpoint.pth')

tone_color_converter = ToneColorConverter(f'{ckpt_converter}/config.json', device=device)
tone_color_converter.load_ckpt(f'{ckpt_converter}/checkpoint.pth')

os.makedirs(output_dir, exist_ok=True)

source_se = torch.load(f'{ckpt_base}/en_default_se.pth').to(device)


# reference_speaker = 'resources/example_reference.mp3' # This is the voice you want to clone
reference_speaker = 'resources/lympe.mp3' # This is the voice you want to clone

target_se, audio_name = se_extractor.get_se(reference_speaker, tone_color_converter, target_dir='processed', vad=True)

# inference
save_path = f'{output_dir}/output_en_default.wav'

# Run the base speaker tts
# text = "This audio is generated by OpenVoice."
text = "์•ˆ๋…•ํ•˜์„ธ์š”! ์˜ค๋Š˜์€ ๋‚ ์”จ๊ฐ€ ์ •๋ง ์ข‹๋„ค์š”."

src_path = f'{output_dir}/tmp.wav'
base_speaker_tts.tts(text, src_path, speaker='default', language='English', speed=1.0)

# Run the tone color converter
encode_message = "@MyShell"
tone_color_converter.convert(
    audio_src_path=src_path, 
    src_se=source_se, 
    tgt_se=target_se, 
    output_path=save_path,
    message=encode_message)
    
source_se = torch.load(f'{ckpt_base}/en_style_se.pth').to(device)
save_path = f'{output_dir}/output_whispering.wav'

# Run the base speaker tts
# text = "This audio is generated by OpenVoice."
text = "์•ˆ๋…•ํ•˜์„ธ์š”! ์˜ค๋Š˜์€ ๋‚ ์”จ๊ฐ€ ์ •๋ง ์ข‹๋„ค์š”."

src_path = f'{output_dir}/tmp.wav'
base_speaker_tts.tts(text, src_path, speaker='whispering', language='English', speed=0.9)

# Run the tone color converter
encode_message = "@MyShell"
tone_color_converter.convert(
    audio_src_path=src_path, 
    src_se=source_se, 
    tgt_se=target_se, 
    output_path=save_path,
    message=encode_message)


ckpt_base = 'checkpoints/base_speakers/ZH'
base_speaker_tts = BaseSpeakerTTS(f'{ckpt_base}/config.json', device=device)
base_speaker_tts.load_ckpt(f'{ckpt_base}/checkpoint.pth')

source_se = torch.load(f'{ckpt_base}/zh_default_se.pth').to(device)
save_path = f'{output_dir}/output_chinese.wav'

# Run the base speaker tts
# text = "ไปŠๅคฉๅคฉๆฐ”็œŸๅฅฝ๏ผŒๆˆ‘ไปฌไธ€่ตทๅ‡บๅŽปๅƒ้ฅญๅงใ€‚"
text = "์•ˆ๋…•ํ•˜์„ธ์š”! ์˜ค๋Š˜์€ ๋‚ ์”จ๊ฐ€ ์ •๋ง ์ข‹๋„ค์š”."

src_path = f'{output_dir}/tmp.wav'
base_speaker_tts.tts(text, src_path, speaker='default', language='Chinese', speed=1.0)

# Run the tone color converter
encode_message = "@MyShell"
tone_color_converter.convert(
    audio_src_path=src_path, 
    src_se=source_se, 
    tgt_se=target_se, 
    output_path=save_path,
    message=encode_message)

 

 

* ๊ฒฐ๋ก 

V1์€ ์œˆ๋„์šฐ๋‚˜ ๋งฅ, ๋ชจ๋‘์—์„œ ์ž˜ ๋Œ์•„๊ฐ”๋‹ค. ์˜์–ด ์„ฑ๋Šฅ์€ v1๋„ ์ถฉ๋ถ„ํžˆ ์ข‹์•˜๋‹ค.
๋‹ค์Œ ํฌ์ŠคํŠธ์—์„œ ์ •๋ฆฌํ•  V2๋Š” ํ•œ๊ตญ์–ด์˜ ๊ฒฝ์šฐ cuda ํ™˜๊ฒฝ์—์„œ๋งŒ ๊ฐ€๋Šฅํ•˜๊ณ  - ์˜์–ด๋‚˜ ์ค‘๊ตญ์–ด๋Š” ์—ฌ์ „ํžˆ cpu์—์„œ ๋Œ์•„๊ฐ„๋‹ค - ์—ฌ๊ธฐ์— ๋ชฉ์†Œ๋ฆฌ ํŠธ๋ ˆ์ด๋‹๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. ๋ฌผ๋ก  ์„ฑ๋Šฅ์€ ๊ทธ๋‹ค์ง€ ๋งŒ์กฑ์Šค๋Ÿฝ์ง€ ์•Š์ง€๋งŒ ์—ฌ๋Ÿฌ ํ…Œ์ŠคํŠธ๋ฅผ ํ•ด๋ณด๋‹ˆ ์–ด๋–ค ๋ชฉ์†Œ๋ฆฌ๋Š” ๊ฝค๋‚˜ ์ž˜ ๋ณต์ œํ•ด๋ƒˆ๋‹ค.

์ž์„ธํ•œ ์‚ฌํ•ญ์€ V2์— ๋‚จ๊ธฐ๊ฒ ๋‹ค.

+ Recent posts