ต้องการลองใช้งาน FLUX ออนไลน์โดยไม่ต้องยุ่งยากเพิ่มเติมใช่ไหม?
คุณสามารถใช้งาน FLUX.1 Pro, Schnell และ Dev ที่ Anakin AI ตอนนี้ได้เลย!



Flux Schnell เป็นโมเดลการสร้างภาพจากข้อความที่มีความแข็งแกร่ง สามารถสร้างภาพคุณภาพสูงจากข้อความที่ให้มา ในบทแนะนำนี้ เราจะแนะนำคุณผ่านขั้นตอนการตั้งค่าและเรียกใช้ Flux Schnell ในเครื่อง MacBook Pro M3 Max ของคุณ การตั้งค่านี้ช่วยให้สามารถสร้างภาพได้อย่างมีประสิทธิภาพโดยใช้หน่วยความจำถึง 40GB โดยแต่ละภาพใช้เวลาประมาณ 30 วินาทีในการผลิต
สิ่งจำเป็นในการเรียกใช้ Flux.1 Pro บน Mac โดยตรง
ก่อนที่จะเริ่มต้น ให้แน่ใจว่าระบบของคุณตรงตามข้อกำหนดดังต่อไปนี้:
- MacBook Pro ที่มีชิป M3 Max
- macOS (เวอร์ชันล่าสุดแนะนำ)
- หน่วยความจำ RAM อย่างน้อย 40GB
- ติดตั้ง Anaconda หรือ Miniconda
- การเชื่อมต่ออินเทอร์เน็ตสำหรับดาวน์โหลด dependencies
บทแนะนำทีละขั้นเพื่อเรียกใช้ Flux.1 Pro บน Mac โดยตรง
บทแนะนำทีละขั้นเพื่อเรียกใช้ Flux.1 Pro บน Mac โดยตรง
ขั้นตอนที่ 1: ตั้งค่าสิ่งแวดล้อม
เริ่มจากการสร้างสภาพแวดล้อม Conda ใหม่และเปิดใช้งาน:
conda create -n flux python=3.11
conda activate flux
ขั้นตอนที่ 2: ติดตั้ง Dependencies
ตอนนี้ ให้ติดตั้งแพ็กเกจที่ต้องการ:
pip install torch==2.3.1
pip install git+https://github.com/huggingface/diffusers.git
pip install transformers==4.43.3 sentencepiece==0.2.0 accelerate==0.33.0 protobuf==5.27.3
ขั้นตอนที่ 3: เตรียมสคริปต์ Python
สร้างไฟล์ Python ใหม่ชื่อ flux_schnell.py
และเพิ่มโค้ดต่อไปนี้:
import torch
from diffusers import FluxPipeline
import diffusers# ปรับเปลี่ยนฟังก์ชัน rope เพื่อจัดการกับอุปกรณ์ MPS
_flux_rope = diffusers.models.transformers.transformer_flux.rope
def new_flux_rope(pos: torch.Tensor, dim: int, theta: int) -> torch.Tensor:
assert dim % 2 == 0, "มิติจะต้องเป็นเลขคู่"
if pos.device.type == "mps":
return _flux_rope(pos.to("cpu"), dim, theta).to(device=pos.device)
else:
return _flux_rope(pos, dim, theta)
diffusers.models.transformers.transformer_flux.rope = new_flux_rope
# โหลดโมเดล Flux Schnell
pipe = FluxPipeline.from_pretrained(
"black-forest-labs/FLUX.1-schnell",
revision='refs/pr/1',
torch_dtype=torch.bfloat16
).to("mps")
# กำหนดข้อความ
prompt = "แมวที่ถือป้ายที่เขียนว่า สวัสดีโลก"
# สร้างภาพ
out = pipe(
prompt=prompt,
guidance_scale=0.,
height=1024,
width=1024,
num_inference_steps=4,
max_sequence_length=256,
).images[0]
# บันทึกภาพที่สร้างขึ้น
out.save("flux_image.png")
ขั้นตอนที่ 4: เรียกใช้สคริปต์
EXECUTE สคริปต์ Python:
python flux_schnell.py
นี้จะสร้างภาพตามข้อความ “แมวที่ถือป้ายที่เขียนว่า สวัสดีโลก” และบันทึกไว้เป็น “flux_image.png” ในไดเรกทอรีเดียวกัน
ทำความเข้าใจโค้ด
เรามาแบ่งแยกส่วนประกอบสำคัญของสคริปต์:
การนำเข้า Dependencies
import torch
from diffusers import FluxPipeline
import diffusers
บรรทัดเหล่านี้นำเข้าโมดูลที่จำเป็น: PyTorch สำหรับการดำเนินการท่อ, FluxPipeline จากไลบรารี diffusers เพื่อใช้โมเดล Flux Schnell, และโมดูล diffusers สำหรับยูทิลิตี้เพิ่มเติม
การปรับเปลี่ยนฟังก์ชัน Rope
_flux_rope = diffusers.models.transformers.transformer_flux.rope
def new_flux_rope(pos: torch.Tensor, dim: int, theta: int) -> torch.Tensor:
assert dim % 2 == 0, "มิติจะต้องเป็นเลขคู่"
if pos.device.type == "mps":
return _flux_rope(pos.to("cpu"), dim, theta).to(device=pos.device)
else:
return _flux_rope(pos, dim, theta)diffusers.models.transformers.transformer_flux.rope = new_flux_rope
ส่วนนี้ปรับเปลี่ยนฟังก์ชัน rope (Rotary Position Embedding) เพื่อจัดการกับอุปกรณ์ MPS (Metal Performance Shaders) ที่ใช้ในชิป Apple Silicon เพื่อให้แน่ใจว่ามีความเข้ากันได้กับชิป M3 Max โดยการย้าย tensor ไปยัง CPU เมื่อจำเป็น
การโหลดโมเดล
pipe = FluxPipeline.from_pretrained(
"black-forest-labs/FLUX.1-schnell",
revision='refs/pr/1',
torch_dtype=torch.bfloat16
).to("mps")
โค้ดนี้โหลดโมเดล Flux Schnell จาก Hugging Face model hub โดยระบุรุ่นของโมเดล ตั้งค่าประเภทข้อมูลเป็น bfloat16 เพื่อประสิทธิภาพ และย้ายโมเดลไปยังอุปกรณ์ MPS
การสร้างภาพ
prompt = "แมวที่ถือป้ายที่เขียนว่า สวัสดีโลก"out = pipe(
prompt=prompt,
guidance_scale=0.,
height=1024,
width=1024,
num_inference_steps=4,
max_sequence_length=256,
).images[0]
ที่นี่ เรากำหนดข้อความและใช้โมเดลที่โหลดมาเพื่อสร้างภาพ พารามิเตอร์ควบคุมแง่มุมต่างๆ ของกระบวนการสร้าง:
guidance_scale
: ตั้งค่าเป็น 0 สำหรับการสร้างภาพที่ไม่มีเงื่อนไขheight
และwidth
: ตั้งค่ามิติของภาพผลลัพธ์เป็น 1024x1024 พิกเซลnum_inference_steps
: ควบคุมจำนวนขั้นตอนในการลดสัญญาณรบกวน (4 ในกรณีนี้เพื่อความเร็วในการสร้าง)max_sequence_length
: จำกัดความยาวสูงสุดของลำดับข้อมูลนำเข้า
การบันทึกภาพ
out.save("flux_image.png")
ท้ายที่สุด บรรทัดนี้บันทึกภาพที่สร้างขึ้นในรูปแบบไฟล์ PNG ชื่อ “flux_image.png” ในไดเรกทอรีปัจจุบัน
การเพิ่มประสิทธิภาพ
ในการใช้ประโยชน์สูงสุดจาก MacBook Pro M3 Max ของคุณและให้ได้เวลาการสร้างประมาณ 30 วินาที โดยใช้ RAM ถึง 40GB ควรพิจารณาคำแนะนำดังต่อไปนี้:
- ปิดแอพพลิเคชันที่ไม่จำเป็น: ตรวจสอบให้แน่ใจว่าแอพพลิเคชันอื่นที่ใช้ทรัพยากรเข้มข้นถูกปิดเพื่อปล่อย RAM และ CPU
- ปรับขนาดภาพ: หากคุณต้องการเวลาในการสร้างที่เร็วยิ่งขึ้น คุณสามารถลดพารามิเตอร์
height
และwidth
ได้ ในทางกลับกัน คุณสามารถเพิ่มได้เพื่อให้คุณภาพสูงขึ้นแม้จะใช้เวลานานมากขึ้นในการสร้าง - ทดลองกับ
num_inference_steps
: การเพิ่มค่านี้อาจนำไปสู่ภาพที่มีคุณภาพสูงขึ้นแต่จะเพิ่มเวลาในการสร้าง ในขณะที่การลดค่านี้จะเร่งกระบวนการแต่คุณภาพของภาพอาจลดลง - ใช้ความแม่นยำ bfloat16: ตามที่ได้ดำเนินการในสคริปต์แล้ว การใช้ประเภทข้อมูล
torch.bfloat16
ช่วยลดการใช้หน่วยความจำและอาจเพิ่มความเร็วโดยไม่ทำให้คุณภาพลดลงอย่างมีนัยสำคัญ - การประมวลผลแบบจัดกลุ่ม: หากคุณต้องการสร้างภาพหลาย ๆ ภาพ ให้พิจารณาการดำเนินการประมวลผลแบบจัดกลุ่มเพื่อใช้ GPU อย่างมีประสิทธิภาพมากขึ้น
การแก้ปัญหา
หากคุณพบปัญหาในขณะเรียกใช้ Flux Schnell บน MacBook Pro M3 Max ของคุณ ให้ลองทำตามนี้:
- อัปเดต dependencies: ตรวจสอบให้แน่ใจว่าแพ็กเกจทั้งหมดเป็นเวอร์ชันล่าสุด โดยเฉพาะอย่างยิ่ง PyTorch และ diffusers
- ตรวจสอบความเข้ากันได้ของ CUDA: แม้ว่า M3 Max จะใช้ MPS แต่ก็อาจเกิดข้อผิดพลาดที่เกี่ยวข้องกับ CUDA ได้ ให้แน่ใจว่าคุณกำลังใช้เวอร์ชันที่ถูกต้องของ PyTorch และไลบรารีที่เกี่ยวข้องสำหรับระบบของคุณ
- ตรวจสอบการใช้ทรัพยากร: ใช้ Activity Monitor เพื่อติดตามการใช้ RAM และ CPU หากคุณอยู่ในขีดจำกัดอย่างต่อเนื่อง อาจจำเป็นต้องปรับพารามิเตอร์ของโมเดลหรือล้างทรัพยากรระบบเพิ่มเติม
- ล้างแคช: หากคุณพบข้อผิดพลาดที่เกี่ยวข้องกับหน่วยความจำ ให้ลองล้างแคชของ PyTorch:
torch.cuda.empty_cache()
5. เรียกใช้เซิร์ฟเวอร์ใหม่: หากคุณใช้โน้ตบุ๊ก Jupyter หรือสภาพแวดล้อมที่คล้ายกัน ให้ลองเรียกใช้เซิร์ฟเวอร์ใหม่หากคุณพบข้อผิดพลาดอย่างต่อเนื่อง
บทสรุป
การเรียกใช้ Flux Schnell ในเครื่องบน MacBook Pro M3 Max ของคุณมอบความสามารถในการสร้างภาพจากข้อความที่มีพลัง ด้วยการตั้งค่าที่อธิบายในบทแนะนำนี้ คุณสามารถสร้างภาพคุณภาพสูงจากคำบรรยายประมาณ 30 วินาที โดยใช้ RAM ถึง 40GB โปรดทราบว่าประสิทธิภาพอาจแตกต่างกันไปขึ้นอยู่กับฮาร์ดแวร์ของคุณและความซับซ้อนของข้อความ
ลองพยายามทดลองเปลี่ยนพารามิเตอร์ต่าง ๆ เพื่อให้ได้สมดุลที่ดีที่สุดระหว่างความเร็วและคุณภาพของภาพตามความต้องการของคุณ ขณะที่โมเดล AI และฮาร์ดแวร์ยังคงพัฒนา ผลลัพธ์ที่น่าประทับใจมากขึ้นกำลังรออยู่ข้างหน้า ขอให้สนุกกับการสร้าง!