Ryuko Matoi ๐ŸŽฌ Wan2.1-T2V-14B

์„ธ๋ถ€ ์ •๋ณด

ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ

๋ชจ๋ธ ์„ค๋ช…

์„ค๋ช…

"๋„ค ์˜๊ฒฌ์€ ์“ฐ๋ ˆ๊ธฐ๋‹ค. ์•„๋ฌด๋ฆฌ ๋ˆ„๊ตฌ๋ผ๊ณ  ํ•ด๋„ ๋‚˜๋Š” ๋‚ด ๊ธธ์„ ๊ฐˆ ๊ฒƒ์ด๋‹ค." - ๋งˆํ† ์ด ๋ฅ˜์ฝ”

์‚ฌ์šฉ๋ฒ•

ํŠธ๋ฆฌ๊ฑฐ ๋‹จ์–ด๋Š” "Ryuko-chan"์ž…๋‹ˆ๋‹ค.

์ €๋Š” ํŠน์ • ํ”„๋กฌํ”„ํŠธ ํ˜•์‹์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(์•„์ง ์‹คํ—˜ ์ค‘์ž…๋‹ˆ๋‹ค). ํ•˜์ง€๋งŒ ๋ณดํ†ต ๋ชจ๋“  ํ”„๋กฌํ”„ํŠธ๋ฅผ "High quality 2D art animation."๋กœ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ: "High quality 2d art animation. Ryuko-chan, with long red hair and a black trench coat, stands on top of a ruined skyscraper. The city burns in the distance, smoke rising into the dark sky. The wind makes her coat billow as she crosses her arms. The camera suddenly zooms in on her determined face. She smirks, tilts her head slightly, and winks."

์ถ”๋ก ์—๋Š” Kijai์˜ ๋ž˜ํผ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ถˆํ–‰ํžˆ๋„ Civitai๋Š” ์ด ๋„๊ตฌ์—์„œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ํŒŒ์‹ฑํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ, ์›Œํฌํ”Œ๋กœ์šฐ๋Š” ๊ฐ ํด๋ฆฝ์— ๋‚ด์žฅ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜น์‹œ ๋ชจ๋ฅผ ์ƒํ™ฉ์„ ๋Œ€๋น„ํ•ด JSON ํ˜•์‹์˜ ์›Œํฌํ”Œ๋กœ์šฐ ์˜ˆ์‹œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์—ฌ์ „ํžˆ ๊ฐœ๋ฐœ ์ค‘์ด๋ฏ€๋กœ ์˜ค๋ฅธ์ชฝ์ด ์•ฝ๊ฐ„ ํ˜ผ์žกํ•˜์ง€๋งŒ ์ „๋ฐ˜์ ์œผ๋กœ ์™„์ „ํžˆ ๊ธฐ๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์ €๊ฐ€ ๊ฒŒ์‹œํ•œ ๋ชจ๋“  ํด๋ฆฝ์€ LoRA์˜ ์›๋ณธ ์ถœ๋ ฅ์ด๋ฉฐ, ์—…์Šค์ผ€์ผ๋ง์ด๋‚˜ ํ”„๋ ˆ์ž„ ๋ณด๊ฐ„์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(์ด๊ฒƒ๋“ค์€ LoRA์˜ ์ง„์ •ํ•œ ๋Šฅ๋ ฅ์„ ์™œ๊ณกํ•ฉ๋‹ˆ๋‹ค). ๋‹ค์Œ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ๋ชจ๋“  ํด๋ฆฝ์—์„œ ์ผ๊ด€๋˜๊ฒŒ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค:

Sampler: unipc
Steps: 20
Cfg: 6
Shift: 7

์ œ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ํ™•์ธํ•˜๋ฉด, Wan2.1์ด ์ถœ์‹œ๋œ ์ดํ›„ ๋„์ž…๋œ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ์ตœ์ ํ™” ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ €๋Š” ์ด ๊ธฐ์ˆ ๋“ค์ด ์†Œ๋น„์ž์šฉ GPU์—์„œ Kling ์ˆ˜์ค€์˜ ๋น„๋””์˜ค ๋ชจ๋ธ์„ ๋งŒ์กฑ์Šค๋Ÿฌ์šด ์†๋„๋กœ, (๊ฑฐ์˜) ํ’ˆ์งˆ์„ ํฌ์ƒํ•˜์ง€ ์•Š๊ณ  ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค€ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์ž ๋ฐ ML ์—”์ง€๋‹ˆ์–ด๋“ค(Comfyanonymous, Kijai, TeaCache ํŒ€ ๋ฐ ๊ธฐํƒ€ ๋งŽ์€ ๋ถ„๋“ค)์—๊ฒŒ ๊ฐ์‚ฌ๋ฅผ ํ‘œํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

