มุมมองของ Anderson

วิธีการฝึกและใช้โมเดล LoRA ของ Hunyuan Video

mm
ChatGPT-4o: Variation on 'Create me an image 1792 x 1024. It should be in the style of Théodore Géricault, and should depict a dark medieval figure seated in front of a laptop, illuminated by the screen. We are facing the figure, and can only see the back of the laptop lid. Around the seated medieval figure are many other medieval men and women, curious as to what is happening on the computer screen'

บทความนี้จะแสดงวิธีการติดตั้งและใช้ซอฟต์แวร์บน Windows ที่สามารถฝึกโมเดล LoRA ของ Hunyuan Video ได้ โดยช่วยให้ผู้ใช้สามารถสร้างบุคลิกที่กำหนดเองในโมเดล Hunyuan Video ได้

คลิกเพื่อเล่น ตัวอย่างจากความนิยมของโมเดล LoRA ของ Hunyuan ที่สร้างจากชุมชน civit.ai

ในขณะนี้ มีวิธีการสร้างโมเดล LoRA ของ Hunyuan ที่ได้รับความนิยมสองวิธี

1) แพลตฟอร์ม diffusion-pipe-ui ที่ใช้ Docker และ Windows Subsystem for Linux (WSL) เพื่อจัดการกระบวนการบางอย่าง

2) Musubi Tuner ซึ่งเป็นส่วนเสริมใหม่ของสถาปัตยกรรมการฝึก Diffusion ที่ได้รับความนิยม Kohya ss Musubi Tuner ไม่ต้องการ Docker และไม่ขึ้นอยู่กับ WSL หรือ Linux-based proxies แต่อาจมีความยากในการติดตั้งบน Windows

ดังนั้น การติดตั้งนี้จะเน้นไปที่ Musubi Tuner และการให้โซลูชันที่สมบูรณ์แบบสำหรับการฝึกและสร้างโมเดล LoRA ของ Hunyuan บน Windows โดยไม่ต้องใช้เว็บไซต์ที่ขับเคลื่อนด้วย API หรือการเช่า GPU เชิงพาณิชย์ เช่น Runpod

https://www.unite.ai/wp-content/uploads/2025/01/powershell-run-as-administrator.jpg\Desktop\Musubi\

ใน Powershell นำทางไปยังโฟลเดอร์นั้นโดยพิมพ์แล้วกด Enter:

cd C:\Users\[ชื่อโปรไฟล์ของคุณ]\Desktop\Musubi

เราต้องการให้สภาพแวดล้อมเสมือนมีเข้าถึงสิ่งที่เราติดตั้งแล้ว (โดยเฉพาะ Triton) ดังนั้นเราจะใช้ --system-site-packages ฟลैग พิมพ์แล้วกด Enter:

python -m venv --system-site-packages musubi

รอจนกว่าสภาพแวดล้อมจะถูกสร้างขึ้น จากนั้นเปิดใช้งานโดยพิมพ์แล้วกด Enter:

.\musubi\Scripts\activate

จากจุดนี้ คุณสามารถบอกได้ว่าคุณอยู่ในสภาพแวดล้อมเสมือนที่เปิดใช้งานแล้วโดยการแสดง (musubi) ที่ด้านหน้าของพรอมต์ทั้งหมดของคุณ

โคลนรีพอซิตอรี

นำทางไปยังโฟลเดอร์ musubi ที่เพิ่งสร้างขึ้น (ซึ่งอยู่ในโฟลเดอร์ Musubi บนเดสก์ท็อปของคุณ):

cd musubi

ตอนนี้ที่เรามาอยู่ในตำแหน่งที่ถูกต้องแล้ว ให้พิมพ์แล้วกด Enter:

git clone https://github.com/kohya-ss/musubi-tuner.git

รอจนกว่าการโคลนจะเสร็จสิ้น (จะไม่นาน)

ติดตั้งความต้องการ

นำทางไปยังโฟลเดอร์การติดตั้ง:

cd musubi-tuner

พิมพ์แล้วกด Enter:

pip install -r requirements.txt

รอจนกว่าการติดตั้งหลายรายการจะเสร็จสิ้น (จะใช้เวลานานกว่านี้)

การเข้าถึง Venv ของ Hunyuan Video แบบอัตโนมัติ

เพื่อให้สามารถเปิดใช้งานและเข้าถึง venv ใหม่สำหรับการทำงานในอนาคตได้อย่างง่ายดาย ให้วางไฟล์ activate.bat (หรือชื่ออื่นที่คุณชอบ) โดยวางสิ่งนั้นไว้ใน Notepad และบันทึกด้วยชื่อ activate.bat (หรือชื่ออื่นที่คุณชอบ) ตามขั้นตอนที่อธิบายไว้ก่อนหน้านี้

@echo off

call C:\Users\[ชื่อโปรไฟล์ของคุณ]\Desktop\Musubi\musubi\Scripts\activate.bat

cd C:\Users\[ชื่อโปรไฟล์ของคุณ]\Desktop\Musubi\musubi\musubi-tuner

cmd

(แทนที่ [ชื่อโปรไฟล์ของคุณ] ด้วยชื่อโปรไฟล์ Windows ที่แท้จริงของคุณ)

จากนี้ไป คุณสามารถเปิดใช้งานและเริ่มทำงานได้โดยการคลิกสองครั้งที่ activate.bat

การใช้ Musubi Tuner

การดาวน์โหลดโมเดล

