Привет Хабр, в этом посте я хочу поделиться историей своего стартапа/пет проекта/сайд хастла. История началась когда я встретился со своим другом/сооснователем и у него, как у меня, было жгучее желание сделать что нибудь такое-эдакое. Это вылилось в 3 месяца работы по ночам и проект на котором удалось заработать обещанные в заголовке $300. Добро пожаловать под кат!

Сентябрь: идея

Когда я был молодым и наивным мне казалось что можно делать и преуспевать в чём угодно. Однако с опытом, оказалось что найти хорошую идею та ещё задачка, особенно если вы планируете как-то ее коммерциализировать. Тема одного выбора идей и проверки гипотезы заслуживает серии статей или книги, например советую почитать "Спроси маму" ("The Mom's Test" в оригинале).

Мы вдохновились историями успеха которые проповедует Y-Combinator и решили что у нас будет системный подход к поиску идеи, правила игры такие:

  • встречаться 1–2 раза в неделю на мозговые штурмы;

  • для каждой “хорошей идеи” мы проверяем product market fit с помощью пользовательских интервью и исследования рынка;

  • идея обязательно должна быть с возможностью быстро собрать MVP

  • запускаемся на западный рынок.

В режиме поиска мы провели около месяца. Основной пул идей был связан с ИИ, кажется это было в основном вызвано профдеформацией, так как я специализируюсь на ML, да и вообще это горячая тема. В общем, за это время у нас было:

  • где то 15-25 боле-менее адекватных идей

  • 4 были интересные

  • 3 из них мы отвергли на стадии исследования

  • одну мы и выбрали.

Из интересных идей которые брали в обсуждении можно отметить: помощник для препода чтобы отвечать на письма студентов, инструмент для управления времени проведённым с детьми и фотошоп в котором только текстовые промпты. Но остановились мы на идее ИИ фотографий для резюме. Продукт должен работать следующим образом:

  • Пользователь загружает около десятка своих фотографий, это могут быть селфи, фотографии из отпуска и т. д.

  • Мы генерируем 40-60 фотографии для резюме, LinkedIn и социальных сетей. Из которых 3-10 более менее нормальные, 1-2 пользователю нравятся и он прикрепляет их к резюме.

В этой идее нам понравилось следующее:

  • новая ниша, только недавно нейронки научились такое делать;

  • на рынке есть потребность, люди уже платят за фото в фотостудиях. Также я просмотрел сабредит r/photoshoprequst, и там было много заказов такого толка;

  • есть несколько конкурентов, на тот момент все они были запущены не так давно, из хайповых историй была только Lensa;

  • проект осуществим (то что в английксом называется feasible).

Октябрь: реализация

Первым делом мы пошли разбирать в матчасть (Dreambooth, FaceSwap/Ractor, deepfake, IP-Adapter/FaceID и прочие примочки), наспех делать прототип на себе самих, делать тестовую закупку у конкурентов.

С технической точки зрения продукт состоял из 3 больших частей:

  • сама генерация фотографий, ML на сервере с GPU;

  • лендинг, кабинет и платежи

  • бэкенд и база которые склеивали всё вместе;

  • позже добавилось мобильное приложение под iOS.

С лендингом и бэкендом все более-менее понятно: дизайн в Figma, покупка доменного имени, клиент-серверный API, Flask. Было 2 интересных момента:

  • принимать платежи на сайте довольно хлопотно, если у вас нет возможности использовать Stripe;

  • можно быстро делать логотипы и графику в SD/Midjourney + минимально доработать в GIMP/Photoshop. Сильно экономит время.

Все это было сделано за 2 недели.

Однако, c самой генерацией фоток была целая куча проблем. По качеству генерации мы значительно отставали от конкурентов. Коротко в чём была проблема (если интересно как это работает в деталях - спрашивайте), есть 3 метода как могла работать генерация:

  1. Берём одну или несколько фотки пользователя, по ней понимаем возраст, национальность, телосложение и т.д. Генерируем изображение человека с похожими на пользователя параметрами, переклеиваем лицо.

  2. Берём фотки пользователя (5-20 штук), дообучаем модель на фотках пользователя, получаем чекпонит который способен генерировать новые изображения с пользователем.

  3. Берём фото пользователя, считаем дескриптор лица, генерируем изображение человека таким образом, что бы дескриптор сгенерированного лица совпадал с лицом пользователя.

