Modular Diffusers: ต่อบล็อก AI สร้างสรรค์งานได้ไร้ขีดจำกัด

ในยุคที่ AI สร้างสรรค์ (Generative AI) กำลังเติบโตอย่างก้าวกระโดด การพัฒนาและปรับแต่งโมเดลให้เข้ากับความต้องการเฉพาะด้านเป็นสิ่งสำคัญ Hugging Face ได้เปิดตัว Modular Diffusers เครื่องมือใหม่ที่ปฏิวัติวงการด้วยแนวคิด "บล็อกที่ต่อกันได้" (Composable Building Blocks) ให้เหล่านักพัฒนาและผู้ที่สนใจสามารถสร้างสรรค์เวิร์กโฟลว์ AI ที่ซับซ้อนได้อย่างยืดหยุ่นและมีประสิทธิภาพ

บทความนี้จะพาคุณไปทำความรู้จักกับ Modular Diffusers ตั้งแต่การใช้งาน API แบบคุ้นเคย ไปจนถึงการสร้างบล็อกที่ปรับแต่งเองและนำมาประกอบกันเป็นไปป์ไลน์ AI ในแบบของคุณเอง พร้อมทั้งแสดงให้เห็นการทำงานร่วมกับ Mellon เครื่องมือสร้างเวิร์กโฟลว์แบบ Visual Node ที่จะช่วยให้การเชื่อมต่อบล็อกต่าง ๆ เป็นเรื่องง่าย

Modular Diffusers คืออะไร?

Modular Diffusers เป็นเฟรมเวิร์กที่ออกแบบมาเพื่อให้การทำงานกับโมเดล Diffusion มีความยืดหยุ่นมากขึ้น แทนที่จะมองว่าไปป์ไลน์ AI เป็นกล่องดำที่ทำงานตั้งแต่ต้นจนจบ Modular Diffusers มองว่ามันคือชุดของ "บล็อก" ที่ทำงานเฉพาะด้าน เช่น การเข้ารหัสข้อความ (Text Encoding), การเข้ารหัสรูปภาพ (Image Encoding), การลดสัญญาณรบกวน (Denoising) และการถอดรหัส (Decoding)

![ภาพประกอบ: บล็อก AI ที่เรียงต่อกัน](ขอบคุณ แหล่งข้อมูล
https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/modular-diffusers/modular-diffusers-pipeline.png)
(ภาพตัวอย่าง: โครงสร้างไปป์ไลน์ที่ประกอบด้วยบล็อกย่อย)

แต่ละบล็อกจะมีความสามารถในการรับข้อมูลเข้า (Input) และส่งข้อมูลออก (Output) ที่ชัดเจน คุณสามารถ:

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

การใช้งานเริ่มต้นทำได้ง่าย ๆ ด้วยคำสั่ง .initpipeline() เพื่อแปลงบล็อกให้เป็นไปป์ไลน์ที่ทำงานได้ และ .loadcomponents() เพื่อโหลดน้ำหนักโมเดล (Model Weights)

สร้างสรรค์บล็อก AI ในแบบของคุณเอง 🛠️

จุดเด่นที่แท้จริงของ Modular Diffusers คือความสามารถในการสร้าง "บล็อกที่กำหนดเอง" (Custom Block) ได้อย่างอิสระ บล็อกที่กำหนดเองนี้เป็นคลาส Python ที่คุณสามารถกำหนดส่วนประกอบ (Components), ข้อมูลเข้า (Inputs), ข้อมูลออก (Outputs) และตรรกะการคำนวณ (Computation Logic) ของบล็อกนั้น ๆ ได้

เมื่อคุณสร้างบล็อกเสร็จแล้ว ก็สามารถนำไปเสียบเข้ากับเวิร์กโฟลว์ใดก็ได้ที่คุณต้องการ

ตัวอย่างการสร้างบล็อก:

สมมติว่าเราต้องการสร้างบล็อกเพื่อสกัดแผนที่ความลึก (Depth Map) จากรูปภาพโดยใช้โมเดล Depth Anything V2:

class DepthProcessorBlock:
def expected_components(self):
return {"depth_estimator": "depth_anything_v2"}
# ระบุโมเดลที่บล็อกต้องการ

def __init__(self, depth_estimator, **kwargs):
self.depth_estimator = depth_estimator

def __call__(self, image: Image.Image) -> Image.Image:

# ตรรกะการคำนวณเพื่อสกัด Depth Map
depth_map = self.depth_estimator(image).depth
return depth_map
  • expected_components: กำหนดว่าบล็อกนี้ต้องการโมเดลอะไรบ้าง ในที่นี้คือโมเดลสำหรับประมาณค่าความลึก
  • init: รับโมเดลที่ต้องการเข้ามาใช้งาน
  • call: เป็นส่วนที่บรรจุตรรกะการทำงานหลักของบล็อก

เมื่อสร้างบล็อกเสร็จแล้ว คุณสามารถกำหนดค่าเริ่มต้นของโมเดลที่จะโหลดได้ผ่าน pretrainedmodelnameorpath ซึ่งจะทำให้ loadcomponents ดึงโมเดลมาให้โดยอัตโนมัติ หรือจะกำหนดเองใน modularmodel_index.json ก็ได้

การประกอบบล็อกเข้าด้วยกันเป็นเวิร์กโฟลว์ 🧩

หลังจากสร้างบล็อกที่กำหนดเองแล้ว เราสามารถนำไปใช้ร่วมกับเวิร์กโฟลว์ที่มีอยู่แล้วได้ เช่น การนำบล็อกสกัด Depth Map ไปใช้ร่วมกับ ControlNet ของ Qwen เพียงแค่แทรกบล็อก Depth Map เข้าไปในช่วงต้นของเวิร์กโฟลว์

# สมมติว่าได้ import บล็อกและโมเดลมาแล้ว
# ...

# สร้างไปป์ไลน์ ControlNet
controlnet_pipeline = ControlNetPipeline.from_pretrained(...)

# สร้างบล็อก DepthProcessorBlock
depth_block = DepthProcessorBlock(...)

# ประกอบบล็อกเข้าด้วยกัน (ตัวอย่างการแสดงแนวคิด)
# ในความเป็นจริงอาจต้องจัดการ Input/Output ให้ตรงกัน
composed_pipeline = Pipeline([depth_block, controlnet_pipeline])

ข้อมูลระหว่างบล็อกจะถูกส่งต่อกันโดยอัตโนมัติ เช่น ข้อมูล control_image จากบล็อก Depth Map จะถูกส่งต่อไปยังบล็อกถัดไปที่ต้องการใช้ข้อมูลนี้ และถ้าบล็อกแรกไม่ได้มี Input ที่มาจากบล็อกก่อนหน้า มันก็จะถูกกำหนดให้เป็น Input ของไปป์ไลน์ทั้งหมด

แบ่งปันบล็อกที่สร้างสรรค์บน Hugging Face Hub 🚀

คุณสามารถเผยแพร่บล็อกที่สร้างขึ้นเองบน Hugging Face Hub เพื่อให้คนอื่น ๆ สามารถนำไปใช้ได้อย่างง่ายดาย เพียงแค่ใช้ trustremotecode=True Hugging Face มีเทมเพลตเตรียมไว้ให้แล้ว คุณสามารถดูรายละเอียดเพิ่มเติมได้ในคู่มือการสร้างบล็อกแบบกำหนดเอง (Building Custom Blocks)

บล็อก DepthProcessorBlock ที่กล่าวถึงในตัวอย่าง ได้ถูกเผยแพร่แล้วที่ diffusers/depth-processor-custom-block ทำให้ทุกคนสามารถโหลดและนำไปใช้งานได้ทันที

นอกจากนี้ ยังมีชุดบล็อกที่พร้อมใช้งานให้เลือกใช้มากมายบน Hub อีกด้วย

Modular Repository: การจัดการที่รวมศูนย์ 📦

Modular Diffusers ไม่เพียงแต่ทำงานร่วมกับ Repository ของ Diffusers ที่มีอยู่เดิมได้ แต่ยังเปิดตัวรูปแบบ Repository ใหม่ที่เรียกว่า Modular Repository

Modular Repository สามารถอ้างอิงส่วนประกอบ (Components) จาก Repository ของโมเดลต้นฉบับได้ ตัวอย่างเช่น diffusers/flux2-bnb-4bit-modular มี Transformer ที่ถูก Quantized ไว้ และโหลดส่วนประกอบอื่น ๆ จาก Repository ดั้งเดิม

ที่สำคัญกว่านั้น Modular Repository สามารถเก็บโค้ด Python สำหรับ Custom Pipeline Blocks และการตั้งค่า UI สำหรับเครื่องมืออย่าง Mellon ไว้ในที่เดียวได้

