GPT
I

instruct-pix2pix

קוד פתוח

timbrooksmit2023-01-20

  • diffusers
  • safetensors
  • image-to-image

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

  • 860Mפרמטרים
  • 29.7 GBמשקל הקבצים
  • 33,563הורדות בחודש
  • 1,178לייקים

מה זה

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

המבנה שלו נשען על צינור ייעודי בספריית diffusers עם כ־860 מיליון פרמטרים. מה שמייחד אותו לעומת מודלים כלליים של טקסט לתמונה הוא החיבור בין התמונה הקיימת לפקודה, בעזרת פרמטר מיוחד של image guidance שמכתיב כמה המודל יישאר נאמן למקור מול כמה הוא יקשיב להוראת השינוי.

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

מתאים ל

  • עריכת תמונות לפי פקודה

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

  • החלפת סגנון אמנותי

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

  • פיתוח כלי עיצוב למשתמשים

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

איפה זה נופל

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

שאלות
נפוצות

האם המודל מבין הוראות עריכה בעברית?

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

איזה כרטיס מסך מינימלי צריך כדי להריץ אותו מקומית?

בגלל שימוש ב־float16 מדובר במודל שדורש כרטיס מסך עם לפחות 8 גיגה של VRAM לביצוע עריכה פשוטה. אם רוצים להריץ תמונות ברזולוציה גבוהה או באצוות, מומלץ לעבוד עם כרטיס של 12 גיגה ומעלה.

איך מריצים

מריצים אותו בפייתון באמצעות diffusers, transformers וספריית accelerate, כשהקוד טוען את המשקלים ישירות לכרטיס מסך בפורמט float16. המאגר מכיל כמעט 30 גיגה בגלל שמורים בו צ'קפוינטים וקבצים שונים, אבל בריצה מעשית בזיכרון של כרטיס המסך הוא שוקל הרבה פחות.

תצטרכו GPU עם לפחות 8 עד 12 גיגה של VRAM כדי לעבוד איתו בצורה חלקה ב־fp16. אם אתם בונים שירות למשתמשי קצה עם עומס משתנה ואין לכם שרת ייעודי שרץ כל הזמן, עדיף לפנות ל־API חיצוני שמחזיק את המודל במקום לשלם על מכונה חזקה בענן שתעמוד ללא שימוש.

from diffusers import DiffusionPipeline

pipe = DiffusionPipeline.from_pretrained("timbrooks/instruct-pix2pix")
img = pipe("a photo").images[0]

הרישיון

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

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

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