์ฒ˜์Œ์—๋Š” "์ˆœ์ˆ˜ํ•œ" FP8 + SDPA๋กœ ์‹œ์ž‘ํ–ˆ๊ณ , ์•„๋ž˜๋Š” ๊ฐ ์ตœ์ ํ™” ๊ธฐ์ˆ ์„ ์ ์šฉํ–ˆ์„ ๋•Œ ์–ป์€ ์†๋„ ํ–ฅ์ƒ์ž…๋‹ˆ๋‹ค.

์ฐธ๊ณ ๋กœ, ์ œ ํ™˜๊ฒฝ์€ RTX 3090, 64GB RAM, Win 11, Python 3.11.6, Torch 2.7.0.dev20250311+cu126, Sage Attention 2.1.1, Triton 3.2.0, NVidia ๋“œ๋ผ์ด๋ฒ„ 572.16, ComfyUI portable v0.3.26์ž…๋‹ˆ๋‹ค.

์•„๋ž˜์— ์–ธ๊ธ‰ํ•œ ์‹œ๊ฐ„์€ ๊ฐค๋Ÿฌ๋ฆฌ์— ํ‘œ์‹œํ•˜๋Š” ํด๋ฆฝ ๋ Œ๋”๋ง ์‹œ๊ฐ„์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„ 640x480x81์ด๋ฉฐ, ์ด๋Š” ์ด ์‹œ๊ฐ„์— ์•ฝ 2๋ถ„์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๋Š” ์ƒ๊ด€์—†์Šต๋‹ˆ๋‹ค. ๋ณดํ†ต ํ•œ ๋ฒˆ์— 50~60๊ฐœ์˜ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๋ช‡ ์‹œ๊ฐ„ ํ›„์— ๊ฒฐ๊ณผ๋ฅผ ์ˆ˜์ง‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์ €์—๊ฒŒ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์‹œ๊ฐ„์€ Wan-14B T2V๋ฅผ ํ…Œ์ŠคํŠธํ•˜๊ณ  ๋‹ค๋ฅธ LoRA ๋ฒ„์ „์„ ๋น„๊ตํ•  ๋•Œ์˜ ์‹œ๊ฐ„์ž…๋‹ˆ๋‹ค. ์ด ๋‹จ๊ณ„์—์„œ๋Š” 512x512x65 ํฌ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ํ…Œ์ŠคํŠธ ํด๋ฆฝ์˜ 99%๋Š” ์ƒ์„ฑ ์งํ›„ ํด๋”๋กœ ์ด๋™๋˜์ง€๋งŒ, LoRA ํ’ˆ์งˆ์„ ๋ช…ํ™•ํ•˜๊ฒŒ ํ‰๊ฐ€ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ํ…Œ์ŠคํŠธ ์‹œ๊ฐ„ ์ถ”๋ก ์„ ๊ฐ€๋Šฅํ•œ ํ•œ ๋น ๋ฅด๊ฒŒ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

512x512x65 ํด๋ฆฝ, 20์Šคํ…, UniPC ์ƒ˜ํ”Œ๋Ÿฌ ๊ธฐ์ค€:

(DiT ์ถ”๋ก  ๋‹จ๊ณ„๋งŒ ๊ณ ๋ คํ•ฉ๋‹ˆ๋‹ค. ์ตœ์ ํ™”๋Š” UMT5๋ฅผ ํ†ตํ•œ ํ”„๋กฌํ”„ํŠธ ์ธ์ฝ”๋”ฉ ๋˜๋Š” VAE๋ฅผ ํ†ตํ•œ ๋ ˆ์ดํ„ดํŠธ ๋””์ฝ”๋”ฉ ์‹œ๊ฐ„์—๋Š” ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์œผ๋ฉฐ, ์ด ์‹œ๊ฐ„์€ 2~3์ดˆ๋กœ ๋ฌด์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.)

  • fp8_e4m3fn + sdpa -> 09:24 (28.24s/it)

  • fp8_e4m3fn + sageattention 2 -> 06:53 (20.70s/it) +36% (1.36x)

  • fp8_e52m + torch.compile + sageattention 2 -> 06:21 (19.08s/it) +48% (1.48x)

  • fp8_e52m + torch.compile + sageattention 2 + teacache (0.250/6) -> 04:29 (13.50s/it) +109% (2.09x)

  • fp8_e52m + torch.compile + sageattention 2 + teacache + fp16_fast -> 03:23 (10.19s/it) +177% (2.77x)

