MiniMax Music 3 เปิดน้ำหนักโมเดล: เริ่มทำเพลงใน ComfyUI แบบแยก Lyrics กับ Caption
MiniMax Music 3 มีน้ำหนักโมเดลให้ดาวน์โหลดและมี workflow พร้อมเริ่มใน ComfyUI บทความนี้พาเตรียมไฟล์ แยกเนื้อร้องออกจากคำบรรยายดนตรี และเลือกวิธีลดการใช้ VRAM ก่อนสร้าง take แรก

MiniMax Music 3 น่าสนใจสำหรับคนใช้ ComfyUI ไม่ใช่เพราะมีหน้าเว็บให้ลองสร้างเพลง แต่เพราะเราดาวน์โหลดน้ำหนักโมเดลมาจัด workflow และรันบนเครื่องของตัวเองได้ จุดที่ต้องเข้าใจก่อนโหลดไฟล์คือ โมเดลไม่ได้รับคำสั่งทุกอย่างผ่านข้อความก้อนเดียว เนื้อร้องกับแท็กส่วนเพลงอยู่ในช่อง Lyrics ส่วนแนว อารมณ์ เสียงร้อง เครื่องดนตรี และการเรียบเรียงอยู่ในช่อง Caption
เมื่อใส่ข้อมูลแต่ละชนิดลงในช่องที่ตรงกับหน้าที่ เราจะแก้เนื้อร้องได้โดยไม่ปนกับคำบรรยายดนตรี เปลี่ยน seed เพื่อหา take ใหม่จากโจทย์เดิม และเลือกวิธีลดการใช้ VRAM ให้เหมาะกับเครื่องได้ บทความนี้จะใช้ ComfyUI เป็นเส้นทางหลัก แล้วเปรียบเทียบ Diffusers กับ SGLang-Omni ไว้สำหรับคนที่ต้องการเขียนโค้ดหรือเปิดโมเดลเป็นบริการ API
ก่อนดาวน์โหลด ต้องเข้าใจคำว่า open weights ให้ตรงกัน
MiniMaxAI แจกน้ำหนัก MiniMax Music 3 ในรูปแบบ Safetensors สำหรับ PyTorch และ Diffusers ภายใต้ MiniMax-Music3 Community License จึงเรียกได้ว่าเปิดน้ำหนักโมเดล (open weights) หรือมีน้ำหนักโมเดลให้ดาวน์โหลด แต่ข้อมูลนี้อย่างเดียวไม่ได้บอกว่าเรานำผลงานไปใช้เชิงพาณิชย์ ดัดแปลง หรือแจกต่อได้แค่ไหน หากจะใช้กับงานจริง ควรอ่านเงื่อนไขฉบับเต็มตามกรณีใช้งานของตัวเองแทนการตีความคำว่า open weights ว่าเท่ากับโอเพนซอร์ส
หน้าโมเดลเสนอทางรันไว้สามแบบ ได้แก่ ComfyUI, Diffusers และ SGLang-Omni เส้นทางหลักจาก model card สร้างไฟล์ WAV สเตอริโอ 32 kHz แบบ 16-bit ส่วน workflow ใน ComfyUI บันทึกผ่าน SaveAudioAdvanced เป็น MP3 จึงควรตรวจชนิดไฟล์ตาม backend ที่เลือก ไม่ควรคาดว่าทุกทางจะให้ไฟล์แบบเดียวกัน
MiniMaxAI ระบุว่าโมเดลสร้างเพลงพร้อมเสียงร้องได้ยาวสูงสุด 5 นาที และออกแบบให้การเรียบเรียงพัฒนาไปตลอดเพลง ควรใช้คำกล่าวจากผู้สร้างนี้เป็นขอบเขตสำหรับวางการทดลอง ไม่ใช่ข้อสรุปว่าเพลงที่ได้จะมีคุณภาพเสียงดีเพียงใด
หลักคิดสำคัญ: เนื้อร้องกับคำบรรยายดนตรีทำคนละงาน
MiniMax Music 3 แบ่งอินพุตสำคัญเป็นสองส่วน
| ช่อง | ใส่อะไร | ใช้เปลี่ยนอะไร |
|---|---|---|
Lyrics | เนื้อร้องและแท็กส่วนเพลง เช่น [Intro], [Verse], [Chorus], [Bridge], [Instrumental], [Outro] | คำที่จะร้องและลำดับส่วนของเพลง |
Caption | แนว อารมณ์ ลักษณะเสียงร้อง เครื่องดนตรี การเรียบเรียง และรายละเอียดโปรดักชัน | ภาพรวมของเสียงและพัฒนาการในแต่ละช่วง |
ใน ComfyUI ควรเขียน Caption เป็นคำบรรยายดนตรีแบบมีโครงสร้าง (structured caption) โดยแบ่งข้อมูลเป็น Global Metadata, Vocal Details และ Arrangement โครงนี้ช่วยให้เราใส่เงื่อนไขแต่ละข้อได้ถูกส่วน แต่ไม่รับประกันว่าโมเดลจะทำตาม tempo, key, เครื่องดนตรี หรือโครงสร้างตรงทุกจุด เพราะรายละเอียดเหล่านี้ใช้ชี้ทิศทางการสร้างเพลง ไม่ใช่คำสั่งเชิงสัญลักษณ์ที่บังคับผลได้ตายตัว
ลองเตรียมร่าง Caption ด้วยโครงต่อไปนี้ก่อนเปิด workflow
Global Metadata:
- แนวและอิทธิพลทางดนตรี
- อารมณ์
- tempo และ key ที่ต้องการทดลอง
- ภาพรวมงานโปรดักชัน
Vocal Details:
- ประเภทและบุคลิกเสียงร้อง
- วิธีออกเสียงและระดับพลัง
- การประสานเสียง
Arrangement:
- เครื่องดนตรีหลัก
- ความหนาแน่นของแต่ละช่วง
- การเปลี่ยนผ่านจาก verse ไป chorus
- จุดพักหรือ instrumental breakจากนั้นแยกเนื้อร้องไว้ใน Lyrics และใช้แท็กส่วนเพลงกำกับลำดับ เช่น
[Intro]
[Verse]
<เนื้อร้องท่อน verse>
[Chorus]
<เนื้อร้องท่อน chorus>
[Bridge]
<เนื้อร้องท่อน bridge>
[Outro]แท็กมีหน้าที่บอกโครงสร้าง ส่วนข้อความใต้แท็กมีหน้าที่สื่อเนื้อหาและอารมณ์ของคำร้อง ถ้าเอารายละเอียดเครื่องดนตรีหรือมิกซ์ไปปนในเนื้อร้อง เราจะย้อนกลับมาแก้โจทย์แต่ละด้านได้ยากขึ้น