กระบวนการฝึก LoRA ของ Hunyuan Video ต้องการการดาวน์โหลดโมเดลอย่างน้อยเจ็ดตัวเพื่อสนับสนุนตัวเลือกการปรับให้เหมาะสมที่เป็นไปได้ทั้งหมดสำหรับการแคชล่วงหน้าและการฝึก LoRA ของ Hunyuan Video โมเดลเหล่านี้มีขนาดรวมกันมากกว่า 60GB

คำแนะนำปัจจุบันสำหรับการดาวน์โหลดสามารถพบได้ที่ https://github.com/kohya-ss/musubi-tuner?tab=readme-ov-file#model-download

อย่างไรก็ตาม นี่คือคำแนะนำในการดาวน์โหลด ณ เวลาที่เขียน:

clip_l.safetensors, llava_llama3_fp16.safetensors และ llava_llama3_fp8_scaled.safetensors สามารถดาวน์โหลดได้ที่ https://huggingface.co/Comfy-Org/HunyuanVideo_repackaged/tree/main/split_files/text_encoders

mp_rank_00_model_states.pt, mp_rank_00_model_states_fp8.pt และ mp_rank_00_model_states_fp8_map.pt สามารถดาวน์โหลดได้ที่ https://huggingface.co/tencent/HunyuanVideo/tree/main/hunyuan-video-t2v-720p/transformers

pytorch_model.pt สามารถดาวน์โหลดได้ที่ https://huggingface.co/tencent/HunyuanVideo/tree/main/hunyuan-video-t2v-720p/vae

แม้ว่าคุณจะสามารถวางไฟล์เหล่านี้ไว้ในไดเร็กทอรีใดๆ ก็ตามที่คุณต้องการ แต่สำหรับการสอดคล้องกับคำสั่งซึ่งจะตามมาในภายหลัง ให้วางไว้ที่:

C:\Users\[ชื่อโปรไฟล์ของคุณ]\Desktop\Musubi\musubi\musubi-tuner\models\

นี่เป็นไปตามการจัดเรียงไดเร็กทอรีจนถึงจุดนี้

การเตรียมชุดข้อมูล

โดยทั่วไปคุณจะต้องมีภาพระหว่าง 10 ถึง 100 ภาพสำหรับชุดข้อมูลการฝึกสำหรับ LoRA ของ Hunyuan ของคุณ ผลลัพธ์ที่ดีมากสามารถได้รับแม้จากเพียง 15 ภาพ ก็ต่อเมื่อภาพมีความสมดุลและคุณภาพดี

LoRA ของ Hunyuan สามารถฝึกได้ทั้งจากภาพหรือคลิปวิดีโอสั้นๆ และต่ำที่มีความละเอียดต่ำ หรือแม้กระทั่งการผสมผสานระหว่างทั้งสองอย่าง (แม้ว่าการใช้คลิปวิดีโอเป็นข้อมูลการฝึกจะท้าทาย แม้กระทั่งสำหรับ卡 24GB)

อย่างไรก็ตาม คลิปวิดีโอมีประโยชน์จริงๆ ก็ต่อเมื่อตัวละครของคุณ เคลื่อนที่ในลักษณะที่ไม่ธรรมดา ซึ่งโมเดล Hunyuan Video อาจไม่ทราบหรือไม่สามารถเดาได้ หรือมีลักษณะเฉพาะที่เป็นเอกลักษณ์

ตัวอย่างเช่น Roger Rabbit, Xenomorph, The Mask, Spider-Man หรือบุคลิกที่มีลักษณะการเคลื่อนไหวที่เป็นเอกลักษณ์

เนื่องจาก Hunyuan Video รู้จักการเคลื่อนไหวของมนุษย์ปกติแล้ว จึงไม่จำเป็นต้องใช้คลิปวิดีโอเพื่อให้ได้ LoRA ของ Hunyuan Video ที่น่าเชื่อถือสำหรับตัวละครมนุษย์ ดังนั้นเราจะใช้ภาพนิ่ง

การเตรียมภาพ

รายการถัง

TLDR version:

ดีที่สุดคือใช้ภาพที่มีขนาดเท่ากันสำหรับชุดข้อมูลของคุณ หรือใช้การแบ่ง 50/50 ระหว่างสองขนาดที่แตกต่างกัน เช่น 10 ภาพที่มีขนาด 512x768px และ 10 ภาพที่มีขนาด 768x512px

การฝึกอาจไปได้ดีแม้ว่าคุณไม่ทำเช่นนี้ – LoRA ของ Hunyuan Video สามารถให้อภัยได้

Version ที่ยาวกว่า

เช่นเดียวกับ LoRA ของ Kohya-ss สำหรับระบบการสร้างภาพที่มีเสถียรภาพ เช่น Stable Diffusion การแบ่งถัง ถูกใช้เพื่อกระจายภาระงานไปทั่วภาพที่มีขนาดต่างๆ ทำให้สามารถใช้ภาพที่มีขนาดใหญ่ขึ้นโดยไม่ทำให้เกิดข้อผิดพลาดด้านหน่วยความจำที่เวลาฝึก (เช่น การแบ่งถัง ‘ตัด’ ภาพออกเป็นชิ้นๆ ที่ GPU สามารถจัดการได้ ในขณะที่รักษาความสมบูรณ์ของภาพทั้งหมด)

สำหรับแต่ละขนาดของภาพที่คุณรวมไว้ในชุดข้อมูลการฝึก (เช่น 512x768px) จะมีการสร้าง ‘ถัง’ หรือ ‘งานย่อย’ สำหรับขนาดนั้น ดังนั้น หากคุณมีการกระจายภาพดังต่อไปนี้ การแบ่งถังจะไม่สมดุล และอาจทำให้บางภาพได้รับการพิจารณาในการฝึกมากกว่าภาพอื่นๆ:

