YouTube Walk-through โดย AI Epiphany
นี่คือพอร์ตที่รวดเร็วและน้อยที่สุดของ Dall · E Mini ของ Boris Dayma (พร้อมน้ำหนักขนาดใหญ่) มันถูกถอดออกสำหรับการอนุมานและแปลงเป็น pytorch การพึ่งพาของบุคคลที่สามเพียงอย่างเดียวคือ numpy คำขอหมอนและคบเพลิง
เพื่อสร้างภาพ 3x3 ของ Dall · E Mega Images:
นี่คือรายละเอียดเพิ่มเติมของการแสดงบน A100 เครดิตถึง @Technobird22 และบอท Neogen Discord ของเขาสำหรับกราฟ 
รูปแบบผ้าลินินและรหัสสำหรับการแปลงเป็นไฟฉายสามารถพบได้ที่นี่
$ pip install min-dalleโหลดพารามิเตอร์โมเดลหนึ่งครั้งและนำโมเดลกลับมาใช้ใหม่เพื่อสร้างหลายภาพ
from min_dalle import MinDalle
model = MinDalle (
models_root = './pretrained' ,
dtype = torch . float32 ,
device = 'cuda' ,
is_mega = True ,
is_reusable = True
) รุ่นที่ต้องการจะถูกดาวน์โหลดไปยัง models_root หากยังไม่มีอยู่ที่นั่น ตั้งค่า dtype เป็น torch.float16 เพื่อบันทึกหน่วยความจำ GPU หากคุณมีสถาปัตยกรรม Ampere GPU คุณสามารถใช้ torch.bfloat16 ตั้งค่า device เป็น "cuda" หรือ "CPU" เมื่อทุกอย่างเริ่มต้นเสร็จแล้วให้โทรหา generate_image พร้อมข้อความบางส่วนตามที่คุณต้องการ ใช้ seed ที่เป็นบวกสำหรับผลลัพธ์ที่ทำซ้ำได้ ค่าที่สูงขึ้นสำหรับ supercondition_factor ส่งผลให้เกิดข้อตกลงที่ดีขึ้นกับข้อความ แต่มีภาพที่สร้างขึ้นที่หลากหลาย โทเค็นรูปภาพทุกรายการจะถูกสุ่มตัวอย่างจากโทเค็น top_k เป็นไปได้มากที่สุด logit ที่ใหญ่ที่สุดจะถูกลบออกจาก logits เพื่อหลีกเลี่ยง infs logits จะถูกหารด้วย temperature หาก is_seamless เป็นจริงตารางรูปภาพจะถูกปูกระเบื้องในพื้นที่โทเค็นไม่ใช่พื้นที่พิกเซล
image = model . generate_image (
text = 'Nuclear explosion broccoli' ,
seed = - 1 ,
grid_size = 4 ,
is_seamless = False ,
temperature = 1 ,
top_k = 256 ,
supercondition_factor = 32 ,
is_verbose = False
)
display ( image )
เครดิตไปที่ @hardmaru สำหรับตัวอย่าง
ภาพยังสามารถสร้างเป็น FloatTensor ในกรณีที่คุณต้องการประมวลผลด้วยตนเอง
images = model . generate_images (
text = 'Nuclear explosion broccoli' ,
seed = - 1 ,
grid_size = 3 ,
is_seamless = False ,
temperature = 1 ,
top_k = 256 ,
supercondition_factor = 16 ,
is_verbose = False
)ในการรับภาพในรูปแบบ PIL คุณจะต้องย้ายรูปภาพไปยัง CPU ก่อนและแปลงเทนเซอร์เป็นอาร์เรย์ Numpy
images = images . to ( 'cpu' ). numpy () จากนั้นภาพ
image = Image . fromarray ( images [ i ])
image . save ( 'image_{}.png' . format ( i )) หากโมเดลถูกใช้งานแบบโต้ตอบ (เช่นในโน้ตบุ๊ก) generate_image_stream สามารถใช้ในการสร้างกระแสของภาพในขณะที่โมเดลกำลังถอดรหัส Detokenizer เพิ่มความล่าช้าเล็กน้อยสำหรับแต่ละภาพ ตั้งค่า progressive_outputs เป็น True เพื่อเปิดใช้งานสิ่งนี้ ตัวอย่างถูกนำไปใช้ใน colab
image_stream = model . generate_image_stream (
text = 'Dali painting of WALL·E' ,
seed = - 1 ,
grid_size = 3 ,
progressive_outputs = True ,
is_seamless = False ,
temperature = 1 ,
top_k = 256 ,
supercondition_factor = 16 ,
is_verbose = False
)
for image in image_stream :
display ( image )
ใช้ image_from_text.py เพื่อสร้างภาพจากบรรทัดคำสั่ง
$ python image_from_text.py --text= ' artificial intelligence ' --no-mega