เริ่ม MiniMax Music 3 ใน ComfyUI
1. อัปเดต ComfyUI แล้วเปิด template
อัปเดต ComfyUI เป็นเวอร์ชันล่าสุดก่อน จากนั้นไปที่ Template Library → Audio → MiniMax Music 3 หากไม่พบ template หรือ core node ที่ workflow ต้องใช้ สาเหตุหนึ่งที่เอกสารระบุคือ ComfyUI เก่าเกินไป
เมื่อเปิด template ให้ทำตาม pop-up เพื่อดาวน์โหลดโมเดลก่อน วิธีนี้ลดโอกาสวางไฟล์ผิดตำแหน่ง เพราะ workflow จะพาเลือกส่วนประกอบที่ต้องใช้
2. ตรวจไฟล์โมเดลทั้งสามส่วน
workflow ต้องใช้ไฟล์สามกลุ่ม
- Diffusion model เลือกได้ทั้ง FP16 หรือ INT8 แล้ววางใน
ComfyUI/models/diffusion_models/ - Text encoder แบบ INT8 วางใน
ComfyUI/models/text_encoders/ - VAE วางใน
ComfyUI/models/vae/
ถ้าดาวน์โหลดเองแทน pop-up ให้ตรวจชื่อไฟล์และโฟลเดอร์ให้ครบก่อนเปิด workflow ใหม่อีกครั้ง เอกสารไม่ได้ระบุตัวเลข VRAM ขั้นต่ำสำหรับ ComfyUI ดังนั้นอย่านำตัวเลขจาก Diffusers มาตัดสินว่า workflow นี้จะพอดีกับการ์ดของเรา
3. ใส่ Caption และ Lyrics
นำคำบรรยายแบบมีโครงสร้างไปใส่ใน Caption แล้วใส่เนื้อร้องพร้อมแท็กส่วนเพลงใน Lyrics เริ่มจากเพลงสั้นและ arrangement ที่ไม่ซับซ้อนเพื่อให้เห็นก่อนว่า node ทั้งชุดทำงานครบหรือไม่ หลังจากได้ไฟล์แรกแล้วค่อยเพิ่มรายละเอียดเสียงร้อง เครื่องดนตรี และการเปลี่ยนผ่านระหว่างท่อน
ถ้าผลลัพธ์ไม่ตรงโจทย์ ให้ฟังว่าอาการอยู่ที่เนื้อร้อง คำบรรยายดนตรี หรือการสุ่ม แล้วแก้ทีละส่วน
- ถ้าต้องการเปลี่ยนข้อความที่ร้องหรือลำดับท่อน ให้แก้เนื้อร้องและแท็กส่วนเพลงใน
Lyrics - ถ้าแนว อารมณ์ ลักษณะเสียงร้อง หรือเครื่องดนตรีไม่ตรงโจทย์ ให้แก้คำบรรยายดนตรีใน
Caption - ต้องการ take อื่นจากโจทย์เดิม ให้เปลี่ยน seed
- ต้องการตรวจซ้ำ take เดิม ให้ใช้ seed เดิมและคงค่าอื่นไว้
วิธีนี้ทำให้เราเปลี่ยนทีละปัจจัยและฟังความต่างได้ง่ายกว่าการแก้ทุกช่องพร้อมกัน
4. ตั้งความยาวและ seed
ค่า max_duration ใช้กำหนดความยาวเป้าหมายเป็นวินาที template ตั้งต้นไว้ที่ 60 วินาที และเอกสารระบุว่าโมเดลรองรับได้ราว 300 วินาที เริ่มจาก 60 วินาทีก่อนช่วยลดเวลาที่เสียไปกับการรันยาวในขณะที่ยังตรวจเพียงว่าโครงอินพุตทำงานตามที่ต้องการหรือไม่
seed ใช้ควบคุมการสุ่ม หากต้องการทำซ้ำ take เดิม ให้เก็บ seed และค่าที่เกี่ยวข้องไว้ หากต้องการฟังทางเลือกใหม่ภายใต้ Lyrics และ Caption ชุดเดิม ให้เปลี่ยน seed วิธีนี้เหมาะกับการแยกว่าโจทย์ยังไม่ชัด หรือเป็นเพียง take หนึ่งที่ยังไม่เหมาะ
5. ลดการใช้ VRAM เมื่อ VRAM ไม่พอ
ใน ComfyUI เราลดการใช้ VRAM ได้สองวิธี
- ใช้ diffusion model แบบ INT8 แทน FP16 สำหรับเพลงยาวหรือเครื่องที่มี VRAM น้อย
- เปิด
tiled_decodeเพื่อลดการใช้ VRAM ระหว่างถอดรหัส
การเปิด tiled_decode ทำให้รันช้าลงเล็กน้อยและอาจเกิดรอยต่อบริเวณขอบ tile ตามคำเตือนในเอกสาร หากเครื่องมี VRAM เพียงพอ เอกสารแนะนำให้ปิด tiled_decode เพื่อให้ได้คุณภาพเสียงดีที่สุด เมื่อ VRAM ไม่พอ ให้ลอง INT8 หรือ tiled_decode ทีละอย่าง แล้วฟังผลและจับเวลาของแต่ละรอบ วิธีนี้ช่วยให้รู้ว่าตัวเลือกใดลด VRAM โดยกระทบเวลาและเสียงน้อยกว่าสำหรับเครื่องของเรา