2x 512x768px images
7x 768x512px images
1x 1000x600px image
3x 400x800px images

เราจะเห็นว่าการแบ่งถังไม่สมดุลระหว่างภาพเหล่านี้:

ดังนั้น ควรยึดติดกับขนาดรูปแบบเดียว หรือพยายามรักษาการกระจายของขนาดต่างๆ ให้สมดุล

ในกรณีใดๆ ก็ตาม ควรหลีกเลี่ยงการใช้ภาพที่มีขนาดใหญ่มาก เนื่องจากอาจชะลอการฝึกโดยไม่มีประโยชน์ที่สำคัญ

สำหรับความเรียบง่าย ฉันใช้ขนาด 512x768px สำหรับภาพทั้งหมดในชุดข้อมูลของฉัน

免責: โมเดล (บุคคล) ที่ใช้ในชุดข้อมูลได้ให้ความยินยอมแก่ฉันในการใช้ภาพเหล่านี้เพื่อวัตถุประสงค์นี้ และได้ให้ความยินยอมแก่การแสดงภาพ AI ที่แสดงภาพของพวกเขาในบทความนี้

ชุดข้อมูลของฉันประกอบด้วย 40 ภาพ ในรูปแบบ PNG (แม้ว่า JPG จะใช้ได้) ภาพของฉันถูกเก็บไว้ที่ C:\Users\Martin\Desktop\DATASETS_HUNYUAN\examplewoman

คุณควรสร้างโฟลเดอร์ แคช ภายในโฟลเดอร์ภาพการฝึก:

ทีนี้ มาทำไฟล์ที่จะกำหนดการฝึกกัน

ไฟล์ TOML

กระบวนการฝึกและการแคชล่วงหน้าของ LoRA ของ Hunyuan ได้รับเส้นทางไฟล์จากไฟล์ข้อความแบนๆ ที่มีนามสกุล .toml

สำหรับการทดสอบของฉัน ไฟล์ TOML อยู่ที่ C:\Users\Martin\Desktop\DATASETS_HUNYUAN\training.toml

เนื้อหาของไฟล์ TOML การฝึกของฉัน看ดังนี้:

[general]

resolution = [512, 768]

caption_extension = ".txt"

batch_size = 1

enable_bucket = true

bucket_no_upscale = false

[[datasets]]

image_directory = "C:\\Users\\Martin\\Desktop\\DATASETS_HUNYUAN\\examplewoman"

cache_directory = "C:\\Users\\Martin\\Desktop\\DATASETS_HUNYUAN\\examplewoman\\cache"

num_repeats = 1

(แบ็กสแลชคู่ไม่จำเป็นต้องใช้เสมอ แต่สามารถช่วยหลีกเลี่ยงข้อผิดพลาดในกรณีที่มีพื้นที่ว่างในเส้นทาง)

เราจะเห็นว่าใน resolution มีการพิจารณาขนาด 512px และ 768px คุณสามารถปล่อยให้เป็น 512 ได้และยังคงได้ผลลัพธ์ที่ดี

คำบรรยายภาพ

Hunyuan Video เป็น ข้อความ+โมเดลการมองเห็นที่มีฐานะ ซึ่งหมายความว่าเราต้องการคำบรรยายภาพสำหรับภาพเหล่านี้ ซึ่งจะถูกพิจารณาในการฝึก การฝึกจะล้มเหลวหากไม่มีคำบรรยาย

มีระบบการสร้างคำบรรยายภาพที่เปิดเผยหลายตัวที่เราสามารถใช้สำหรับงานนี้ได้ แต่เรามาทำให้ง่ายๆ กันดีกว่าโดยใช้ระบบ taggui แม้ว่าจะเก็บไว้ที่ GitHub แต่ taggui มาในรูปแบบของตัวติดตั้ง Windows ที่โหลดไลบรารี Python และอินเทอร์เฟซ GUI ที่เรียบง่าย

หลังจากเริ่มต้น taggui ให้ใช้ ไฟล์ > โหลดไดเร็กทอรี เพื่อนำทางไปยังชุดข้อมูลภาพของคุณ และอาจใส่โทเค็นระบุ (ในกรณีนี้ examplewoman) ที่จะถูกเพิ่มไปยังคำบรรยายทั้งหมด:

(ตรวจสอบให้แน่ใจว่า โหลด 4 บิต ปิดเมื่อ taggui เปิดครั้งแรก – มันจะแสดงข้อผิดพลาดระหว่างการสร้างคำบรรยายหากคุณปล่อยให้เปิด)

เลือกภาพในคอลัมน์ภาพตัวอย่างทางซ้ายและกด CTRL+A เพื่อเลือกภาพทั้งหมด จากนั้นกดปุ่ม เริ่มการสร้างคำบรรยายอัตโนมัติ ทางด้านขวา:

คุณจะเห็น taggui ดาวน์โหลดโมเดลในคอลัมน์ CLI ทางด้านขวา แต่เฉพาะในครั้งแรกที่คุณรันการสร้างคำบรรยายเท่านั้น ไม่เช่นนั้นคุณจะเห็นคำบรรยายตัวอย่าง

ทีนี้ แต่ละภาพจะมีไฟล์ .txt ที่สอดคล้องกันพร้อมคำบรรยายเนื้อหาของภาพ:

คุณสามารถคลิก ตัวเลือกขั้นสูง ใน taggui เพื่อเพิ่มความยาวและรูปแบบของคำบรรยาย แต่นั่นอยู่นอกขอบเขตของการวิ่งนี้