๋”ฐ๋ผ์„œ ํ’ˆ์งˆ ์†์‹ค์€ ์ตœ์†Œํ•œ์ด๋ฉฐ, ๊ฑฐ์˜ 3๋ฐฐ ์†๋„ ํ–ฅ์ƒ์„ ๋‹ฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค(์ œ ์‚ฌ์šฉ ์‚ฌ๋ก€ ๊ธฐ์ค€; ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค). ๋™์ผํ•œ ์‹œ๋“œ๋กœ TeaCache/Sage Attention 2๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ Œ๋”๋งํ•œ ํด๋ฆฝ๊ณผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ํด๋ฆฝ์„ ๋น„๊ตํ•ด ๋ณด์•˜์œผ๋‚˜, ํ’ˆ์งˆ ์ €ํ•˜๋ฅผ ๋ช…ํ™•ํžˆ ํ™•์ธํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ๋งค์šฐ ๋ณต์žกํ•œ ํ”„๋กฌํ”„ํŠธ์—์„œ ์›€์ง์ž„์ด ๋งŽ์„ ๊ฒฝ์šฐ ์•ฝ๊ฐ„์˜ ์ฐจ์ด๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์ง€๋งŒ, ์‹ฌ์ง€์–ด '์›๋ณธ' ๋ชจ๋“œ์—์„œ๋„ ์ด๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์–ด๋ ค์›€์„ ๊ฒช๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ฐธ๊ณ ๋กœ, ์ €๋Š” Enhance-A-Video์™€ SLG(๋ ˆ์ด์–ด 9, 0.2-0.8)๋ฅผ ๊ด‘๋ฒ”์œ„ํ•˜๊ฒŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋“ค์€ ํด๋ฆฝ์˜ ํ’ˆ์งˆ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ณ  ์›€์ง์ž„ ์•„ํ‹ฐํŒฉํŠธ๋ฅผ ์™„ํ™”ํ•˜๋Š” ๋ฐ ๊ธ์ •์ ์ธ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค.

์†๋„ ํ–ฅ์ƒ์€ HV์—์„œ Wan์œผ๋กœ ์ „ํ™˜ํ•˜๋Š” ๋ฐ ๊ฒฐ์ •์ ์ธ ์š”์ธ ์ค‘ ํ•˜๋‚˜์˜€์Šต๋‹ˆ๋‹ค. Wan์€ ๋” ๋‚˜์€ ํ’ˆ์งˆ์„ ์ œ๊ณตํ•˜์ง€๋งŒ, ์ €๋Š” HV์—์„œ์˜ ๋น ๋ฅธ ๋ Œ๋”๋ง์— ์ต์ˆ™ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— Wan์—์„œ๋„ ์œ ์‚ฌํ•œ ์†๋„๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์—ˆ๋˜ ๊ฒƒ์ด ์ „ํ™˜์„ ๊ฐ€์น˜ ์žˆ๊ฒŒ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

ํ•™์Šต

215์žฅ์˜ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค(๋Œ€๋ถ€๋ถ„์€ ใ€Šํ‚ฌ ๋ผ ํ‚ฌใ€‹ ์ „์ฒด 25ํ™”์—์„œ 18,461๊ฐœ์˜ ์Šคํฌ๋ฆฐ์บก์„ ์ˆ˜๋™์œผ๋กœ ์„ ๋ณ„ํ•œ ํ›„, ๊ณต์‹ ์•„ํŠธ์›Œํฌ ๋ช‡ ์žฅ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค). ์ด ์ด๋ฏธ์ง€๋“ค์€ THUDM/cogvlm2-llama3-chat-19B๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์Œ ํ”„๋กฌํ”„ํŠธ๋กœ ์บก์…˜ ์ฒ˜๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค:

