wxch · แผนงาน · อัปเดต 5 ต.ค. 2026 สร้างครบทั้งระบบแล้ว ยังไม่ได้ทดสอบกับ GPU จริง

โมดูล AI ภาพ วิดีโอ และเสียง

รุ่นล่าสุดของแผนเดิม: ตอนนี้โค้ดทั้งสายสร้างเสร็จและขึ้นระบบแล้ว (studio, หน้าติดตั้งใน control, หน้า ComfyUI สำหรับแอดมิน) สิ่งที่ยังไม่รู้คือพฤติกรรมจริงบน GPU ของ PGX เอกสารนี้สรุปว่ามีอะไรแล้ว ทำงานอย่างไร ใช้พื้นที่เท่าไร และเสนอสิ่งที่ควรทำต่อ

ที่ต้องการจากคุณ: อ่านส่วน "งานถัดไป" แล้วบอกว่าควรเรียงลำดับอย่างไร หรือเขียนข้อเสนอแนะในกล่องท้ายหน้า (อยู่ในหน้านี้ ไม่ต้องไปที่อื่น)

1. สถานะตอนนี้

แยกตามที่ยืนยันได้จริง ที่ทำแล้วแต่ยังไม่ลองบนเครื่อง และที่ยังไม่ได้ทำ

ทำแล้ว และทดสอบด้วยของจำลอง

  • catalog 5 บริการ พร้อมขนาดไฟล์จริงจาก Hugging Face และ workflow ของ ComfyUI 6 ไฟล์ (ตรวจกับ ComfyUI v0.38.2 จริงบน CPU: ชื่อ node และ input ถูกต้อง)
  • runner เริ่ม/หยุด container ของ engine (ปักด้วย digest, เปิดแค่ 127.0.0.1)
  • agent: ติดตั้ง/ลบโมดูล (ดาวน์โหลดต่อจากเดิมได้), รันงาน, เริ่ม engine ตามคำขอ, หยุดเมื่อว่าง 10 นาที
  • server: คิวงาน (หนึ่งงานต่อเครื่อง, ส่งซ้ำเมื่อเครื่องหลุดหรือเจ้าของกลับมา), เก็บผล 7 วัน
  • studio.wxch.org: ฟอร์มสร้างจาก catalog, อัปโหลดไฟล์, ดูผล
  • comfy.wxch.org: หน้า ComfyUI เต็มสำหรับแอดมิน ผ่านการเชื่อมต่อของ agent
  • หน้า "โมดูล AI" ใน control: เลือกติดตั้ง/ลบ เห็นขนาดรวมก่อน และส่วน "ไฟล์ที่เพิ่มเอง" แสดงไฟล์โมเดลที่แอดมินลงเองผ่านหน้า ComfyUI พร้อมขนาดและปุ่มลบ (ถอนโมดูลจะไม่ลบไฟล์เหล่านี้)
  • API สำหรับโปรแกรมอื่น (ใช้ API key): /v1/jobs (ทุกบริการรวมวิดีโอ) และแบบ OpenAI ที่รอผลให้ ได้แก่ /v1/images/generations, /v1/images/edits, /v1/audio/transcriptions, /v1/audio/translations (ดู docs/API.md)

เขียนแล้ว แต่ยังไม่เคยรันจริงบน PGX

  • การดึง image engine 38.5 GB ผ่าน runner และการเริ่ม ComfyUI ด้วยคำสั่งที่กำหนด
  • whisper_server.py (ยังไม่เคยรัน เพราะเครื่อง dev ไม่มี transformers)
  • ชื่อ output ของวิดีโอในประวัติของ ComfyUI (images หรือ videos)
  • หน่วยความจำและเวลาจริงต่องาน (ทุกตัวเลขยังเป็นค่าประมาณ)
  • หน้า ComfyUI ผ่านอุโมงค์: ทดสอบกับ engine จำลอง ยังไม่เคยลองกับหน้าเว็บ ComfyUI จริง
  • การที่ Owner Guard ไม่นับ GPU ของ container ของเราเป็นเจ้าของ (ต้อง agent 0.12.2 และ runner ใหม่)