ออกจาก taggui และไปที่…

การแคชล่วงหน้าแบบ Latent

เพื่อหลีกเลี่ยงการโหลด GPU ที่มากเกินไปในขณะฝึก จำเป็นต้องสร้างไฟล์แคชล่วงหน้าสองประเภท – หนึ่งเพื่อแสดงภาพ Latent ที่ได้มาจากภาพเอง และอีกอันหนึ่งเพื่อประเมินการเข้ารหัสข้อความที่เกี่ยวข้องกับเนื้อหาของคำบรรยาย

เพื่อทำให้กระบวนการทั้งสาม (2x แคช + การฝึก) ง่ายขึ้น คุณสามารถใช้ไฟล์ .BAT แบบโต้ตอบที่จะถามคำถามและดำเนินการเมื่อคุณให้ข้อมูลที่จำเป็น

สำหรับการแคชล่วงหน้าแบบ Latent ให้คัดลอกข้อความต่อไปนี้ลงใน Notepad และบันทึกเป็นไฟล์ .BAT (เช่น ชื่อ latent-precache.bat) ตามขั้นตอนที่อธิบายไว้ก่อนหน้านี้:

@echo off

REM Activate the virtual environment

call C:\Users\[ชื่อโปรไฟล์ของคุณ]\Desktop\Musubi\musubi\Scripts\activate.bat

REM Get user input

set /p IMAGE_PATH=Enter the path to the image directory:

set /p CACHE_PATH=Enter the path to the cache directory:

set /p TOML_PATH=Enter the path to the TOML file:

echo You entered:

echo Image path: %IMAGE_PATH%

echo Cache path: %CACHE_PATH%

echo TOML file path: %TOML_PATH%

set /p CONFIRM=Do you want to proceed with latent pre-caching (y/n)?

if /i "%CONFIRM%"=="y" (

REM Run the latent pre-caching script

python C:\Users\[ชื่อโปรไฟล์ของคุณ]\Desktop\Musubi\musubi\musubi-tuner\cache_latents.py --dataset_config %TOML_PATH% --vae C:\Users\[ชื่อโปรไฟล์ของคุณ]\Desktop\Musubi\musubi\musubi-tuner\models\pytorch_model.pt --vae_chunk_size 32 --vae_tiling

) else (

echo Operation canceled.

)

REM Keep the window open

pause

(แทนที่ [ชื่อโปรไฟล์ของคุณ] ด้วยชื่อโปรไฟล์ Windows ที่แท้จริงของคุณ)

ทีนี้ คุณสามารถรันไฟล์ .BAT สำหรับการแคชล่วงหน้าแบบ Latent:

เมื่อถูกถามโดยไฟล์ .BAT ให้วางเส้นทางไปยังโฟลเดอร์ข้อมูล การแคช และไฟล์ TOML

การแคชล่วงหน้าแบบข้อความ

เราจะสร้างไฟล์ .BAT อีกอันสำหรับการแคชล่วงหน้าแบบข้อความ

@echo off

REM Activate the virtual environment

call C:\Users\[ชื่อโปรไฟล์ของคุณ]\Desktop\Musubi\musubi\Scripts\activate.bat

REM Get user input

set /p IMAGE_PATH=Enter the path to the image directory:

set /p CACHE_PATH=Enter the path to the cache directory:

set /p TOML_PATH=Enter the path to the TOML file:

echo You entered:

echo Image path: %IMAGE_PATH%

echo Cache path: %CACHE_PATH%

echo TOML file path: %TOML_PATH%

set /p CONFIRM=Do you want to proceed with text encoder output pre-caching (y/n)?

if /i "%CONFIRM%"=="y" (

REM Use the python executable from the virtual environment

python C:\Users\[ชื่อโปรไฟล์ของคุณ]\Desktop\Musubi\musubi\musubi-tuner\cache_text_encoder_outputs.py --dataset_config %TOML_PATH% --text_encoder1 C:\Users\[ชื่อโปรไฟล์ของคุณ]\Desktop\Musubi\musubi\musubi-tuner\models\llava_llama3_fp16.safetensors --text_encoder2 C:\Users\[ชื่อโปรไฟล์ของคุณ]\Desktop\Musubi\musubi\musubi-tuner\models\clip_l.safetensors --batch_size 16

) else (

echo Operation canceled.

)

REM Keep the window open

pause

(แทนที่ [ชื่อโปรไฟล์ของคุณ] ด้วยชื่อโปรไฟล์ Windows ที่แท้จริงของคุณ)

บันทึกสคริปต์เป็น text-cache.bat (หรือชื่ออื่นที่คุณชอบ) ในตำแหน่งที่สะดวกใดๆ ตามขั้นตอนที่อธิบายไว้ก่อนหน้านี้

รันไฟล์ .BAT ใหม่และทำตามคำแนะนำเพื่อให้ไฟล์แคชที่จำเป็นปรากฏในโฟลเดอร์ แคช:

การฝึก LoRA ของ Hunyuan

การฝึก LoRA จริงจะใช้เวลานานกว่าการเตรียมการสองขั้นตอนนี้

แม้ว่าจะมีตัวแปรหลายตัวที่เราสามารถกังวลได้ (เช่น ขนาดแบตช์ การทำซ้ำ ยุค และวิธีการใช้โมเดลเต็มหรือแบบปรับขนาด) เราจะประหยัดการพิจารณาเหล่านี้ไว้สำหรับวันหน้าและความเข้าใจที่ลึกซึ้งยิ่งขึ้นเกี่ยวกับการสร้าง LoRA