ชุมชนสร้างสรรค์ไปป์ไลน์ AI ด้วย Modular Diffusers 🌟

ชุมชนนักพัฒนาได้เริ่มสร้างสรรค์ไปป์ไลน์ AI ที่สมบูรณ์แบบโดยใช้ Modular Diffusers และเผยแพร่บน Hub แล้ว พร้อมทั้ง Model Weights และโค้ดที่พร้อมใช้งาน ตัวอย่างที่น่าสนใจ เช่น:

  • Krea Realtime Video: โมเดลสร้างวิดีโอแบบเรียลไทม์ขนาด 14 พันล้านพารามิเตอร์ สามารถสร้างวิดีโอได้ที่ 11fps บน GPU B200 ตัวเดียว รองรับ Text-to-Video, Video-to-Video และ Streaming Video-to-Video โดยทั้งหมดถูกสร้างเป็นบล็อกแบบ Modular ทำให้ผู้ใช้สามารถปรับเปลี่ยน Prompt กลางคัน, เปลี่ยนสไตล์วิดีโอได้ทันที และเห็นเฟรมแรกภายใน 1 วินาที
  • Waypoint-1: โมเดลโลกการแพร่กระจายแบบเรียลไทม์ (Real-time Diffusion World Model) ขนาด 2.3 พันล้านพารามิเตอร์ จาก Overworld ที่สร้างสภาพแวดล้อมแบบโต้ตอบได้โดยอัตโนมัติจาก Control Inputs และ Text Prompts ผู้ใช้สามารถสำรวจและโต้ตอบกับสภาพแวดล้อมที่สร้างขึ้นได้แบบเรียลไทม์บนฮาร์ดแวร์ทั่วไป

ทีมพัฒนาสามารถสร้างสถาปัตยกรรมใหม่ ๆ, แพ็กเกจเป็นบล็อก และเผยแพร่ไปป์ไลน์ทั้งหมดบน Hub ให้ใครก็ได้นำไปใช้ด้วย ModularPipeline.from_pretrained()

Mellon: เครื่องมือ Visual Workflow สำหรับ Modular Diffusers 🎨

Mellon เป็นอินเทอร์เฟซแบบ Node Graph ที่ทำงานร่วมกับ Modular Diffusers ได้อย่างลงตัว หากคุณคุ้นเคยกับเครื่องมือแบบ Node-based อย่าง ComfyUI คุณจะรู้สึกคุ้นเคยกับ Mellon แต่ก็มีความแตกต่างที่สำคัญ:

  • Dynamic Nodes: แทนที่จะมี Node จำนวนมากสำหรับแต่ละโมเดล Mellon มี Node จำนวนน้อยที่อินเทอร์เฟซจะปรับเปลี่ยนโดยอัตโนมัติตามโมเดลที่คุณเลือก เรียนรู้ครั้งเดียว ใช้ได้กับทุกโมเดล
  • Single-Node Workflows: ด้วยระบบบล็อกที่ต่อกันได้ของ Modular Diffusers คุณสามารถยุบทั้งไปป์ไลน์ให้กลายเป็น Node เดียวได้ ทำให้จัดการเวิร์กโฟลว์หลายอันบน Canvas เดียวกันได้โดยไม่รก
  • Hub Integration: บล็อกที่เผยแพร่บน Hugging Face Hub สามารถใช้งานได้ทันทีใน Mellon มีฟังก์ชันที่ช่วยสร้างอินเทอร์เฟซ Node จากการกำหนดค่าบล็อกของคุณได้โดยอัตโนมัติ ไม่ต้องเขียนโค้ด UI เพิ่มเติม

ความสามารถในการทำงานร่วมกันนี้เป็นไปได้เพราะทุกบล็อกมีคุณสมบัติ (Inputs, Intermediate Outputs, Expected Components) ที่เหมือนกัน ทำให้ Mellon สามารถสร้าง UI ของ Node จากการกำหนดค่าบล็อกใด ๆ ก็ได้ และประกอบบล็อกเข้าด้วยกันเป็น Node ระดับสูงขึ้น

ตัวอย่างการใช้งาน Mellon:

สมมติว่าเราต้องการเพิ่ม Node ขยาย Prompt ด้วย Gemini เข้าไปในเวิร์กโฟลว์ Text-to-Image ที่มีอยู่:

  1. ลาก Node "Dynamic Block" มาวาง
  2. ป้อน repo_id ของโมดูล Gemini Prompt Expander (เช่น diffusers/gemini-prompt-expander-mellon)
  3. คลิก "LOAD CUSTOM BLOCK" - Node จะปรับเปลี่ยนหน้าตาโดยอัตโนมัติ แสดงช่องป้อนข้อความสำหรับ Prompt และ Output Socket ชื่อ "prompt"
  4. ป้อน Prompt สั้น ๆ, เชื่อมต่อ Output ไปยัง Node "Encode Prompt" แล้วรัน

Gemini จะขยาย Prompt สั้น ๆ ของคุณให้เป็นคำอธิบายที่ละเอียดก่อนที่จะสร้างรูปภาพ โดยไม่ต้องเขียนโค้ดหรือตั้งค่าใด ๆ เพียงแค่ใช้ Hub Repo ID

สรุป

Modular Diffusers นำเสนอความสามารถในการต่อยอดและยืดหยุ่นที่ชุมชนเรียกร้องมาตลอด โดยไม่ลดทอนประสิทธิภาพที่ทำให้ Diffusers เป็นที่นิยม ยังอยู่ในช่วงเริ่มต้นของการพัฒนา Hugging Face ต้องการรับฟังความคิดเห็นจากผู้ใช้เพื่อนำไปปรับปรุงในอนาคต ลองนำไปใช้งานและบอกเราว่าอะไรได้ผลดี อะไรควรปรับปรุง และมีอะไรที่ขาดหายไป


แหล่งข้อมูลเพิ่มเติม:

#ModularDiffusers #GenerativeAI #HuggingFace #DiffusionModels #AIDevelopment

ขอบคุณ แหล่งข้อมูล
https://huggingface.co/blog/modular-diffusers