"์ด ์˜ˆ์ˆ ์ž‘ํ’ˆ์„ ์ƒ์„ธํžˆ ์„ค๋ช…ํ•˜์„ธ์š”. ์‹œ๊ฐ์  ์Šคํƒ€์ผ, ๋ฐฐ๊ฒฝ, ๋ถ„์œ„๊ธฐ, ์˜ˆ์ˆ ์  ๊ธฐ๋ฒ•์— ์ง‘์ค‘ํ•˜์„ธ์š”. ์–ด๋‘์šด ๋จธ๋ฆฌ์นด๋ฝ์„ ๊ฐ€์ง„ ์—ฌ์„ฑ ์บ๋ฆญํ„ฐ๊ฐ€ ๋“ฑ์žฅํ•  ๊ฒฝ์šฐ, ๊ทธ๋…€๋ฅผ 'Ryuko-chan'์ด๋ผ ๋ถ€๋ฅด์„ธ์š”. ๊ทธ๋…€์˜ ์˜ท, ์•ก์„ธ์„œ๋ฆฌ, ์ž์„ธ๋ฅผ ์–ธ๊ธ‰ํ•˜๋˜, ์–ผ๊ตด ํŠน์ง•, ์‹ ์ฒด ๋น„์œจ, ์‹ ์ฒด์  ์†์„ฑ์€ ๋ฌ˜์‚ฌํ•˜์ง€ ๋งˆ์„ธ์š”. ๊ตฌ์ฒด์ ์ธ ์˜ˆ์ˆ  ์Šคํƒ€์ผ ์šฉ์–ด(์˜ˆ: ์…€ ์…ฐ์ด๋”ฉ, ํŽ˜์ธํŒ… ์Šคํƒ€์ผ, ์ˆ˜์ฑ„ํ™”, ๋””์ง€ํ„ธ ์ผ๋Ÿฌ์ŠคํŠธ)์™€ ๋ฏธํ•™์„ ์ •์˜ํ•˜๋Š” ์‹œ๊ฐ์  ์š”์†Œ๋ฅผ ํฌํ•จํ•˜์„ธ์š”. ์กฐ๋ช…, ์ƒ‰์ƒ ํŒ”๋ ˆํŠธ, ๊ตฌ์„ฑ, ์ฃผ์š” ์˜ˆ์ˆ ์  ์˜ํ–ฅ๋„ ์„ค๋ช…ํ•˜์„ธ์š”."

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

Ryuko ์™ธ์—๋Š” ์ด๋ฆ„์œผ๋กœ ์บก์…˜ํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์—, ๋ชจ๋ธ์€ Senketsu์™€ ๊ฐ€์œ„ ์นผ๋‚ ์˜ ์‹œ๊ฐ์  ํŠน์ง•์„ ํ•™์Šตํ–ˆ์„ ์ˆ˜ ์žˆ์ง€๋งŒ, ์ด๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ํ˜ธ์ถœํ•˜๋ฉด ์ž‘๋™ํ•˜์ง€ ์•Š์„ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค(์•„์ง ์ถฉ๋ถ„ํžˆ ํ…Œ์ŠคํŠธํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค). ๊ทธ๋Ÿฌ๋‚˜ ์ด๋Š” ์˜๋„์ ์ธ ๊ฒƒ์ด์—ˆ๊ณ , ๋ชจ๋ธ์—๊ฒŒ ๋ฅ˜์ฝ”์™€ ๊ทธ๋…€์˜ ์‹ ์ฒด์  ์™ธ๋ชจ์— ๋Œ€ํ•ด์„œ๋งŒ ๊ฐ€๋ฅด์น˜๋ ค ํ–ˆ์Šต๋‹ˆ๋‹ค.

์˜ท๊ณผ ๋จธ๋ฆฌ์นด๋ฝ ์ƒ‰์„ ๋ช…์‹œ์ ์œผ๋กœ ์„ค๋ช…ํ•˜์ง€ ์•Š์œผ๋ฉด, ๋Œ€๋ถ€๋ถ„ ๋ฅ˜์ฝ”์˜ ์›๋ž˜ ๋ณต์žฅ์œผ๋กœ ๊ธฐ๋ณธ ์„ค์ •๋ฉ๋‹ˆ๋‹ค. ์ผ์ƒ ์žฅ๋ฉด์—์„œ๋Š” ์ •๊ทœ ๊ต๋ณต์„, ์ „ํˆฌ ๋ฐ ๊ฐ•๋ ฌํ•œ ์žฅ๋ฉด์—์„œ๋Š” ์ฃผ๋กœ Senketsu๋ฅผ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค.