สำหรับตอนนี้ มาทำให้ทางเลือกง่ายๆ โดยฝึก LoRA บน ‘การตั้งค่ากลาง’

เราจะสร้างไฟล์ .BAT อีกอันเพื่อเริ่มการฝึก

@echo off

REM Activate the virtual environment

call C:\Users\[ชื่อโปรไฟล์ของคุณ]\Desktop\Musubi\musubi\Scripts\activate.bat

REM Get user input

set /p DATASET_CONFIG=Enter the path to the dataset configuration file:

set /p EPOCHS=Enter the number of epochs to train:

set /p OUTPUT_NAME=Enter the output model name (e.g., example0001):

set /p LEARNING_RATE=Choose learning rate (1 for 1e-3, 2 for 5e-3, default 1e-3):

if "%LEARNING_RATE%"=="1" set LR=1e-3

if "%LEARNING_RATE%"=="2" set LR=5e-3

if "%LEARNING_RATE%"=="" set LR=1e-3

set /p SAVE_STEPS=How often (in steps) to save preview images:

set /p SAMPLE_PROMPTS=What is the location of the text-prompt file for training previews?

echo You entered:

echo Dataset configuration file: %DATASET_CONFIG%

echo Number of epochs: %EPOCHS%

echo Output name: %OUTPUT_NAME%

echo Learning rate: %LR%

echo Save preview images every %SAVE_STEPS% steps.

echo Text-prompt file: %SAMPLE_PROMPTS%

REM Prepare the command

set CMD=accelerate launch --num_cpu_threads_per_process 1 --mixed_precision bf16 ^

C:\Users\[ชื่อโปรไฟล์ของคุณ]\Desktop\Musubi\musubi\musubi-tuner\hv_train_network.py ^

--dit C:\Users\[ชื่อโปรไฟล์ของคุณ]\Desktop\Musubi\musubi\musubi-tuner\models\mp_rank_00_model_states.pt ^

--dataset_config %DATASET_CONFIG% ^

--sdpa ^

--mixed_precision bf16 ^

--fp8_base ^

--optimizer_type adamw8bit ^

--learning_rate %LR% ^

--gradient_checkpointing ^

--max_data_loader_n_workers 2 ^

--persistent_data_loader_workers ^

--network_module=networks.lora ^

--network_dim=32 ^

--timestep_sampling sigmoid ^

--discrete_flow_shift 1.0 ^

--max_train_epochs %EPOCHS% ^

--save_every_n_epochs=1 ^

--seed 42 ^

--output_dir "C:\Users\[ชื่อโปรไฟล์ของคุณ]\Desktop\Musubi\Output Models" ^

--output_name %OUTPUT_NAME% ^

--vae C:/Users/[ชื่อโปรไฟล์ของคุณ]/Desktop/Musubi/musubi/musubi-tuner/models/pytorch_model.pt ^

--vae_chunk_size 32 ^

--vae_spatial_tile_sample_min_size 128 ^

--text_encoder1 C:/Users/[ชื่อโปรไฟล์ของคุณ]/Desktop/Musubi/musubi/musubi-tuner/models/llava_llama3_fp16.safetensors ^

--text_encoder2 C:/Users/[ชื่อโปรไฟล์ของคุณ]/Desktop/Musubi/musubi/musubi-tuner/models/clip_l.safetensors ^

--sample_prompts %SAMPLE_PROMPTS% ^

--sample_every_n_steps %SAVE_STEPS% ^

--sample_at_first

echo The following command will be executed:

echo %CMD%

set /p CONFIRM=Do you want to proceed with training (y/n)?

if /i "%CONFIRM%"=="y" (

%CMD%

) else (

echo Operation canceled.

)

REM Keep the window open

cmd /k

(แทนที่ [ชื่อโปรไฟล์ของคุณ] ด้วยชื่อโปรไฟล์ Windows ที่แท้จริงของคุณ)

ตรวจสอบให้แน่ใจว่าไดเร็กทอรี C:\Users\[ชื่อโปรไฟล์ของคุณ]\Desktop\Musubi\Output Models\ มีอยู่ และสร้างไดเร็กทอรีนั้นหากไม่มีอยู่แล้ว

การแสดงตัวอย่างการฝึก

มีคุณลักษณะการแสดงตัวอย่างการฝึกแบบพื้นฐานที่เปิดใช้งานสำหรับ Musubi Trainer แล้ว ซึ่งช่วยให้คุณสามารถบังคับให้โมเดลฝึกหยุดและสร้างภาพตามคำสั่งซื้อที่คุณบันทึกไว้ ภาพเหล่านี้ถูกบันทึกในโฟลเดอร์ ตัวอย่าง ที่สร้างขึ้นโดยอัตโนมัติในโฟลเดอร์เดียวกับที่โมเดลฝึกที่ถูกบันทึกไว้

เพื่อเปิดใช้งานคุณจะต้องบันทึกคำสั่งซื้ออย่างน้อยหนึ่งรายการในไฟล์ข้อความ คำสั่งซื้อเหล่านี้สามารถช่วยให้คุณสำรวจปัญหาใดๆ ที่อาจทำให้คุณต้องยกเลิกการฝึกและพิจารณาข้อมูลหรือการตั้งค่าใหม่ ดังนั้นจึงช่วยประหยัดเวลา

แม้ว่าการแสดงตัวอย่างการฝึกจะช่วยให้คุณสามารถสำรวจปัญหาใดๆ ที่อาจทำให้คุณต้องยกเลิกการฝึกและพิจารณาข้อมูลหรือการตั้งค่าใหม่ได้อย่างรวดเร็ว แต่โปรดจำไว้ว่าการแสดงตัวอย่างการฝึกเพิ่มเติมแต่ละรายการจะชะลอการฝึกเล็กน้อย