Первый подход не сработал, лицо переклеивалось хорошо, но комплекцию и телосложение никак не удавалось воспроизвести, похожесть терялась. Третий подход обладал похожими проблемами, плюс еще и по лицам было видно что это не реальная фотка.

Нам удалось заставить работать только 2й вариант, пришлось добавить много хаков и постфильтраций, требовалось 4 часа времени GPU c 32 Gb памяти на дообучение модели под одного клиента. Но это работало (!!!), и нам удалось докрутить фотореалистичность что бы наше решение выигрывало у конкурентов в 90% случаев (на момент замеров)

Ноябрь: маркетинг

Весь ноябрь мы посвятили маркетингу, поставили себе цель в 20 продаж. Наш маркетинговый план был таким:

  • через друзей; если кто то выкладывал фотки в инсту → это приводило к 2-3 покупкам через друзей-друзей;

  • холодные продажи; в LinkedIn и Instagram писали 10-20 блогерам в день с предложением бесплатно попробовать продукт → бесплатные пользователи находились легко, но каких то значимых покупок мы не получили;

  • органический трафик; Instagram и TikTok снимали видосы и делали контент → не получили клиентов, получили меньше 10 подписчиков;

  • реклама в Instagram и Google, надо тратить деньги → потратили $150, получили 2х клиентов на которых заработали $30;

  • разный хитрый маркетинг на Reddit → получили 30 клиентов разово;

  • начали делать приложение для iOS c с прицелом на ASO [link].

Итого, в рекламе привлечение клиента стоило в 2.5 раза больше чем мы могли на нём заработать, но завёлся кое-какой органический трафик и нам удалось получить клиентов и обратную связь через Reddit, LinkedIn, Instagram и друзей.

В итоге за 3 месяца мы вышли в чистый плюс $300 на двоих. Это с учётом расходов на аренду серверов, бюджетов на рекламу и закупку фото у конкурентов.

Текст на флаге: мы делаем это не потому что это просто, мы думали что это будет просто.
Текст на флаге: мы делаем это не потому что это просто, мы думали что это будет просто.

Итого

  • С событий, описанных в этой стате, прошел почти год, ProfilePhoto находится в рабочем состоянии, но не развивается: счёт за сервера в месяц - $60, он приносит нам $70.

  • Для меня это был ценный опыт запуска пет проекта от начала до конца, хоть это и моветон так говорить, но “я многому научился”.

  • Ниша AI аватаров оказалась слишком легкодоступной, если в сентябре у нас было порядка 10 конкурентов, то в ноябре-декабре 2023 порядка 50.

  • Сценарий использования продукта - купил один раз. Непонятно как удержать пользователя. Сетевой эффект есть, но не получилось его оседлать.

  • Несмотря на развитие диффузионных сетей, какого то качественного скачка в качестве и похожести генерации фото за год не произошло.

  • Нас пытались купить ?, написал чувак, предложил $1000 за всё, мы попросили $5000, договорились на $3000 и он пропал.