(์ฒ˜์Œ์—๋Š” ์บ๋ฆญํ„ฐ ์ „์šฉ LoRA๋ฅผ ๋งŒ๋“ค๊ณ  ์‹ถ์—ˆ์œผ๋ฉฐ, ์ด๋กœ์จ ๋ฅ˜์ฝ”๋ฅผ ์‚ฌ์‹ค์ ์œผ๋กœ๋„ ๊ทธ๋ฆด ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ฐ์ดํ„ฐ์…‹ ํŽธํ–ฅ์ด ๋„ˆ๋ฌด ๊ฐ•ํ–ˆ๊ณ , ๊ฒฐ๊ณผ์ ์œผ๋กœ ์›์ž‘ ์‹œ๋ฆฌ์ฆˆ์˜ ์Šคํƒ€์ผ๋กœ๋งŒ ๋ Œ๋”๋งํ•  ์ˆ˜ ์žˆ์—ˆ์œผ๋ฉฐ, ์ด๋Š” ๊ฒฐ์ฝ” ๋‚˜์œ ๊ฒฐ๊ณผ๋Š” ์•„๋‹™๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋ฅผ ์บ๋ฆญํ„ฐ/์Šคํƒ€์ผ ํ˜ผํ•ฉ LoRA๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ๊ฒƒ์ด ๋” ์ •ํ™•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.)

์ฒซ ๋ฒˆ์งธ ๋ฒ„์ „์˜ LoRA๋Š” diffusion-pipe๋ฅผ ์‚ฌ์šฉํ•ด 1.3B ๋ชจ๋ธ๋กœ ํ•™์Šตํ–ˆ์ง€๋งŒ, ๊ฒฐ๊ณผ๊ฐ€ ๋งˆ์Œ์— ๋“ค์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. 1.3B ๋ชจ๋ธ(์ œ ์˜๊ฒฌ์œผ๋กœ๋Š”)์€ ํ’ˆ์งˆ ๋ฉด์—์„œ HV์™€ ๊ฒฝ์Ÿํ•˜๊ธฐ์—” ๋„ˆ๋ฌด ์ž‘์Šต๋‹ˆ๋‹ค(์œ ์ผํ•œ ์žฅ์ ์€ ์†๋„์™€ ์ž์› ์š”๊ตฌ๋Ÿ‰์ž…๋‹ˆ๋‹ค). ๋‘ ๋ฒˆ์งธ ๋ฒ„์ „์€ ai-toolkit์„ ์‚ฌ์šฉํ•ด ํ•™์Šตํ–ˆ์ง€๋งŒ, ๊ธฐ๋Œ€ํ–ˆ๋˜ ๋งŒํผ ์ข‹์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค(์ด๋Š” ai-toolkit์ด ์บก์…˜ ํ•™์Šต์„ ์•„์ง ์ง€์›ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ด๋ผ๊ณ  ํŒ๋‹จํ•ฉ๋‹ˆ๋‹ค).

๋งˆ์ง€๋ง‰์œผ๋กœ, ํ˜„์žฌ(์„ฑ๊ณต์ ์ธ) ๋ฒ„์ „์€ musubi-tuner๋ฅผ ์‚ฌ์šฉํ•ด 14B ๋ชจ๋ธ๋กœ ํ•™์Šตํ–ˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” ์ œ๊ฐ€ ์‚ฌ์šฉํ•œ ๋ช…๋ น์–ด์ž…๋‹ˆ๋‹ค(์ €๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ musubi-tuner ํŒŒ์ดํ”„๋ผ์ธ์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด .bat ํŒŒ์ผ์„ ๋งŒ๋“œ๋ฏ€๋กœ, ํ•™์Šต ๋ช…๋ น์˜ ํ˜•์‹์ด ๊ทธ์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค). ๊ฐ„๋žตํžˆ ์„ค๋ช…ํ•˜๋ฉด, ๋Œ€๋ถ€๋ถ„์˜ ์ค‘์š”ํ•œ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ๊ธฐ๋ณธ๊ฐ’๊ณผ ๋™์ผํ•˜๋ฉฐ, ํ•™์Šต๋ฅ ๋งŒ 7e-5๋กœ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค. 40์—ํญ(17,630์Šคํ…, 1์—ํญ๋‹น 430์Šคํ…) ๋™์•ˆ ํ•™์Šตํ–ˆ๊ณ , 3์ผ๊ฐ„์˜ ํ…Œ์ŠคํŠธ ํ›„ ๊ฐ€์žฅ ์„ฑ๊ณต์ ์ธ ์ฒดํฌํฌ์ธํŠธ๋ฅผ 15,050์Šคํ…์œผ๋กœ ์„ ํƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋ธ์ด ๊ณ„์† ๊ฐœ์„ ๋˜๊ณ  ์žˆ์—ˆ๊ณ , ํ•™์Šต ์†์‹ค์˜ ์ถ”์ด๊ฐ€ ๊ธ์ •์ ์ด์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋” ๋งŽ์€ ์Šคํ…์œผ๋กœ ํ•™์Šตํ•  ์ˆ˜๋„ ์žˆ์—ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  • cache_latents (vae):
python wan_cache_latents.py --dataset_config G:/samples/musubi-tuner/_ryuko_matoi_wan14b_config.toml --vae G:/samples/musubi-tuner/wan14b/vae/wan_2.1_vae.safetensors
  • cache_prompts (t_enc):
