Cone AI Wallpapers — приложение для генерации обоев под iPhone и iPad. В App Store на момент написания статьи 4.7★ и 771 отзыв. Это собственный продукт студии, который мы запустили в 2024 году и развиваем до сих пор. Расскажем про архитектуру.
Почему не on-device генерация
Соблазн запустить Stable Diffusion прямо на устройстве был — Apple даже выкладывала Core ML версию модели. Но нагрузка на Neural Engine ощутимая, время генерации 4K-обоев — 30–60 секунд на iPhone 15 Pro, а на старых устройствах модель просто не запускается из-за лимита памяти.
Главное — нам нужно было контролировать качество модели и LoRA-адаптеры под стилистику обоев. На бэкенде это решаемо за дни, на устройстве — нет.
Бэкенд
API на Python (FastAPI) + очередь задач на Redis. Воркеры с GPU-инстансами обрабатывают генерацию, готовый файл уходит в S3-совместимое хранилище, мобильное приложение скачивает через CDN. Latency от «нажал кнопку» до «вижу обои» — 8–15 секунд.
Каталог 5 600+ готовых обоев — отдельная коллекция в PostgreSQL с pgvector. По каждой обоине считаем эмбеддинг описания и CLIP-эмбеддинг изображения. Поиск «AMOLED космос с туманностями» — это просто косинусное расстояние между эмбеддингом запроса и эмбеддингами в коллекции.
Подбор по цвету
Цветовая палитра — отдельная фича: пользователь выбирает оттенок, мы ищем обои с похожим dominant color. Технически — k-means по каждому изображению на этапе загрузки, сохранение 5 доминирующих цветов в Lab-пространстве, поиск по CIEDE2000. На PostgreSQL без всяких ML.
Что не взлетело
В первой версии генерация работала на OpenAI DALL-E 3 API. Это позволило запустить за неделю, но стоимость одного 4K-обоя через DALL-E была неприемлемой. Перешли на собственный стек на четвёртый месяц — окупилось.
Также не взлетел chat-интерфейс «спроси нейросеть какие обои сделать». Пользователи не писали свободно, а нажимали кнопки с готовыми стилями. Убрали в v1.2, оставили только тонкое текстовое поле + чипы со стилями.