Комментарии (15)


  1. Zenitchik
    22.10.2024 17:25

    Ниша AI аватаров оказалась слишком легкодоступной

    А рынок этой хрени насколько вообще велик?


    1. shaggyboo Автор
      22.10.2024 17:25

      Примерно на момент анализа рынка были 2 приложения зарабатывающих где-то около по $500К в месяц. Еще с 5-7 с доходом около $10-20К в месяц. (доход ≠ выручка)


      1. alexxxdevelop
        22.10.2024 17:25

        А как вы оцениваете доход в месяц стороннего приложения?


        1. shaggyboo Автор
          22.10.2024 17:25

          Тут нет универсального способа, есть много разных методик.

          Для приложений есть вот такой сайт sensortower.com, он даёт ±2x верную оценку по приложениям в сторе. Если компания большая - есть crunchbase.

          Ещё есть несколько косвенных тактик, например можно примерно прикинуть порядки используя Ad Transparency программы у Instagram, TikTok и Google, посмотреть какую рекламу закупают конкуренты + использовать данные о кампании и навыки математики.


  1. ukmsz
    22.10.2024 17:25

    Зарубежом категорически не приветствуется добавление фото в резюме, более того использование ии генерации вместо фотографии вообще вызывает подозрения даже если она и очень похожа на реального человека.


    1. beduin01
      22.10.2024 17:25

      Не верьте тем кто так говорит. Люди выбирают глазами. При прочих равных выберут того кто больше понравился визуально.


  1. A107
    22.10.2024 17:25

    Создать проект и выйти в плюс, неважно, что небольшой, считаю уже достижением.
    Любопытства ради посмотрел на статистику lensa.app. Количество их пользователей резко упало.
    Мне интересно, в вашем проекте, сколько из тех пользователей которые заходят на сайт реально получают результат обработки фотогорафий?
    Не может такого быть, что многие сталкиваются с некой проблемой, и тут же закрывают сайт?
    В нынешнее время у людей минимум терпения. При малейшем затруднении. Как пример есть 2 фотки (нужно 10), пользователю неохота доставать смартфон, возиться, потом перекидывать фотографии на ПС. Он закрывает сайт и забывает о нем через секунду.


  1. chebattler
    22.10.2024 17:25

    Как по мне, очень ценный опыт. Не знаю кто этим пользуется для CV. Но как аватар на линкеин- вполне.

    Автор, расскажите пожалуйста подробнее о выбранном методе генерации и особенно дообучения.

    Использовали облачных провайдеров с gpu для ML операций или что-то свое кастомное?

    Как проходил процесс обучения и дообучения? С технической точки зрения.

    4 часа ожидания, не долго ли? Как создавали очередь, уведомление о готовности.

    Другими словами, технические детали подобных проектов было бы интересно почитать, даже кратко


    1. shaggyboo Автор
      22.10.2024 17:25

      Отвечу тут коротко про ML часть, по хорошему надо бы написать отдельную статью, но не уверен что доберусь. Если крупными мазками:

      • Генерация фоток проходит в 3 этапа: процессинг входных фоток пользователя (1), обучение модели (2), постфильтрация (3).

      • (1) сделали чекер фоток которые загружает пользователь (face id + эвристики). От того какие фотки попадут в обучение сильно зависит похожесть и вообще всё. Например, нельзя что бы на фотке был еще один человек, нельзя слишком далёкие, слишком близкие, слишком размытые. Иначе всё это просочится в модель.

      • (2) обучение: наше итоговое решение работает через dreambooth с SD 1.5 (это плагин который позволяет делать fine tune модели). Для хорошей похожести нужно минимум 7 фото, а лучше 15+. Параметры подбирались вручную.

      • (3) постфильтрация: мы отдаём пользовтелю порядка 40 фоток, но под капотом генерим 200+ и с помощью вспомогатеьной модели выбираем top40.

      • В продукте самое долгое - finetune, 4 часа долго, но что делать, в системе есть размен качества vs время, мы решили что всё что меньше 6 часов более менее ок (первая версия работала 12 часов, конкуренты от часа). Мы выкрутили ручку в качество. Считаю что это наше конкурентное преимущество.

      • Мы арендуем GPU на RunPod и гоняем там наш docker: там дешево, простой и понятный API. Мы не использовали готовые API в которые можно подсунуть чекпоинты потому что дальше всё равно есть кастомный постпроцессинг для которого лучше иметь GPU.


      1. chebattler
        22.10.2024 17:25

        спасибо за подробный ответ


  1. gun_dose
    22.10.2024 17:25

    4 часа на генерацию - это в итоговом продукте или я что-то не так понял? Может проще было посадить дизайнера, который будет фотошопить фотки? Как минимум, это было бы быстрее.

    А так, с технической точки зрения очень интересный проект. Жаль, что бесполезный))


  1. js_onelove
    22.10.2024 17:25

    Спасибо, интересный опыт)

    Все думаю написать соц сеть собутыльники)))

    С электрорюмкой


  1. KatykaGud
    22.10.2024 17:25

    а чего в родной директ не пошли, или вк хотя бы? решили все сложно делать, в том числе и рекламу через окольные пути размещать рекламу в недружественной инсте и гугле? не патриотично батенька!


    1. AlinkaMalinka
      22.10.2024 17:25

      Ну слушайте, выбор буржуйских площадок в данном случае вполне соответствует ЦА. Да, и в яндексе, и в вк тоже модно было бы найти покупателей, но это скорее как точка роста и вариант для теста


  1. Cosss
    22.10.2024 17:25

    4 часа? А можно пример? У меня на 16гб 4060 20 секунд занимает генерация на SDXL с помощью Instant ID и одного фото. Фотореализма немного не хватает, но думаю, с этим можно что-то сделать.