python wan_cache_text_encoder_outputs.py --dataset_config G:/samples/musubi-tuner/_ryuko_matoi_wan14b_config.toml --t5 G:/samples/musubi-tuner/wan14b/tenc/models_t5_umt5-xxl-enc-bf16.pth --batch_size 16 
  • ๋ฐ์ดํ„ฐ์…‹ ๊ตฌ์„ฑ ํŒŒ์ผ (์ˆ˜๋™์œผ๋กœ ์ž‘์„ฑํ•˜์ง€ ์•Š์•˜๊ณ , ์ด๋ฏธ์ง€ ํด๋”๋ฅผ ์Šค์บ”ํ•˜์—ฌ ๊ฐ ์ด๋ฏธ์ง€์˜ ์ตœ๋Œ€ ์ฐจ์›์ด 720px๋ฅผ ๋„˜์ง€ ์•Š๋„๋ก ๋น„์œจ์„ ์œ ์ง€ํ•˜๋ฉฐ 16์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋Š” ํฌ๊ธฐ๋กœ ์Šค์ผ€์ผ๋งํ•˜๋Š” ์ž‘์€ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์ด๋ฏธ์ง€๋ฅผ ๋ฆฌ์‚ฌ์ด์ง•ํ•˜์ง€ ์•Š๊ณ , musubi-tuner์˜ ๋ฒ„ํ‚ท ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์œ„ํ•ด ์‚ฌ์ „ ์ค€๋น„๋งŒ ์ˆ˜ํ–‰ํ•œ ํ›„, ๊ฐ™์€ ํฌ๊ธฐ์˜ ์ด๋ฏธ์ง€๋ฅผ ํ•˜์œ„ ํด๋”๋กœ ๊ทธ๋ฃนํ™”ํ•˜๊ณ  musubi-tuner์šฉ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ YAML ํŒŒ์ผ์„ ์ƒ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค):
[general]
caption_extension = ".txt"
batch_size = 1
enable_bucket = true
bucket_no_upscale = false

[[datasets]]
resolution = [528, 768]
image_directory = "H:/datasets/ryuko_matoi_wan_video/1057x1516x1"
cache_directory = "H:/datasets/ryuko_matoi_wan_video/1057x1516x1/cache"
num_repeats = 2

[[datasets]]
resolution = [768, 432]
image_directory = "H:/datasets/ryuko_matoi_wan_video/1280x720x1"
cache_directory = "H:/datasets/ryuko_matoi_wan_video/1280x720x1/cache"
num_repeats = 2

[[datasets]]
resolution = [592, 768]
image_directory = "H:/datasets/ryuko_matoi_wan_video/1600x2033x1"
cache_directory = "H:/datasets/ryuko_matoi_wan_video/1600x2033x1/cache"
num_repeats = 2

[[datasets]]
resolution = [400, 768]
image_directory = "H:/datasets/ryuko_matoi_wan_video/1727x3264x1"
cache_directory = "H:/datasets/ryuko_matoi_wan_video/1727x3264x1/cache"
num_repeats = 2

[[datasets]]
resolution = [720, 768]
image_directory = "H:/datasets/ryuko_matoi_wan_video/1917x2002x1"
cache_directory = "H:/datasets/ryuko_matoi_wan_video/1917x2002x1/cache"
num_repeats = 2

[[datasets]]
resolution = [768, 432]
image_directory = "H:/datasets/ryuko_matoi_wan_video/1920x1080x1"
cache_directory = "H:/datasets/ryuko_matoi_wan_video/1920x1080x1/cache"
num_repeats = 2

