GPT
S

stable-diffusion-inpainting

קוד פתוח

stable-diffusion-v1-5creativeml-openrail-m2024-08-30

  • diffusers
  • stable-diffusion
  • stable-diffusion-diffusers
  • text-to-image

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

  • 14.2 GBמשקל הקבצים
  • 144,338הורדות בחודש
  • 119לייקים

מה זה

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

במבחני השוואה מול מודלים קודמים כמו LaMa וגרסאות מוקדמות של Latent Diffusion, הוא השיג ציון FID של 1.00 לעומת 1.50 ומעלה אצל המתחרים. בפועל זה אומר שהאזורים שהוא שותל נראים טבעיים יותר לעין ומשתלבים טוב יותר ברקע, לפחות כשעובדים בסגנון צילומי וברזולוציית המקור שלו.

מתאים ל

  • הסרת עצמים מתוך תמונה

    צובעים אובייקט במסיכה והוא משלים את הרקע החסר בצורה נקייה בהתאם לסביבה.

  • החלפת פריטים לפי טקסט

    מאפשר לסמן פריט לבוש או רהיט ולהחליף אותו באחר בלי לשנות את שאר הפריים.

  • תיקון פגמים בצילום

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

איפה זה נופל

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

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

שאלות
נפוצות

אפשר לכתוב לו פרומפטים בעברית?

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

למה התוצאה יוצאת מטושטשת בתמונות גדולות?

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

איך מריצים

טוענים אותו ישירות דרך ספריית diffusers בפייתון עם StableDiffusionInpaintPipeline, או מורידים את קובץ המשקולות sd-v1-5-inpainting.ckpt ומריצים בממשק Automatic1111. בקוד מומלץ להשתמש בגרסת fp16 כדי לחסוך זיכרון ולרוץ מהר יותר.

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

from diffusers import DiffusionPipeline

pipe = DiffusionPipeline.from_pretrained("stable-diffusion-v1-5/stable-diffusion-inpainting")
img = pipe("a photo").images[0]

הרישיון

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

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

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