Modular Diffusers: ต่อบล็อก AI สร้างสรรค์งานได้ไร้ขีดจำกัดในยุคที่ AI สร้างสรรค์ (Generative AI) กำลังเติบโตอย่างก้าวกระโดด การพัฒนาและปรับแต่งโมเดลให้เข้ากับความต้องการเฉพาะด้านเป็นสิ่งสำคัญ Hugging Face ได้เปิดตัว Modular Diffusers เครื่องมือใหม่ที่ปฏิวัติวงการด้วยแนวคิด "บล็อกที่ต่อกันได้" (Composable Building Blocks) ให้เหล่านักพัฒนาและผู้ที่สนใจสามารถสร้างสรรค์เวิร์กโฟลว์ AI ที่ซับซ้อนได้อย่างยืดหยุ่นและมีประสิทธิภาพบทความนี้จะพาคุณไปทำความรู้จักกับ Modular Diffusers ตั้งแต่การใช้งาน API แบบคุ้นเคย ไปจนถึงการสร้างบล็อกที่ปรับแต่งเองและนำมาประกอบกันเป็นไปป์ไลน์ AI ในแบบของคุณเอง พร้อมทั้งแสดงให้เห็นการทำงานร่วมกับ Mellon เครื่องมือสร้างเวิร์กโฟลว์แบบ Visual Node ที่จะช่วยให้การเชื่อมต่อบล็อกต่าง ๆ เป็นเรื่องง่ายModular Diffusers คืออะไร?Modular Diffusers เป็นเฟรมเวิร์กที่ออกแบบมาเพื่อให้การทำงานกับโมเดล Diffusion มีความยืดหยุ่นมากขึ้น แทนที่จะมองว่าไปป์ไลน์ AI เป็นกล่องดำที่ทำงานตั้งแต่ต้นจนจบ Modular Diffusers มองว่ามันคือชุดของ "บล็อก" ที่ทำงานเฉพาะด้าน เช่น การเข้ารหัสข้อความ (Text Encoding), การเข้ารหัสรูปภาพ (Image Encoding), การลดสัญญาณรบกวน (Denoising) และการถอดรหัส (Decoding)![ภาพประกอบ: บล็อก AI ที่เรียงต่อกัน](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/modular-diffusers/modular-diffusers-pipeline.png)(ภาพตัวอย่าง: โครงสร้างไปป์ไลน์ที่ประกอบด้วยบล็อกย่อย)แต่ละบล็อกจะมีความสามารถในการรับข้อมูลเข้า (Input) และส่งข้อมูลออก (Output) ที่ชัดเจน คุณสามารถ:เรียกใช้งานบล็อกเดี่ยว ๆ: เหมือนกับการรันไปป์ไลน์ปกติเพิ่ม ลบ หรือสลับบล็อก: ระบบจะปรับการทำงานให้เข้ากับบล็อกที่เหลืออยู่โดยอัตโนมัติตรวจสอบการทำงานภายใน: เข้าใจกระบวนการทำงานของแต่ละส่วนได้อย่างลึกซึ้งการใช้งานเริ่มต้นทำได้ง่าย ๆ ด้วยคำสั่ง .initpipeline() เพื่อแปลงบล็อกให้เป็นไปป์ไลน์ที่ทำงานได้ และ .loadcomponents() เพื่อโหลดน้ำหนักโมเดล (Model Weights)สร้างสรรค์บล็อก AI ในแบบของคุณเอง 🛠️จุดเด่นที่แท้จริงของ Modular Diffusers คือความสามารถในการสร้าง "บล็อกที่กำหนดเอง" (Custom Block) ได้อย่างอิสระ บล็อกที่กำหนดเองนี้เป็นคลาส Python ที่คุณสามารถกำหนดส่วนประกอบ (Components), ข้อมูลเข้า (Inputs), ข้อมูลออก (Outputs) และตรรกะการคำนวณ (Computation Logic) ของบล็อกนั้น ๆ ได้เมื่อคุณสร้างบล็อกเสร็จแล้ว ก็สามารถนำไปเสียบเข้ากับเวิร์กโฟลว์ใดก็ได้ที่คุณต้องการตัวอย่างการสร้างบล็อก:สมมติว่าเราต้องการสร้างบล็อกเพื่อสกัดแผนที่ความลึก (Depth Map) จากรูปภาพโดยใช้โมเดล Depth Anything V2:class DepthProcessorBlock: def expected_components(self): return {"depth_estimator": "depth_anything_v2"} # ระบุโมเดลที่บล็อกต้องการ def __init__(self, depth_estimator, **kwargs): self.depth_estimator = depth_estimator def __call__(self, image: Image.Image) -> Image.Image: # ตรรกะการคำนวณเพื่อสกัด Depth Map depth_map = self.depth_estimator(image).depth return depth_mapexpected_components: กำหนดว่าบล็อกนี้ต้องการโมเดลอะไรบ้าง ในที่นี้คือโมเดลสำหรับประมาณค่าความลึกinit: รับโมเดลที่ต้องการเข้ามาใช้งานcall: เป็นส่วนที่บรรจุตรรกะการทำงานหลักของบล็อกเมื่อสร้างบล็อกเสร็จแล้ว คุณสามารถกำหนดค่าเริ่มต้นของโมเดลที่จะโหลดได้ผ่าน pretrainedmodelnameorpath ซึ่งจะทำให้ loadcomponents ดึงโมเดลมาให้โดยอัตโนมัติ หรือจะกำหนดเองใน modularmodel_index.json ก็ได้การประกอบบล็อกเข้าด้วยกันเป็นเวิร์กโฟลว์ 🧩หลังจากสร้างบล็อกที่กำหนดเองแล้ว เราสามารถนำไปใช้ร่วมกับเวิร์กโฟลว์ที่มีอยู่แล้วได้ เช่น การนำบล็อกสกัด Depth Map ไปใช้ร่วมกับ ControlNet ของ Qwen เพียงแค่แทรกบล็อก Depth Map เข้าไปในช่วงต้นของเวิร์กโฟลว์# สมมติว่าได้ import บล็อกและโมเดลมาแล้ว # ... # สร้างไปป์ไลน์ ControlNet controlnet_pipeline = ControlNetPipeline.from_pretrained(...) # สร้างบล็อก DepthProcessorBlock depth_block = DepthProcessorBlock(...) # ประกอบบล็อกเข้าด้วยกัน (ตัวอย่างการแสดงแนวคิด) # ในความเป็นจริงอาจต้องจัดการ Input/Output ให้ตรงกัน composed_pipeline = Pipeline([depth_block, controlnet_pipeline])ข้อมูลระหว่างบล็อกจะถูกส่งต่อกันโดยอัตโนมัติ เช่น ข้อมูล control_image จากบล็อก Depth Map จะถูกส่งต่อไปยังบล็อกถัดไปที่ต้องการใช้ข้อมูลนี้ และถ้าบล็อกแรกไม่ได้มี Input ที่มาจากบล็อกก่อนหน้า มันก็จะถูกกำหนดให้เป็น Input ของไปป์ไลน์ทั้งหมดแบ่งปันบล็อกที่สร้างสรรค์บน Hugging Face Hub 🚀คุณสามารถเผยแพร่บล็อกที่สร้างขึ้นเองบน Hugging Face Hub เพื่อให้คนอื่น ๆ สามารถนำไปใช้ได้อย่างง่ายดาย เพียงแค่ใช้ trustremotecode=True Hugging Face มีเทมเพลตเตรียมไว้ให้แล้ว คุณสามารถดูรายละเอียดเพิ่มเติมได้ในคู่มือการสร้างบล็อกแบบกำหนดเอง (Building Custom Blocks)บล็อก DepthProcessorBlock ที่กล่าวถึงในตัวอย่าง ได้ถูกเผยแพร่แล้วที่ diffusers/depth-processor-custom-block ทำให้ทุกคนสามารถโหลดและนำไปใช้งานได้ทันทีนอกจากนี้ ยังมีชุดบล็อกที่พร้อมใช้งานให้เลือกใช้มากมายบน Hub อีกด้วยModular Repository: การจัดการที่รวมศูนย์ 📦Modular Diffusers ไม่เพียงแต่ทำงานร่วมกับ Repository ของ Diffusers ที่มีอยู่เดิมได้ แต่ยังเปิดตัวรูปแบบ Repository ใหม่ที่เรียกว่า Modular RepositoryModular Repository สามารถอ้างอิงส่วนประกอบ (Components) จาก Repository ของโมเดลต้นฉบับได้ ตัวอย่างเช่น diffusers/flux2-bnb-4bit-modular มี Transformer ที่ถูก Quantized ไว้ และโหลดส่วนประกอบอื่น ๆ จาก Repository ดั้งเดิมที่สำคัญกว่านั้น Modular Repository สามารถเก็บโค้ด Python สำหรับ Custom Pipeline Blocks และการตั้งค่า UI สำหรับเครื่องมืออย่าง Mellon ไว้ในที่เดียวได้ชุมชนสร้างสรรค์ไปป์ไลน์ AI ด้วย Modular Diffusers 🌟ชุมชนนักพัฒนาได้เริ่มสร้างสรรค์ไปป์ไลน์ AI ที่สมบูรณ์แบบโดยใช้ Modular Diffusers และเผยแพร่บน Hub แล้ว พร้อมทั้ง Model Weights และโค้ดที่พร้อมใช้งาน ตัวอย่างที่น่าสนใจ เช่น:Krea Realtime Video: โมเดลสร้างวิดีโอแบบเรียลไทม์ขนาด 14 พันล้านพารามิเตอร์ สามารถสร้างวิดีโอได้ที่ 11fps บน GPU B200 ตัวเดียว รองรับ Text-to-Video, Video-to-Video และ Streaming Video-to-Video โดยทั้งหมดถูกสร้างเป็นบล็อกแบบ Modular ทำให้ผู้ใช้สามารถปรับเปลี่ยน Prompt กลางคัน, เปลี่ยนสไตล์วิดีโอได้ทันที และเห็นเฟรมแรกภายใน 1 วินาทีWaypoint-1: โมเดลโลกการแพร่กระจายแบบเรียลไทม์ (Real-time Diffusion World Model) ขนาด 2.3 พันล้านพารามิเตอร์ จาก Overworld ที่สร้างสภาพแวดล้อมแบบโต้ตอบได้โดยอัตโนมัติจาก Control Inputs และ Text Prompts ผู้ใช้สามารถสำรวจและโต้ตอบกับสภาพแวดล้อมที่สร้างขึ้นได้แบบเรียลไทม์บนฮาร์ดแวร์ทั่วไปทีมพัฒนาสามารถสร้างสถาปัตยกรรมใหม่ ๆ, แพ็กเกจเป็นบล็อก และเผยแพร่ไปป์ไลน์ทั้งหมดบน Hub ให้ใครก็ได้นำไปใช้ด้วย ModularPipeline.from_pretrained()Mellon: เครื่องมือ Visual Workflow สำหรับ Modular Diffusers 🎨Mellon เป็นอินเทอร์เฟซแบบ Node Graph ที่ทำงานร่วมกับ Modular Diffusers ได้อย่างลงตัว หากคุณคุ้นเคยกับเครื่องมือแบบ Node-based อย่าง ComfyUI คุณจะรู้สึกคุ้นเคยกับ Mellon แต่ก็มีความแตกต่างที่สำคัญ:Dynamic Nodes: แทนที่จะมี Node จำนวนมากสำหรับแต่ละโมเดล Mellon มี Node จำนวนน้อยที่อินเทอร์เฟซจะปรับเปลี่ยนโดยอัตโนมัติตามโมเดลที่คุณเลือก เรียนรู้ครั้งเดียว ใช้ได้กับทุกโมเดลSingle-Node Workflows: ด้วยระบบบล็อกที่ต่อกันได้ของ Modular Diffusers คุณสามารถยุบทั้งไปป์ไลน์ให้กลายเป็น Node เดียวได้ ทำให้จัดการเวิร์กโฟลว์หลายอันบน Canvas เดียวกันได้โดยไม่รกHub Integration: บล็อกที่เผยแพร่บน Hugging Face Hub สามารถใช้งานได้ทันทีใน Mellon มีฟังก์ชันที่ช่วยสร้างอินเทอร์เฟซ Node จากการกำหนดค่าบล็อกของคุณได้โดยอัตโนมัติ ไม่ต้องเขียนโค้ด UI เพิ่มเติมความสามารถในการทำงานร่วมกันนี้เป็นไปได้เพราะทุกบล็อกมีคุณสมบัติ (Inputs, Intermediate Outputs, Expected Components) ที่เหมือนกัน ทำให้ Mellon สามารถสร้าง UI ของ Node จากการกำหนดค่าบล็อกใด ๆ ก็ได้ และประกอบบล็อกเข้าด้วยกันเป็น Node ระดับสูงขึ้นตัวอย่างการใช้งาน Mellon:สมมติว่าเราต้องการเพิ่ม Node ขยาย Prompt ด้วย Gemini เข้าไปในเวิร์กโฟลว์ Text-to-Image ที่มีอยู่:ลาก Node "Dynamic Block" มาวางป้อน repo_id ของโมดูล Gemini Prompt Expander (เช่น diffusers/gemini-prompt-expander-mellon)คลิก "LOAD CUSTOM BLOCK" - Node จะปรับเปลี่ยนหน้าตาโดยอัตโนมัติ แสดงช่องป้อนข้อความสำหรับ Prompt และ Output Socket ชื่อ "prompt"ป้อน Prompt สั้น ๆ, เชื่อมต่อ Output ไปยัง Node "Encode Prompt" แล้วรันGemini จะขยาย Prompt สั้น ๆ ของคุณให้เป็นคำอธิบายที่ละเอียดก่อนที่จะสร้างรูปภาพ โดยไม่ต้องเขียนโค้ดหรือตั้งค่าใด ๆ เพียงแค่ใช้ Hub Repo IDสรุปModular Diffusers นำเสนอความสามารถในการต่อยอดและยืดหยุ่นที่ชุมชนเรียกร้องมาตลอด โดยไม่ลดทอนประสิทธิภาพที่ทำให้ Diffusers เป็นที่นิยม ยังอยู่ในช่วงเริ่มต้นของการพัฒนา Hugging Face ต้องการรับฟังความคิดเห็นจากผู้ใช้เพื่อนำไปปรับปรุงในอนาคต ลองนำไปใช้งานและบอกเราว่าอะไรได้ผลดี อะไรควรปรับปรุง และมีอะไรที่ขาดหายไปแหล่งข้อมูลเพิ่มเติม:[ภาพรวมของ Modular Diffusers](https://huggingface.co/blog/modular-diffusers)[Mellon x Modular Diffusers](https://huggingface.co/docs/diffusers/main/en/modular/mellon)[คอลเลกชัน Custom Blocks](https://huggingface.co/collections/diffusers/custom-blocks-6606d867d2785f9098236a11)[คอลเลกชัน Community Pipelines](https://huggingface.co/collections/diffusers/community-pipelines-6606d944d2785f9098236a21)#ModularDiffusers #GenerativeAI #HuggingFace #DiffusionModels #AIDevelopmenthttps://huggingface.co/blog/modular-diffusers
Shared content
HUGGINGFACE.CO
Introducing Modular Diffusers - Composable Building Blocks for Diffusion Pipelines
We’re on a journey to advance and democratize artificial intelligence through open source and open science.
7 Комментарии 0 Поделились 601 Просмотры 0 предпросмотр