[[datasets]]
resolution = [736, 768]
image_directory = "H:/datasets/ryuko_matoi_wan_video/1920x1963x1"
cache_directory = "H:/datasets/ryuko_matoi_wan_video/1920x1963x1/cache"
num_repeats = 2

[[datasets]]
resolution = [480, 768]
image_directory = "H:/datasets/ryuko_matoi_wan_video/1920x3038x1"
cache_directory = "H:/datasets/ryuko_matoi_wan_video/1920x3038x1/cache"
num_repeats = 2

[[datasets]]
resolution = [768, 576]
image_directory = "H:/datasets/ryuko_matoi_wan_video/2363x1813x1"
cache_directory = "H:/datasets/ryuko_matoi_wan_video/2363x1813x1/cache"
num_repeats = 2

[[datasets]]
resolution = [768, 624]
image_directory = "H:/datasets/ryuko_matoi_wan_video/3877x3208x1"
cache_directory = "H:/datasets/ryuko_matoi_wan_video/3877x3208x1/cache"
num_repeats = 2

[[datasets]]
resolution = [640, 768]
image_directory = "H:/datasets/ryuko_matoi_wan_video/690x820x1"
cache_directory = "H:/datasets/ryuko_matoi_wan_video/690x820x1/cache"
num_repeats = 2

[[datasets]]
resolution = [576, 768]
image_directory = "H:/datasets/ryuko_matoi_wan_video/690x920x1"
cache_directory = "H:/datasets/ryuko_matoi_wan_video/690x920x1/cache"
num_repeats = 2

[[datasets]]
resolution = [512, 768]
image_directory = "H:/datasets/ryuko_matoi_wan_video/800x1195x1"
cache_directory = "H:/datasets/ryuko_matoi_wan_video/800x1195x1/cache"
num_repeats = 2

[[datasets]]
resolution = [768, 496]
image_directory = "H:/datasets/ryuko_matoi_wan_video/935x608x1"
cache_directory = "H:/datasets/ryuko_matoi_wan_video/935x608x1/cache"
num_repeats = 2
  • ์ƒ˜ํ”Œ๋ง ํŒŒ์ผ:
# prompt 1
Ryuko-chan with blonde hair is walking on the beach, camera zoom out.  --w 384 --h 384 --f 45 --d 7 --s 20

# prompt 2
Ryuko-chan dancing in the bar. --w 384 --h 384 --f 45 --d 7 --s 20
  • ํ•™์Šต ๋ช…๋ น:
accelerate launch --num_cpu_threads_per_process 1 --mixed_precision bf16 wan_train_network.py ^
    --task t2v-14B ^
    --dit G:/samples/musubi-tuner/wan14b/dit/wan2.1_t2v_14B_bf16.safetensors ^
	--vae G:/samples/musubi-tuner/wan14b/vae/wan_2.1_vae.safetensors ^
	--t5 G:/samples/musubi-tuner/wan14b/tenc/models_t5_umt5-xxl-enc-bf16.pth ^
	--dataset_config G:/samples/musubi-tuner/_ryuko_matoi_wan14b_config.toml ^
	--sdpa ^
	--mixed_precision bf16 ^
	--fp8_base ^
	--fp8_t5 ^
    --optimizer_type adamw8bit ^
	--learning_rate 7e-5 ^
	--gradient_checkpointing ^
    --max_data_loader_n_workers 2 ^
	--persistent_data_loader_workers ^
    --network_module networks.lora_wan ^
	--network_dim 32 ^
	--network_alpha 32 ^
    --timestep_sampling shift ^
	--discrete_flow_shift 3.0 ^
    --max_train_epochs 50 ^
	--save_every_n_epochs 1 ^
	--seed 42 ^
    --output_dir G:/samples/musubi-tuner/output ^
	--output_name ryuko_matoi_wan14b ^
	--log_config ^
	--log_with tensorboard ^
	--logging_dir G:/samples/musubi-tuner/logs ^
	--sample_prompts G:/samples/musubi-tuner/_ryuko_matoi_wan14b_sampling.txt ^
	--save_state ^
	--sample_every_n_epochs 1

