GPT
L

lcm-sdxl

קוד פתוח

latent-consistencyopenrail++2023-11-07

  • diffusers
  • safetensors
  • text-to-image

גרסה מזוקקת של SDXL שמייצרת תמונות בתוך 2 עד 8 צעדי חישוב בלבד. היא מיועדת למי שחייב מהירות תגובה קיצונית מקומית ולא מוכן לחכות לעשרות צעדי דיפוזיה.

  • 2.6Bפרמטרים
  • 14.3 GBמשקל הקבצים
  • 2,158הורדות בחודש
  • 160לייקים

מה זה

מדובר בגרסה מזוקקת של מודל הבסיס SDXL 1.0, שמטרתה לחתוך דרסטית את כמות צעדי החישוב הנדרשת לייצור תמונה. במקום 20 עד 50 צעדים שמודל הדיפוזיה הרגיל דורש כדי להגיע לתוצאה סבירה, הארכיטקטורה הזו מגיעה לפלט מוגמר בטווח של 2 עד 8 צעדים בלבד.

המודל כולל כמעט 2.6 מיליארד פרמטרים ונשען על ארכיטקטורת UNet של SDXL. השינוי המרכזי כאן אינו שיפור באיכות התמונה או הגדלת הרזולוציה מעבר למקור, אלא צמצום זמני ההמתנה לחלקיק ממה שהכרתם בייצור תמונות כבד. כדי להשתמש בו מחליפים את ה־scheduler המקורי ב־LCMScheduler הייעודי.

המשמעות בפועל ברורה: המודל מאפשר לייצר תמונות בקצב שמסוגל להתקרב לזמן אמת. עם זאת, אין כאן קסמים חישוביים שחוסכים בזיכרון, והמודל שומר על המורכבות והמשקל המקוריים של SDXL.

מתאים ל

  • יצירת תמונות בזמן אמת

    מתאים לממשקים אינטראקטיביים שדורשים תגובה מיידית בגלל הצורך ב־2 עד 4 צעדי חישוב בלבד.

  • עיבוד תמונות בנפח גבוה

    חוסך זמן עיבוד משמעותי למי שמייצר אלפי תמונות ברצף על גבי שרתי GPU ייעודיים.

  • בדיקת פרומפטים מהירה

    מאפשר לסקור עשרות כיוונים ויזואליים תוך שניות לפני מעבר לרינדור כבד ומדויק.

איפה זה נופל

הקיצוץ במספר הצעדים מגיע עם מחיר ברור בהגדרות הריצה. חובה להגדיר את ה־guidance_scale לערכים נמוכים מאוד, בין 1.0 ל־2.0, או לבטל אותו לגמרי, אחרת התוצאות נהרסות. הדוגמה הרשמית בקוד שמשתמשת בערך 8.0 למעשה סותרת את ההנחיות של הכרטיס עצמו. בנוסף, התיעוד בכרטיס המודל חלקי מאוד, כל חלקי המדידות, האימון, והתמיכה במשימות כמו Inpainting או ControlNet מסומנים כ־TODO בלבד ללא שום הוכחה או בדיקה מעשית.

שאלות
נפוצות

האם המודל דורש פחות זיכרון כרטיס מסך מ־SDXL רגיל?

לא. משקל הקבצים עומד על 14.3 גיגה־בייט ומספר הפרמטרים נשאר 2.6 מיליארד. החיסכון הוא אך ורק בזמן החישוב הודות למספר הצעדים הנמוך, ולא בכמות ה־VRAM הנדרשת לטעינת המודל.

איך משפיעה הגדרת ה־guidance scale על התוצאה?

בניגוד למודלי SDXL רגילים שבהם נהוג לעבוד עם ערכים סביב 7 או 8, כאן הכרטיס מנחה לעבוד בטווח שבין 1.0 ל־2.0 בלבד או לבטל את ההגדרה לחלוטין. חריגה מהערכים האלה עלולה לפגוע קשות באיכות התמונה.

איך מריצים

כדי להריץ אותו מקומית צריך כרטיס מסך עם זיכרון משמעותי, שכן מדובר בקבצים ששוקלים יחד 14.3 גיגה־בייט ובמודל של 2.6 מיליארד פרמטרים. ההרצה נעשית דרך ספריית diffusers מגרסה 0.23 ומעלה, יחד עם transformers, accelerate ו־peft, כשטוענים את משקלי ה־UNet הללו לתוך ה־pipeline הרגיל של SDXL בפורמט fp16.

אם אין לכם כרטיס מסך מתאים עם לפחות 16 גיגה זיכרון גרפי ייעודי, עדיף להריץ את המודל על שרת ענן ייעודי או לפנות לפתרונות API מנוהלים. היתרון בריצה מקומית קיים רק אם החומרה שלכם חזקה מספיק לסחוב את SDXL בלי להיחנק.

from diffusers import DiffusionPipeline

pipe = DiffusionPipeline.from_pretrained("latent-consistency/lcm-sdxl")
img = pipe("a photo").images[0]

הקבצים

6 קבצים במאגר, 14.3 GB סך הכול. הקישורים מובילים ישירות ל־Hugging Face.

הרישיון

הרישיון הוא OpenRAIL++, המאפשר שימוש מסחרי אך מטיל מגבלות שימוש ספציפיות כדי למנוע יישומים מזיקים, בלתי חוקיים או פוגעניים. מי שרוצה לשלב את המודל במוצר מסחרי חייב לוודא שהשימוש אינו מפר את רשימת האיסורים של הרישיון, ולצרף את תנאי הרישיון המקוריים לתוצר.

  • שימוש מסחרי
  • שינוי הקוד
  • מגבלות שימוש ברישיון

הרישיון המלא בעמוד המודל ↗