นอกจากนี้ ภาพการฝึกที่มีขนาดใหญ่กว่าจะชะลอการฝึกมากขึ้น

เมื่อคุณพร้อมแล้ว ให้รันไฟล์ .BAT สำหรับการฝึก

คำถามที่ 1 คือ ‘Enter the path to the dataset configuration’ วางเส้นทางไปยังไฟล์ TOML ของคุณ

คำถามที่ 2 คือ ‘Enter the number of epochs to train’ ตัวแปรนี้เป็นแบบทดลองและขึ้นอยู่กับคุณภาพและจำนวนของภาพและคำบรรยาย ตั้งค่าไว้ที่ 100 ในตอนแรกและดูว่ามันไปได้ดีหรือไม่

คำถามที่ 3 คือ ‘Enter the output model name’ ตั้งชื่อโมเดลของคุณ! ควรยึดติดกับชื่อที่สั้นและเรียบง่าย

คำถามที่ 4 คือ ‘Choose learning rate’ ซึ่งจะถูกตั้งค่าเป็น 1e-3 (ตัวเลือก 1) โดยค่าเริ่มต้น นี่เป็นจุดเริ่มต้นที่ดี

คำถามที่ 5 คือ ‘How often (in steps) to save preview images’ หากคุณตั้งค่านี้ต่ำเกินไป คุณจะเห็นการคืบหน้าระหว่างการบันทึกภาพตัวอย่างน้อย และสิ่งนี้จะชะลอการฝึก

คำถามที่ 6 คือ ‘What is the location of the text-prompt file for training previews?’ วางเส้นทางไปยังไฟล์ข้อความที่มีคำสั่งซื้อสำหรับการแสดงตัวอย่างการฝึก

จากนั้น BAT จะแสดงคำสั่งที่จะส่งไปยังโมเดล Hunyuan และถามว่าคุณต้องการดำเนินการต่อหรือไม่ y/n

ไปที่การฝึก:

ระหว่างนี้ หากคุณตรวจสอบส่วน GPU ของแท็บประสิทธิภาพใน Windows Task Manager คุณจะเห็นว่ากระบวนการนี้ใช้ VRAM ประมาณ 16GB

สิ่งนี้อาจไม่ใช่ตัวเลขที่เลือกแบบสุ่ม เนื่องจากนี่คือปริมาณ VRAM ที่มีอยู่ในหลายๆ การ์ดกราฟิก NVIDIA และโค้ดที่อยู่ด้านบนอาจได้รับการปรับให้เหมาะสมเพื่อให้งานทั้งหมดนี้พอดีกับ 16GB เพื่อประโยชน์ของผู้ที่เป็นเจ้าของการ์ดเหล่านี้

อย่างไรก็ตาม มันง่ายมากที่จะเพิ่มการใช้ VRAM นี้โดยการส่งแฟล็กที่หรูหราไปยังคำสั่งฝึก

ระหว่างการฝึก คุณจะเห็นตัวเลขที่แสดงว่าเวลาที่ผ่านไปตั้งแต่การฝึกเริ่มต้นและเวลาฝึกที่คาดหวัง (ซึ่งจะแตกต่างกันอย่างมากขึ้นอยู่กับแฟล็กที่ตั้งค่า จำนวนภาพ จำนวนภาพตัวอย่างการฝึก และปัจจัยอื่นๆ)

เวลาฝึกที่น่าพอใจคือประมาณ 3-4 ชั่วโมงบนการตั้งค่ากลาง ขึ้นอยู่กับฮาร์ดแวร์ที่มีอยู่ จำนวนภาพ แฟล็ก และปัจจัยอื่นๆ

การใช้ LoRA ที่ฝึกไว้ใน Hunyuan Video

การเลือกจุดตรวจสอบ

เมื่อการฝึกเสร็จสิ้น คุณจะมีจุดตรวจสอบโมเดลสำหรับการฝึกแต่ละครั้ง

ความถี่ในการบันทึกนี้สามารถเปลี่ยนแปลงได้โดยผู้ใช้เพื่อบันทึกบ่อยขึ้นหรือน้อยลงตามที่ต้องการ โดยการแก้ไขตัวเลข --save_every_n_epochs [N] ในไฟล์ .BAT สำหรับการฝึก หากคุณเพิ่มจำนวนต่ำสำหรับการบันทึกในขั้นตอนการตั้งค่าการฝึก มีไฟล์ตรวจสอบที่บันทึกไว้จำนวนมาก

จุดตรวจสอบใดที่จะเลือก?

ตามที่กล่าวไว้ก่อนหน้านี้ โมเดลที่ฝึกในตอนต้นจะยืดหยุ่นมากที่สุด ในขณะที่จุดตรวจสอบที่ล่าสุดอาจให้รายละเอียดมากที่สุด วิธีเดียวที่จะทดสอบปัจจัยเหล่านี้คือการวิ่ง LoRA บางตัวและสร้างวิดีโอบางส่วน ในวิธีนี้คุณจะได้เรียนรู้ว่าจุดตรวจสอบใดที่ให้ผลลัพธ์ที่ดีที่สุดและแสดงถึงความสมดุลที่ดีที่สุดระหว่างความยืดหยุ่นและความซื่อสัตย์

ComfyUI

