GPT
W

wuerstchen

קוד פתוח

warp-aimit2023-07-19

  • diffusers
  • safetensors
  • text-to-image
  • wuerstchen

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

  • 10.6 GBמשקל הקבצים
  • 128הורדות בחודש
  • 177לייקים

מה זה

הארכיטקטורה הזו מייצרת תמונות מטקסט באמצעות פירוק התהליך לשלושה שלבים. שלב A הוא VQGAN, שלב B הוא Diffusion Autoencoder, ושלב C לומד בתוך המרחב המאוד דחוס שנוצר ביניהם. בזמן שרוב המודלים דוחסים תמונות פי ארבעה עד שמונה, כאן מגיעים לדחיסה מרחבית של פי 42, מה שמאפשר עבודה על רזולוציות של 1024 על 1024 או 1536 על 1536 בחלק קטן מעלות החישוב הרגילה.

התוצאה בפועל היא זמן הסקה קצר משמעותית ביחס למודלים מקבילים כמו Stable Diffusion XL. הריצה המהירה הזו לא באה בחינם, כי הפענוח דרך שני השלבים הראשונים הוא lossy ומאבד מידע מהתמונה המקורית, אבל מי שמחפש קצב יצירה גבוה על חומרה מקומית מקבל פה יתרון ביצועים ברור.

מתאים ל

  • יצירת תמונות ברזולוציה גבוהה

    הוא אומן על רזולוציות של עד 1536 על 1536 ומפיק תמונות גדולות במהירות בלי לחנוק את המעבד הגרפי.

  • אימון והתאמה אישית בזול

    הדחיסה הגבוהה מאפשרת לבצע finetuning על רזולוציות של 2048 על 2048 בחיסכון ניכר של כוח חישוב.

  • הסקה בכמויות גדולות

    זמני הריצה הקצרים פר תמונה הופכים אותו לחלופה חסכונית ליצירת תמונות בבאצ'ים על כרטיסי A100.

איפה זה נופל

הבעיה המרכזית נמצאת בשלב הפענוח. המפתחים מציינים במפורש שהשחזור מאבד פרטים, וזה בולט מאוד במקומות שדורשים דיוק כמו פנים וכפות ידיים של אנשים. בנוסף, המודל אומן על אנגלית בלבד עם מקודד CLIP ViT-bigG/14, ולכן אי אפשר לכתוב לו פרומפטים בעברית באופן ישיר בלי לתרגם אותם קודם.

שאלות
נפוצות

האם אפשר להריץ את המודל הזה לבד עם טקסט?

לא. מודל ה־decoder הזה מייצר תמונות רק מתוך ייצוגים לטנטיים, ובשביל לקבל טקסט ישירות צריך להריץ אותו יחד עם מודל ה־prior שנקרא warp-ai/wuerstchen-prior דרך diffusers.

האם הוא מבין פרומפטים בעברית?

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

למה התוצאות של פרצופים וידיים יוצאות מטושטשות לפעמים?

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

איך מריצים

כדי להריץ אותו צריך פייתון עם ספריית diffusers וכרטיס מסך של Nvidia עם תמיכה ב־CUDA ודיוק חצי (float16). המודל הזה מתפקד כמפענח, ולכן בריצה מלאה חייבים לשלב אותו יחד עם מודל ה־prior שנקרא wuerstchen-prior. הטעינה נעשית דרך AutoPipelineForText2Image, כשהמשקל הכולל של הקבצים מגיע ל־10.6 גיגה-בייט.

אם יש לכם כרטיס גרפי מקומי סביר כמו A100 או מעבד גרפי חזק אחר עם מספיק זיכרון, אפשר להריץ אותו מקומית ולקבל מהירויות גבוהות, במיוחד בשילוב torch.compile. מי שאין לו כרטיס ייעודי יתקשה מאוד להפיק מזה תועלת במחשב רגיל, ובמקרה כזה עדיף לפנות לשרת ענן ייעודי עם מעבד גרפי מתאים.

from diffusers import DiffusionPipeline

pipe = DiffusionPipeline.from_pretrained("warp-ai/wuerstchen")
img = pipe("a photo").images[0]

הרישיון

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

  • שימוש מסחרי
  • שינוי הקוד
  • הפצה מחדש

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