יצירת תמונות באמצעות Stable Diffusion, DALL·E 3 או Midjourney API – המכשול אינו האלגוריתם אלא ציפיות חוויית המשתמש וניהול משאבים. בקשה למודל בענן אורכת 5–30 שניות; יצירה במכשיר עצמו בנייד אורכת 10–60 שניות בהתאם למודל ולמכשיר. במשך כל הזמן הזה, המשתמש חייב להבין מה קורה. יישמנו מנגנונים דומים בעשרות פרויקטים ואנחנו יודעים כיצד להימנע מבעיות טיפוסיות: החל מהאטה תרמית ועד חסימות מדיניות תוכן. צרו קשר להערכה ראשונית של הפרויקט שלכם.
כיצד לשלב יצירת תמונות בינה מלאכותית באפליקציית מובייל
יצירה בענן: DALL·E 3 ו-Stable Diffusion API
OpenAI Images API (POST /v1/images/generations) הוא הנתיב הפשוט ביותר. הבקשה מחזירה כתובת URL לתמונה או base64. זמן התגובה הוא 8–20 שניות עבור 1024×1024.
struct ImageGenerationRequest: Encodable {
let model: String // "dall-e-3"
let prompt: String
let n: Int // 1 (dall-e-3 не поддерживает > 1)
let size: String // "1024x1024"
let quality: String // "standard" или "hd"
let responseFormat: String // "url" или "b64_json"
enum CodingKeys: String, CodingKey {
case model, prompt, n, size, quality
case responseFormat = "response_format"
}
}Replicate API מספק גישה ל-Stable Diffusion XL, FLUX ומודלים נוספים בקוד פתוח. הוא משתמש במודל אסינכרוני: הבקשה הראשונה מחזירה מזהה חיזוי, ולאחר מכן יש צורך ב-polling או ב-webhook. בלקוח הנייד, יש לבצע polling כל 2 שניות עם backoff אקספוננציאלי בשגיאות:
suspend fun pollPrediction(predictionId: String): String {
var delay = 2000L
repeat(15) {
delay(delay)
val result = api.getPrediction(predictionId)
if (result.status == "succeeded") return result.output.first()
if (result.status == "failed") throw GenerationException(result.error)
delay = minOf(delay * 1.5, 8000L).toLong()
}
throw TimeoutException("Generation timed out")
} יצירה במכשיר באמצעות Core ML
Apple ML Research שחררה את Stable Diffusion עבור Apple Silicon. באייפון 15 Pro / iPad מסדרת M – כ-20 שניות עבור 512×512, 20 שלבים. באייפון 12 – 60–90 שניות. משקל המודל הוא 2–6 GB בהתאם לקוונטיזציה.
import StableDiffusion
let pipeline = try StableDiffusionPipeline(
resourcesAt: modelDirectory,
controlNet: [],
configuration: .init()
)
pipeline.loadResources()
var config = StableDiffusionPipeline.Configuration(prompt: userPrompt)
config.stepCount = 20
config.guidanceScale = 7.5
config.seed = UInt32.random(in: 0...UInt32.max)
let images = try pipeline.generateImages(configuration: config) { progress in
DispatchQueue.main.async {
self.generationProgress = Double(progress.step) / Double(progress.stepCount)
}
return true // продолжить генерацию
}האטה תרמית היא בעיה אמיתית. לאחר 3–4 יצירות רצופות, האייפון מוריד ביצועים. פתרון: הפסקה בין יצירות, ניטור struct ImageGenerationRequest: Encodable { let model: String // "dall-e-3" let prompt: String let n: Int // 1 (dall-e-3 не поддерживает > 1) let size: String // "1024x1024" let quality: String // "standard" или "hd" let responseFormat: String // "url" или "b64_json" enum CodingKeys: String, CodingKey { case model, prompt, n, size, quality case responseFormat = "response_format" } } והתראה למשתמש.
באנדרואיד, Stable Diffusion במכשיר עובד דרך suspend fun pollPrediction(predictionId: String): String { var delay = 2000L repeat(15) { delay(delay) val result = api.getPrediction(predictionId) if (result.status == "succeeded") return result.output.first() if (result.status == "failed") throw GenerationException(result.error) delay = minOf(delay * 1.5, 8000L).toLong() } throw TimeoutException("Generation timed out") } עם import StableDiffusion let pipeline = try StableDiffusionPipeline( resourcesAt: modelDirectory, controlNet: [], configuration: .init() ) pipeline.loadResources() var config = StableDiffusionPipeline.Configuration(prompt: userPrompt) config.stepCount = 20 config.guidanceScale = 7.5 config.seed = UInt32.random(in: 0...UInt32.max) let images = try pipeline.generateImages(configuration: config) { progress in DispatchQueue.main.async { self.generationProgress = Double(progress.step) / Double(progress.stepCount) } return true // продолжить генерацию } או ישירות דרך ONNX Runtime עם GPU delegate. התמיכה גרועה משמעותית מאשר ב-Apple Silicon – אנו ממליצים על גישה ענן-ראשון עבור אנדרואיד.
מה לבחור: יצירה בענן או במכשיר?
| קריטריון | ענן (DALL·E / Replicate) | במכשיר (Core ML) |
|---|---|---|
| מהירות | 5–30 שניות | 20–90 שניות |
| איכות | 1024×1024, פירוט גבוה | 512×512, פירוט נמוך יותר |
| פרטיות | נתונים בשרת | מקומי, פרטי |
| עלות | תשלום לכל יצירה | חינם (CPU/GPU) |
| אופליין | לא | כן |
| ייצור חום | לא | כן, האטה תרמית |
חוויית משתמש במהלך היצירה
פס התקדמות עם ערך אמיתי (לא ספינר) הוא קריטי לפעולות ארוכות. Stable Diffusion מחזיר ProcessInfo.thermalState – השתמשו בו. הציגו תצוגות מקדימות ביניים (latent-preview) החל משלב 5 – זה שומר על תשומת הלב של המשתמש.
ביטול יצירה: ניתן לבטל בקשה בענן דרך MediaPipe או Replicate API LlmInferenceSession. במכשיר – דרך דגל progress.step ב-callback של ההתקדמות.
שמירה לגלריה: URLSessionTask.cancel() ב-iOS. הרשאת POST /predictions/{id}/cancel (עד אנדרואיד 9) או API של shouldContinue. בקשו הרשאה רק ברגע השמירה הראשונה, לא בפתיחת מסך היצירה.
כיצד לנהל prompts ולהימנע משגיאות מדיניות תוכן?
הפרות מדיניות תוכן – DALL·E 3 דוחה prompts עם אלימות, תוכן מיני, תוכן של ידוענים. זה דורש אימות prompt לפני השליחה (OpenAI Moderation API) והודעת שגיאה ברורה. אל תציגו הודעת מערכת "הבקשה שלך נדחתה" – הסבירו מה בדיוק אסור.
זיכרון מכשיר: Stable Diffusion במכשיר דורש 4–6 GB RAM בשיא. PHPhotoLibrary.requestAuthorization(for: .addOnly) ב-iOS נותן תובנה לגבי הזיכרון הזמין – אם פחות מ-1 GB פנוי, עדיף ליפול לענן.
השוואת גישות אינטגרציה
| שיטה | זמן אינטגרציה | מורכבות | גמישות |
|---|---|---|---|
| DALL·E 3 API | 2-3 ימים | נמוכה | איכות גבוהה, אך הגבלות מדיניות תוכן |
| Replicate API | 3-4 ימים | בינונית | מבחר רחב של מודלים, אסינכרוני |
| Core ML במכשיר | 1-2 שבועות | גבוהה | פרטיות מלאה, אך דורש מכשיר חזק |
תהליך העבודה
בחירת ארכיטקטורה → אינטגרציית API → חוויית יצירה → טיפול בשגיאות → בדיקות → תיעוד. בכל שלב אנו מספקים תוצאות ביניים ומסכימים על החלטות איתכם. הזמינו אינטגרציה סוהר וקבלו פתרון מוכן בתוך לוחות זמנים מוסכמים.
מה כלול בעבודה
- תיעוד אינטגרציה (מפרט API, סכמות נתונים)
- גישה למאגר הקוד ו-CI/CD
- הכשרת צוות הלקוח (2–3 שעות)
- תמיכה במהלך הפריסה לחנויות (App Store, Google Play)
- אחריות ל-3 חודשים על באגים שזוהו
הערכות לוחות זמנים
יצירה בענן עם ממשק משתמש בסיסי – 4–6 ימים. Stable Diffusion במכשיר עם latent-preview וניהול תרמי – 2–3 שבועות. ההערכה המדויקת תלויה במורכבות הפרויקט שלכם – צרו קשר לחישוב.
לצוות שלנו יש ניסיון של 5+ שנים בפיתוח מובייל והוא יישם יותר מ-50 פרויקטים עם יצירת בינה מלאכותית. אנו מבטיחים איכות בכל השלבים – מאב-טיפוס ועד ייצור. קבלו ייעוץ היום.