สภาพแวดล้อมที่ได้รับความนิยมมากที่สุด (แม้ว่าจะไม่ใช่สภาพแวดล้อมเดียว) สำหรับการใช้ LoRA ของ Hunyuan Video ในขณะนี้คือ ComfyUI ซึ่งเป็นบรรณาธิการแบบโหนดที่มีอินเทอร์เฟซ Gradio ที่ทันสมัยซึ่งทำงานในเบราว์เซอร์ของคุณ

แหล่งที่มา: https://github.com/comfyanonymous/ComfyUI

แหล่งที่มา: https://github.com/comfyanonymous/ComfyUI

คำแนะนำการติดตั้งอยู่ที่ รีพอซิตอรี GitHub อย่างเป็นทางการ (จำเป็นต้องดาวน์โหลดโมเดลเพิ่มเติม)

การแปลงโมเดลสำหรับ ComfyUI

โมเดลที่ฝึกไว้ของคุณถูกบันทึกในรูปแบบ (diffusers) ที่ไม่เข้ากันกับการใช้งาน ComfyUI ส่วนใหญ่ Musubi สามารถแปลงโมเดลเป็นรูปแบบที่เข้ากันได้กับ ComfyUI ได้ มาทำไฟล์ .BAT เพื่อทำการแปลงนี้

ก่อนที่จะรัน .BAT นี้ ให้สร้างโฟลเดอร์ C:\Users\[ชื่อโปรไฟล์ของคุณ]\Desktop\Musubi\CONVERTED\ ที่สคริปต์คาดหวัง

@echo off

REM Activate the virtual environment

call C:\Users\[ชื่อโปรไฟล์ของคุณ]\Desktop\Musubi\musubi\Scripts\activate.bat

:START

REM Get user input

set /p INPUT_PATH=Enter the path to the input Musubi safetensors file (or type "exit" to quit):

REM Exit if the user types "exit"

if /i "%INPUT_PATH%"=="exit" goto END

REM Extract the file name from the input path and append 'converted' to it

for %%F in ("%INPUT_PATH%") do set FILENAME=%%~nF

set OUTPUT_PATH=C:\Users\[ชื่อโปรไฟล์ของคุณ]\Desktop\Musubi\Output Models\CONVERTED\%FILENAME%_converted.safetensors

set TARGET=other

echo You entered:

echo Input file: %INPUT_PATH%

echo Output file: %OUTPUT_PATH%

echo Target format: %TARGET%

set /p CONFIRM=Do you want to proceed with the conversion (y/n)?

if /i "%CONFIRM%"=="y" (

REM Run the conversion script with correctly quoted paths

python C:\Users\[ชื่อโปรไฟล์ของคุณ]\Desktop\Musubi\musubi\musubi-tuner\convert_lora.py --input "%INPUT_PATH%" --output "%OUTPUT_PATH%" --target %TARGET%

echo Conversion complete.

) else (

echo Operation canceled.

)

REM Return to start for another file

goto START

:END

REM Keep the window open

echo Exiting the script.

pause

(แทนที่ [ชื่อโปรไฟล์ของคุณ] ด้วยชื่อโปรไฟล์ Windows ที่แท้จริงของคุณ)

บันทึกสคริปต์เป็น convert.bat (หรือชื่ออื่นที่คุณชอบ) ตามขั้นตอนที่อธิบายไว้ก่อนหน้านี้

เมื่อบันทึกแล้ว ให้คลิกสองครั้งที่ไฟล์ .BAT ใหม่ ซึ่งจะถามถึงตำแหน่งของไฟล์ที่จะแปลง

วางเส้นทางไปยังไฟล์ที่คุณต้องการแปลง คลิก y แล้วกด Enter

หลังจากบันทึก LoRA ที่แปลงแล้วไปยังโฟลเดอร์ CONVERTED สคริปต์จะถามว่าคุณต้องการแปลงไฟล์อื่นหรือไม่ หากคุณต้องการทดสอบจุดตรวจสอบหลายจุดใน ComfyUI ให้แปลงโมเดลบางส่วน

เมื่อคุณแปลงโมเดลเพียงพอแล้ว ให้ปิดหน้าต่างคำสั่ง .BAT

คุณสามารถคัดลอกโมเดลที่แปลงแล้วไปยังโฟลเดอร์ models\loras ในการติดตั้ง ComfyUI ของคุณ

โดยทั่วไป ตำแหน่งที่ถูกต้องคือบางอย่างเช่น:

C:\Users\[ชื่อโปรไฟล์ของคุณ]\Desktop\ComfyUI\models\loras\

การสร้าง LoRA ของ Hunyuan ใน ComfyUI

แม้ว่าเวิร์กโฟลว์แบบโหนดของ ComfyUI จะดูซับซ้อนในตอนแรก แต่การตั้งค่าของผู้ใช้ที่มีประสบการณ์มากกว่าสามารถโหลดได้โดยการลากภาพ (ที่สร้างโดยการตั้งค่า ComfyUI ของผู้ใช้รายนั้น) โดยตรงเข้าไปในหน้าต่าง ComfyUI

เวิร์กโฟลว์สามารถถ่ายโอนออกมาเป็นไฟล์ JSON ได้ ซึ่งสามารถนำเข้าได้โดยตรงหรือลากเข้าไปในหน้าต่าง ComfyUI

บางเวิร์กโฟลว์ที่นำเข้ามาอาจมีการอ้างอิงโมดูลที่ไม่มีอยู่ในตัวติดตั้งของคุณ ดังนั้นจึงควรติดตั้ง ComfyUI-Manager ซึ่งสามารถดึงโมดูลที่หายไปได้โดยอัตโนมัติ