ยังไม่ได้ทำ

  • แก้วิดีโอแบบ "ต่อความยาว" (extend)
  • โควตาต่อผู้ใช้ (ตอนนี้รหัสผ่านเดียว คิวรวมสูงสุด 20 งาน)
  • ปุ่ม Update agent ในหน้า Models ใช้ไม่ได้ผลบน PGX (ยังไม่รู้สาเหตุ)
  • ทดสอบตัวติดตั้งอัตโนมัติ (Docker บนเครื่อง dev ใช้ไม่ได้)
  • ล้างไฟล์ที่แอดมินสร้างผ่านหน้า comfy (อยู่ในโฟลเดอร์ output ของ engine)

2. ภาพรวมการทำงาน

ไม่มีพอร์ตเปิดบนเครื่อง GPU เครื่องเชื่อมออกไปหา server เอง และทุกอย่างวิ่งผ่านการเชื่อมต่อนั้น

ผู้ใช้ VPS · wxch-server PGX · เครื่อง GPU chat.wxch.orgแชตกับโมเดลภาษา studio.wxch.orgภาพ วิดีโอ เสียง (ทุกคน) comfy.wxch.orgComfyUI เต็ม (แอดมิน) control.wxch.orgติดตั้ง/ลบโมดูล ดูเครื่อง api.wxch.orgOpenAI API + งานภาพ/วิดีโอ/เสียง note.wxch.orgแผนงานและข้อเสนอแนะ hub (WebSocket)ข้อความสถานะ + อุโมงค์ HTTP/WS คิวงานหนึ่งงานต่อเครื่อง · ส่งใหม่ถ้าพลาด ไฟล์ของงาน (7 วัน)ไฟล์เข้า/ผลลัพธ์ ผ่าน HTTP ด้วย token เครื่อง เกตเวย์แชต + API keyเลือกเครื่องที่ว่างและมีโมเดล หน้าเว็บทั้งหมด + loginรหัสผ่านเดียว (+2FA ถ้าตั้งไว้) agentตัวจัดการโมดูล · รันงาน · Owner Guardเชื่อมออกไปหา server (WebSocket) runner (root, จำกัดสิทธิ์)เริ่ม/หยุด container ตามรายการที่อนุญาต ComfyUI127.0.0.1:8300 Whisper127.0.0.1:8301 Ollama · LM Studio · vLLMแชต (ใช้พร้อมกันได้) หน่วยความจำรวม 128 GB ใช้ร่วมกัน (CPU+GPU) ไม่พอ → ปล่อยโมเดลภาษาก่อนเริ่มงานภาพ/วิดีโอ WS (เครื่องเริ่มต่อเอง)
เส้นทึบคือการเรียกที่ทำงานจริงในโค้ด กรอบสีฟ้าคือส่วนที่เพิ่มใหม่ในแผนนี้ การเรียก ComfyUI ผ่านพอร์ต 127.0.0.1 เกิดเฉพาะบนเครื่อง ไม่มีพอร์ตของ engine ที่เข้าถึงจากอินเทอร์เน็ต

เส้นทางของงานหนึ่งงาน

  1. ผู้ใช้กรอกฟอร์มใน studio → server ตรวจข้อมูลตามกฎของ catalog แล้วเก็บไฟล์ที่อัปโหลดและใส่คิว
  2. server เลือกเครื่องที่ติดตั้งบริการนั้น พร้อมรับงาน และหน่วยความจำเหลือมากสุด แล้วส่งข้อความ job
  3. agent เริ่ม engine ถ้ายังไม่รัน (ครั้งแรกอาจนานเพราะลงแพ็กเกจ Python) แล้วปล่อยโมเดลภาษาถ้าหน่วยความจำไม่พอ
  4. agent ดึงไฟล์เข้าจาก server ใส่ workflow ส่งให้ ComfyUI (หรือส่งเสียงให้ Whisper) รายงานความคืบหน้า
  5. agent อัปโหลดผลลัพธ์กลับ server และลบไฟล์ชั่วคราวบนเครื่อง ผู้ใช้เห็นผลและดาวน์โหลดได้ 7 วัน
  6. ถ้าเจ้าของเครื่องกลับมาใช้ (เมาส์/คีย์บอร์ด) งานจะถูกยกเลิกบนเครื่องและกลับเข้าคิวเอง

3. บริการ 5 อย่าง และพื้นที่ที่ใช้

ทั้งหมดไม่ได้ติดตั้งมาให้ ผู้ให้บริการเลือกเองต่อเครื่อง ตัวเลขขนาดไฟล์อ่านจากเซิร์ฟเวอร์ของ Hugging Face จริง ส่วนหน่วยความจำเป็นค่าประมาณจนกว่าจะวัด