6. หาไฟล์ที่สร้างเสร็จ
ค่าเริ่มต้นของ workflow บันทึกไฟล์ไว้ที่
ComfyUI/output/audio/audio_minimax_music3.mp3ถ้าเปลี่ยนชื่อไฟล์ใน node SaveAudioAdvanced ไฟล์จะอยู่ในโฟลเดอร์เดียวกันตามชื่อใหม่ เมื่อลองสร้างเพลงด้วย seed หลายค่า ควรตั้งชื่อแต่ละไฟล์ให้ย้อนกลับไปหา Caption, Lyrics, seed และค่าความยาวของ take นั้นได้
ใช้ music-caption-rewriter เมื่อไอเดียยังเป็นประโยคสั้น
MiniMax-AI มี music-caption-rewriter ซึ่งเป็นสกิลช่วยขยายคำบรรยายดนตรี ติดตั้งตามคำสั่งในเอกสารได้ดังนี้
npx skills add MiniMax-AI/MiniMax-Music3 --skill music-caption-rewriterผู้สร้างระบุว่าสกิลนี้รับคำบรรยายสั้นกับเนื้อร้องที่มีแท็ก แล้วช่วยขยายเป็นคำบรรยายแบบมีโครงสร้าง เลือกตัวอย่างสไตล์อ้างอิงที่เข้ากัน และวางการเรียบเรียงรายส่วน โดยไม่เรียก API ภายนอกหรือเพิ่ม dependency ขณะรัน
ก่อนใช้ ควรเตรียมข้อมูลให้สกิลแยกได้ว่าอะไรคือโจทย์ดนตรีและอะไรคือเนื้อร้อง เช่น แนว อารมณ์ บุคลิกเสียงร้อง เครื่องดนตรีหลัก การพัฒนาความหนาแน่นของเพลง และเนื้อร้องที่แบ่งท่อนแล้ว จากนั้นอ่านผลที่สกิลเขียนกลับมาเหมือนร่าง Caption ตรวจว่ามีรายละเอียดเกินเจตนาหรือขัดกันหรือไม่ แล้วค่อยนำไปใส่ใน workflow
สกิลนี้ช่วยขยายไอเดียสั้นเป็นคำบรรยายแบบมีโครงสร้าง แต่ไม่ได้เปลี่ยนข้อจำกัดของโมเดล tempo, key, เครื่องดนตรี เนื้อร้อง และตำแหน่งส่วนเพลงยังอาจคลาดจากคำสั่ง จึงควรตรวจและแก้ร่างให้ชัด แล้วทดลองด้วย seed หลายค่า ไม่ควรถือว่าคำบรรยายที่ละเอียดขึ้นจะทำให้เพลงตรงคำสั่งขึ้นเสมอ
ถ้าไม่ใช้ ComfyUI ควรเลือก backend ไหน
เลือกเส้นทางตามวิธีที่ต้องการควบคุมงานและทรัพยากรของเครื่อง
| เส้นทาง | เหมาะกับใคร | สิ่งที่ต้องรู้ก่อนเลือก |
|---|---|---|
| ComfyUI | คนที่ต้องการทดลองผ่าน node และเริ่มจาก template | มีโมเดล FP16/INT8 และ tiled_decode แต่เอกสารไม่ระบุ VRAM ขั้นต่ำ |
| Diffusers | คนที่ต้องการเขียน Python คุมระยะเวลา seed และการ offload | ตาม model card การรันแบบ full precision โดยไม่เปิด offload เหมาะกับ GPU ที่มี VRAM 24 GB ขึ้นไป; automatic CPU offload ย้ายส่วนประกอบระหว่าง GPU กับ CPU และใช้ VRAM ราว 22 GB; group offloading สตรีม language model ทีละ layer จนรันบน GPU ที่มี VRAM 8 GB ได้โดยช้าลง |
| SGLang-Omni | คนที่ต้องการเปิดโมเดลเป็นบริการ API | ตัวอย่างใน repository แบ่งงานบน CUDA GPU สองตัว และสร้างแบบ non-streaming |
ฝั่ง Diffusers มีตัวอย่างโหลดด้วย ModularPipeline.from_pretrained("MiniMaxAI/MiniMax-Music3") แล้วกำหนด audio_duration กับ seed ใน Python อย่างไรก็ตาม ตัวอย่างติดตั้งใน model card อ้างถึง commit ของ pull request เฉพาะ เพราะสถานะของ pull request เปลี่ยนได้ ควรเปิด model card เวอร์ชันปัจจุบันและทำตามคำแนะนำล่าสุด แทนการยึด commit เดิมเป็นขั้นติดตั้งถาวร
ฝั่ง SGLang-Omni เปิดโมเดลเป็นบริการ API ได้จาก root ของ repository SGLang-Omni ด้วยคำสั่ง
sgl-omni serve --model-path MiniMaxAI/MiniMax-Music3 --port 8000จากนั้นส่ง POST ไปที่ http://127.0.0.1:8000/v1/audio/speech โดยใส่เนื้อร้องและแท็กไว้ใน input, ใส่คำบรรยายดนตรีใน instructions, ตั้ง stream: false และใช้ seed คุมการสุ่ม API ใช้ max_new_tokens เป็นเพดานจำนวนเฟรมเสียงที่อัตรา 25 เฟรมต่อวินาที เส้นทางนี้จึงเหมาะกับคนที่ต้องการให้ระบบอื่นเรียกโมเดลผ่าน API มากกว่าทดลองผ่าน node ที่มองเห็นข้อมูลแต่ละส่วน
เช็กสี่เรื่องก่อนเริ่ม take แรก
หนึ่ง เครื่องต้องใช้ CUDA การรันโมเดลตามเอกสารต้องใช้ CUDA หากไม่มี CUDA GPU จะรันโมเดลด้วยเส้นทางเหล่านี้ไม่ได้
สอง การสร้างเพลงเป็นแบบ non-streaming ตัวโมเดลและ API ยังสร้างแบบ non-streaming จึงต้องรอให้ระบบสร้างเพลงเสร็จก่อนรับผล อย่าตีความการที่หน้า Hugging Face Space ทยอยส่งช่วงเสียงว่า backend รองรับ streaming
สาม มีเพดานอินพุตและเสียง ข้อความหลัง tokenize จำกัด 5,000 tokens และเสียงจำกัด 9,000 acoustic frames ถ้ากำลังวางเพลงยาว ควรเขียน Caption ให้กระชับและใช้ max_duration เป็นเป้าหมายที่ชัด
สี่ คำสั่งดนตรีเป็นตัวชี้ทิศทาง แท็กส่วนเพลง tempo, key, เครื่องดนตรี เนื้อร้อง และโครงสร้างอาจไม่ตรงทุกจุด ควรออกแบบการทดลองให้เปลี่ยนทีละส่วน เก็บ seed และบันทึกค่าที่ใช้ แทนการตัดสิน workflow จาก take เดียว
MiniMax Music 3 จะมีประโยชน์กับคนรันเองมากที่สุดเมื่อเรามองมันเป็นทั้งโมเดลและระบบทดลอง เริ่มจาก template ที่รันได้ แยก Lyrics ออกจาก Caption ใช้เพลงสั้นตรวจ workflow เก็บ seed ทุกครั้ง แล้วค่อยเพิ่มความยาวและความซับซ้อน วิธีนี้ช่วยให้แยกได้ว่าปัญหาอยู่ที่เนื้อร้อง คำบรรยายดนตรี การสุ่ม หรือ VRAM ของเครื่อง โดยไม่ต้องหวังให้คำสั่งก้อนเดียวแก้ทุกอย่าง
ที่มา: แหล่งข้อมูลที่รองรับข้อเท็จจริงในบทความ ได้แก่ MiniMaxAI/MiniMax-Music3 บน Hugging Face, repository MiniMax-Music3 บน GitHub, MiniMax Music 3 Studio บน Hugging Face Spaces และ คู่มือ MiniMax Music 3 ใน ComfyUI; ลิงก์ทดลองและอ่านเพิ่ม ได้แก่ หน้าเดโม MiniMax Music 3; โพสต์อภิปรายบน Reddit ไม่ได้ใช้รองรับข้อกล่าวอ้างในบทความ
ชอบเรื่องแนวนี้ มีอีบุ๊คฟรีให้อ่านต่อ
Vibe Coding สำหรับคนไม่ใช่โปรแกรมเมอร์ ใช้ Claude Code สร้าง landing page, mini app และ prototype จริงโดยไม่ต้องเขียนโค้ด
กดสมัครแล้วเราจะส่งเทคนิค AI และของแจกใหม่ๆ ให้ทางอีเมล เลิกรับได้ตลอด
Vibecoding · The Developer's Playbook

ฉบับภาษาไทย 10 บท พา dev สร้าง Personal Finance Tracker (LINE OA + AI จัดหมวดอัตโนมัติ) ตั้งแต่โครงโปรเจกต์บรรทัดแรกจนแอปทำงานจริงบน server