แหล่งที่มา: https://github.com/ltdrdata/ComfyUI-Manager

แหล่งที่มา: https://github.com/ltdrdata/ComfyUI-Manager

เพื่อโหลดเวิร์กโฟลว์ที่ใช้ในการสร้างวิดีโอจากโมเดลในบทความนี้ ให้ดาวน์โหลด ไฟล์ JSON นี้ และลากเข้าไปในหน้าต่าง ComfyUI (แม้ว่าจะมีตัวอย่างเวิร์กโฟลว์ที่ดีกว่ามากที่ชุมชน Reddit และ Discord ที่ใช้ Hunyuan Video และฉันปรับให้เหมาะสมจากหนึ่งในนั้น)

นี่ไม่ใช่ที่ที่เหมาะสมสำหรับการสอน ComfyUI อย่างละเอียด แต่ควรกล่าวถึงพารามิเตอร์บางตัวที่สำคัญซึ่งจะส่งผลต่อเอาต์พุตของคุณหากคุณดาวน์โหลดและใช้เลย์เอาต์ JSON ที่ฉันเชื่อมโยงไป:

1) ความกว้างและความสูง

ภาพที่ใหญ่กว่าจะใช้เวลานานกว่าในการสร้าง และมีความเสี่ยงต่อข้อผิดพลาด OOM (Out of Memory) ที่สูงกว่า

2) ความยาว

ค่านี้เป็นตัวเลขสำหรับจำนวนเฟรม จำนวนวินาทีที่บวกกันขึ้นอยู่กับอัตราเฟรมต่อวินาที (ตั้งค่าเป็น 30 เฟรมต่อวินาทีในเลย์เอาต์นี้) คุณสามารถแปลงวินาทีเป็นเฟรมตามอัตราเฟรมต่อวินาที ที่ Omnicalculator

3) ขนาดแบตช์

ค่าขนาดแบตช์ที่สูงขึ้นจะทำให้ผลลัพธ์เร็วขึ้น แต่จะเพิ่มภาระ VRAM มากขึ้น ตั้งค่านี้สูงเกินไป และคุณอาจได้รับข้อผิดพลาด OOM

4) การควบคุมหลังการสร้าง

สิ่งนี้ควบคุมเมล็ดสุ่ม ตัวเลือกสำหรับโหนดย่อยนี้คือ คงที่, เพิ่ม, ลด และ สุ่ม หากคุณปล่อยให้เป็น คงที่ และไม่เปลี่ยนคำสั่งซื้อ คุณจะได้รับภาพเดียวกันทุกครั้ง หากคุณแก้ไขคำสั่งซื้อ ภาพจะเปลี่ยนแปลงในระดับที่จำกัด ตัวเลือก เพิ่ม และ ลด ช่วยให้คุณสำรวจค่าเมล็ดสุ่มที่อยู่ใกล้เคียง ในขณะที่ สุ่ม จะให้การตีความใหม่ทั้งหมดของคำสั่งซื้อ

5) ชื่อ LoRA

คุณจะต้องเลือกโมเดลที่ติดตั้งไว้ของตัวเองที่นี่ ก่อนที่จะพยายามสร้าง

6) โทเค็น

หากคุณฝึกโมเดลของคุณให้ใช้โทเค็นในการเรียกใช้แนวคิด (เช่น example-person) ให้ใส่คำเรียกโทเค็นนั้นในคำสั่งซื้อของคุณ

7) ขั้นตอน

สิ่งนี้แสดงถึงจำนวนขั้นตอนที่ระบบจะใช้กระบวนการ扩散 การใช้ขั้นตอนที่สูงขึ้นอาจได้รับรายละเอียดที่ดีกว่า แต่มีเพดานในความมีประสิทธิภาพของแนวทางนี้ และอาจเป็นเรื่องยากที่จะค้นหา

8) ขนาดไทล์

สิ่งนี้กำหนดว่าจะจัดการข้อมูลกี่รายการในระหว่างการสร้าง การเพิ่มสิ่งนี้อาจเร่งการสร้าง แต่การเพิ่มสิ่งนี้มากเกินไปอาจนำไปสู่ประสบการณ์ OOM ที่น่าหงุดหงิดเป็นพิเศษ เนื่องจากจะเกิดขึ้นที่จุดสิ้นสุดของกระบวนการที่ยาว

9) การทับซ้อนเชิงเวลา

การสร้างวิดีโอของ Hunyuan สำหรับคนสามารถนำไปสู่ ‘การซ้อนภาพ’ หรือการเคลื่อนไหวที่ไม่น่าเชื่อถือ หากค่าตัวเลือกนี้ตั้งค่าต่ำเกินไป โดยทั่วไปแล้วความฉลาดที่ดีที่สุดคือการตั้งค่านี้ให้สูงกว่าจำนวนเฟรม เพื่อให้ได้การเคลื่อนไหวที่ดีกว่า

สรุป

แม้ว่าการสำรวจการใช้ ComfyUI จะอยู่นอกขอบเขตของบทความนี้ แต่ประสบการณ์ของชุมชนใน Reddit และ Discord สามารถช่วยให้คุณเรียนรู้ได้ง่ายขึ้น และมีหลาย คู่มือออนไลน์ ที่แนะนำพื้นฐาน

เผยแพร่ครั้งแรกวันพฤหัสบดีที่ 23 มกราคม 2025

นักเขียนด้านการเรียนรู้ของเครื่องจักร ผู้เชี่ยวชาญด้านสังเคราะห์ภาพมนุษย์ อดีตหัวหน้าฝ่ายวิจัยเนื้อหาที่ Metaphysic.ai