บริการโมเดลไฟล์โมเดลหน่วยความจำ (ประมาณ)
image.generate
สร้างภาพจากข้อความ
FLUX.1-schnell fp8 (Apache-2.0)17.2 GB~24 GB
image.edit
แก้ภาพด้วยคำสั่ง
Qwen-Image-Edit 2511 fp8 + ตัวเข้ารหัสข้อความ Qwen2.5-VL 7B + VAE + LoRA Lightning 4 ขั้น31.0 GB~38 GB
video.generate
ข้อความ/ภาพเป็นวิดีโอ
Wan2.2 TI2V-5B + UMT5 + VAE (Apache-2.0)18.1 GB~30 GB
video.edit
ขยายความละเอียด / เพิ่มเฟรม
Real-ESRGAN x4 + FILM0.14 GB~6 GB
audio.transcribe
เสียงเป็นข้อความ + คำบรรยาย
Whisper large-v3-turbo (MIT)1.6 GB~5 GB
รวมไฟล์โมเดลทั้ง 568.2 GB
image ของ engine (NVIDIA PyTorch ใช้ร่วมกัน ขนาดบนดิสก์ที่ docker images รายงานบน PGX)38.5 GB
โฟลเดอร์ engine (โค้ด ComfyUI + แพ็กเกจ Python ประมาณ)~3.5 GB
รวมทุกอย่าง~110 GB

ติดตั้งแค่ถอดเสียงอย่างเดียว ≈ 42 GB เพราะ image ของ engine เป็นต้นทุนก้อนใหญ่ที่ทุกบริการจ่ายร่วมกัน ถ้าลงบริการที่ใช้ ComfyUI ตัวที่สองจะเพิ่มแค่ไฟล์โมเดลของตัวนั้น

4. วิธีติดตั้ง (ผู้ให้บริการเลือกเอง)

ตอนติดตั้งเต็ม

curl -fsSL https://control.wxch.org/get | WXCH_TOKEN=… WXCH_MODULES=all sh

หรือระบุชื่อ เช่น image.generate,audio.transcribe

ทีหลัง (เครื่องที่ติดตั้งแล้ว)

curl -fsSL https://control.wxch.org/get | sh -s -- modules image.generate video.generate

ขั้นนี้อัปเดต runner ด้วย ไม่ต้องใช้ token

จากหน้าเว็บ

control.wxch.org → "โมดูล AI" ติ๊กเลือก เห็นขนาดรวมและพื้นที่ว่างก่อนกดติดตั้ง ลบได้ (ไฟล์ที่บริการอื่นใช้อยู่จะไม่ถูกลบ)

ผู้ให้บริการที่ไม่เปิดบริการภาพ/วิดีโอ จะเห็น studio ขึ้นว่า "ผู้ให้บริการยังไม่เปิดบริการนี้" และไม่รับงาน

5. หลักการให้บริการ

ตามที่ตกลง: เป็นผู้ให้บริการ ต้องพร้อมใช้ ไม่ใช่ให้ใครไปหยุดอะไรเพื่อให้อีกอย่างทำงาน

แชตกับภาพ/วิดีโอใช้พร้อมกัน

  • GPU ที่ถูกใช้โดย container ของเราเอง ไม่ถูกนับเป็น "เจ้าของเครื่องใช้" (runner บอก id ของ container ให้ agent เทียบกับ cgroup)
  • เจ้าของนั่งใช้เครื่องจริง หรือโปรแกรมอื่นใช้ GPU ยังหยุดรับงานและปล่อยโมเดลเหมือนเดิม
  • หน่วยความจำไม่พอ → ปล่อยโมเดลภาษาที่โหลดอยู่ก่อนเริ่มงาน (แชตถัดไปจะโหลดกลับเอง) engine ที่เพิ่งทำงานเสร็จถือว่าอุ่นอยู่ ไม่ปล่อยซ้ำ

คิวและการเก็บผล

  • หนึ่งงานต่อเครื่อง งานที่เครื่องปฏิเสธ (เจ้าของกลับมา/ไม่ว่าง) กลับเข้าคิว ไม่นับว่าล้มเหลว
  • เครื่องหลุดระหว่างทำ → ส่งใหม่ (ไม่เกิน 3 ครั้ง) · คิวสูงสุด 20 งาน · เก็บผลลัพธ์ 7 วัน แล้วลบอัตโนมัติ
  • engine หยุดเองเมื่อว่าง 10 นาที (หน้า comfy ที่เปิดอยู่นับว่ากำลังใช้)