ํ•™์Šต ์ค‘ ์†๋„๋Š” ์•ฝ 4์ดˆ/์Šคํ…์ด๋ฉฐ, VRAM ์‚ฌ์šฉ๋Ÿ‰์€ ์•ฝ 21GB์˜€์Šต๋‹ˆ๋‹ค. --fp8_base ๋ฐ --fp8_t5 ํ”Œ๋ž˜๊ทธ ์™ธ์—๋Š” ํŠน๋ณ„ํ•œ ์ตœ์ ํ™”๋ฅผ ์ ์šฉํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๋‹ค๋ฅธ LoRA๋“ค๊ณผ์˜ ํ˜ธํ™˜์„ฑ ํ…Œ์ŠคํŠธ๋Š” ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์•˜๊ณ , ํ–ฅํ›„ ๊ณ„ํš๋„ ์—†์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ, I2V ๋ชจ๋ธ๊ณผ์˜ ํ…Œ์ŠคํŠธ๋„ ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค(์‹ค์ œ๋กœ ์•„์ง ๋‹ค์šด๋กœ๋“œ์กฐ์ฐจ ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค).

(๊ทธ๋ฆฌ๊ณ , ์ €๋Š” LoRA์™€ ํ•จ๊ป˜ ๋ฐ์ดํ„ฐ์…‹๋„ ๊ณต๊ฐœํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํŠน๋ณ„ํžˆ ์ฃผ๋ชฉํ•  ๋งŒํ•œ ๋‚ด์šฉ์€ ์—†์Šต๋‹ˆ๋‹ค.)

๊ฒฐ๋ก 

์ด๊ฒƒ์€ ์ œ๊ฐ€ Wan Video 2.1-T2V 14B๋ฅผ ์œ„ํ•œ ์ฒซ ๋ฒˆ์งธ(์„ฑ๊ณต์ ์ธ) LoRA์ž…๋‹ˆ๋‹ค. ์ด ๋ชจ๋ธ์— ๋Œ€ํ•ด ๋งค์šฐ ํฅ๋ถ„๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ•™์Šตํ•˜๋Š” ๊ณผ์ •์ด ์ฆ๊ฑฐ์› ์œผ๋ฉฐ, ์ œ ํ˜„์žฌ์˜ ์ œํ•œ๋œ ๊ฒฝํ—˜์„ ๊ธฐ์ค€์œผ๋กœ ๋ณผ ๋•Œ, ์ด ๋ชจ๋ธ์€ ๊ฐœ๋…๊ณผ ์Šคํƒ€์ผ์„ ๋›ฐ์–ด๋‚˜๊ฒŒ ์ดํ•ดํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณ„ํšํ•œ ๋ชจ๋“  LoRA๋ฅผ ํ•™์Šตํ•˜๋Š” ๊ฒƒ์ด ๊ธฐ๋‹ค๋ ค์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค! ์ง€๊ธˆ๊นŒ์ง€ ์ €๋Š” ์Šคํƒ€์ผ์„ ์œ„ํ•œ ์ƒ์„ฑํ˜• AI ๋ชจ๋ธ๋งŒ ํ•™์Šตํ•ด์™”์ง€๋งŒ, ์ด์ œ ์Šคํƒ€์ผ๋ฟ ์•„๋‹ˆ๋ผ VFX, ๊ฐœ๋…, ์›€์ง์ž„ ๋“ฑ๋„ ํ•™์Šตํ•˜๋Š” ๋ฐ ๋งค์šฐ ์—ด์ •์ ์ด๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

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

๋˜ํ•œ ์ด ๋ชจ๋ธ์€ ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ์…‹(์ตœ์†Œ 100์žฅ ์ด์ƒ์˜ ์ด๋ฏธ์ง€)๊ณผ ๋‚ฎ์€ ํ•™์Šต๋ฅ (1e-4๋Š” ๋„ˆ๋ฌด ๋†’์Œ)์˜ ํ˜œํƒ์„ ๋ฐ›๋Š”๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ LoRA์—์„œ๋Š” ํ•™์Šต๋ฅ ์„ 5e-5 ์ดํ•˜๋กœ ์„ค์ •ํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. ๋” ๋งŽ์€ ์Šคํ…์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์ด ๊ฒฝ์šฐ ๊ณผ์ ํ•ฉ ์—†์ด ๋ชจ๋“  ์„ธ๋ถ€ ์‚ฌํ•ญ์„ ๋” ์ž˜ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ชจ๋ธ๋กœ ๋งŒ๋“  ์ด๋ฏธ์ง€

์ด๋ฏธ์ง€๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.