ความปลอดภัย

  • agent ไม่มีสิทธิ์ Docker เอง runner เป็นตัวเดียวที่เริ่ม container และกำหนด image (ปักด้วย digest), พอร์ต, โฟลเดอร์ และคำสั่งเอง agent ระบุได้แค่ชื่อ engine
  • container: ไม่ privileged, cap-drop ALL, no-new-privileges, รันด้วยผู้ใช้ของ agent, เปิดพอร์ตแค่ 127.0.0.1, ปิด API node ของ ComfyUI ที่เรียกบริการภายนอก
  • comfy.wxch.org ต้องใช้รหัสผ่าน (+2FA) เพราะ ComfyUI รัน workflow อะไรก็ได้ · cookie ของเราไม่ถูกส่งต่อให้ engine

6. งานถัดไป (ข้อเสนอ)

เรียงตามที่ฉันแนะนำ อยากเปลี่ยนลำดับหรือเพิ่มอะไร เขียนในกล่องข้อเสนอแนะด้านล่าง

#งานทำไม
1ทดลองบน PGXติดตั้ง image.generate ให้เสร็จ สั่งงานใน studio หนึ่งงาน แล้ววัดเวลาและหน่วยความจำทุกอย่างบน GPU ยังไม่เคยรันจริง ผลนี้ตัดสินว่าตัวเลขประมาณใช้ได้ไหม และเจอข้อผิดพลาดแรกๆ
2แก้ปุ่ม Update agentหาสาเหตุที่การอัปเดตจากหน้า Models ไม่เปลี่ยนไบนารีบน PGXทุกครั้งที่ออกรุ่นใหม่ต้องใช้ตัวติดตั้งเต็มแทน ซึ่งช้าและเสี่ยงกว่า
3API สำหรับโปรแกรมอื่น ทำแล้ว 5 ต.ค./v1/jobs และแบบ OpenAI (images, audio) ใช้ API key เดิม จำกัด 5 งานต่อ key ดูตัวอย่างใน docs/API.mdให้โปรแกรมภายนอกเรียกสร้างภาพ/เสียงได้เหมือนแชต ถ้าจะเปิดเป็นบริการให้คนอื่น ยังไม่ได้ทดสอบกับเครื่อง GPU จริง
4ผู้ใช้และโควตาบัญชีผู้ใช้แยกคน จำกัดจำนวนงาน/วัน ดูประวัติของตัวเองตอนนี้รหัสผ่านเดียวกับแอดมินและคิวรวมกัน ถ้ามีผู้ใช้หลายคนจะชนกัน
5ทางเลือกโมเดลFLUX.1-dev (คุณภาพสูงกว่า ช้ากว่า), Wan 14B, โมเดลภาพอื่น ให้ผู้ให้บริการเลือกในหน้าโมดูลตอนนี้แต่ละบริการมีโมเดลเดียว ยังไม่ได้เลือกคุณภาพ/ความเร็ว
6ล้างไฟล์หน้า comfyล้างโฟลเดอร์ output/ input ของ ComfyUI ที่แอดมินสร้างเองตามอายุไฟล์ตอนนี้ระบบลบเฉพาะไฟล์ของงานจาก studio ไฟล์ของแอดมินสะสมจนดิสก์เต็มได้
7ทดสอบตัวติดตั้งเอา Docker กลับมา (หรือใช้ CI) รัน tests/installer กับหลาย distroขั้น modules และ vllm ที่แก้ยังไม่ได้ทดสอบอัตโนมัติ
8exchange.wxch.orgบอกว่าตั้งใจใช้ทำอะไรมี DNS แล้วแต่ยังไม่มีเนื้อหาในโปรเจกต์

7. ข้อเสนอแนะ

เขียนได้เลย บันทึกไว้ในระบบ (ไม่ส่งไปที่อื่น) ที่หน้าแรกของ note.wxch.org มีรายการรวมและปุ่มคัดลอกทั้งหมด เพื่อนำไปบอกฉันได้ในแชต

เอกสารนี้แทนรุ่นร่างเดิมที่เคยอยู่ที่ notepad.wxch.org/doc/modules-ai (ลบแล้ว) · แก้ไขที่ web/private/modules-ai.html ในโปรเจกต์