**TL;DR.** Сделал [pinock.io](https://pinock.io) — бесконечную ленту AI-генерации в стиле винтажных советских плакатов. Бесплатно, без регистрации. Ниже — полный разбор: зачем, на чём держится, сколько стоит, как монетизируется, и какие ошибки я уже совер
---
## Идея
Сейчас «попробовать AI-генерацию» — это:
1. Зарегистрироваться на сервисе.
2. Подтвердить почту.
3. Дать карту / купить кредиты.
4. Выучить, что такое LoRA, sampler, CFG, seed.
5. Получить картинку с вотермаркой.
Я хотел противоположное:
- **Зашёл — увидел.** На главной уже сетка картинок, новая каждые 30 секунд.
- **Никаких аккаунтов.** Ни email, ни карты.
- **Один промпт = одно слово.** Ввёл «cat» — поставил в очередь, через минуту твоя картинка в ленте.
- **Качай и пользуйся.** Без вотермарок и условий «только для личного использования».
Эстетика — винтажные советские/восточно-европейские спичечные коробки 60-х: ограниченная палитра, литографические текстуры, плоская геометрия. Узкая, узнаваемая, не «как у всех».
---
ICP — кто пользуется
После двух недель аналитики:
1. **Дизайнеры и иллюстраторы** — берут как мудборд / референс. Скачивают пачками.
2. **Любители ретро-эстетики** — Pinterest-аудитория. Лайкают, шарят.
3. **AI-комьюнити** — приходят посмотреть, как сделано. Иногда дают жёсткую обратную связь (об этом ниже).
4. **Случайные посетители из соцсетей** — из reddit/Х/телеграма. Залипают, делают пару поисков, уходят.
Первая когорта — самая ценная. Они единственные, кто кликает на «paid edit» (об этом тоже ниже).
---
Стек и стоимость
Намеренно минимальный, чтобы один человек тащил.
Frontend: Vanilla JS, Caddy, статика на дешёвой Ubuntu-машине — $0 (своё железо у знакомого)
Backend API: FastAPI + SQLite (WAL-режим) — там же
FLUX worker: RTX 3090 на vast.ai, FLUX.2-klein + кастомная LoRA — ~$140 ($0.20/ч × 24/7)
Caption worker: Qwen2.5-VL-7B INT4, GTX 1070 Ti — $0 (своё)
Real-ESRGAN: Апскейл топовых картинок — на том же 3090
Stripe: Платежи за edit-токены — 2.9% + $0.30 с транзакции
GA4 + Search Console: Аналитика — $0
Домен pinock.io — $40/год
Итого: ~$140/мес фикс + $40/год домен. Cost per image: $0.005-0.01 при текущем масштабе ~1500 картинок/сутки.
---
Архитектура одной картинки
Пользователь → Поиск/просмотр (только чтение БД)
→ Лайк → если likes ≥ 2 и не было апскейла → задача в enhance_tasks
→ Кастомный промпт → задача в queue_tasks (priority=200)
→ Поиск → n+3 авто-генерации той же категории → queue_tasks (FIFO + priority)
→ FLUX worker (vast.ai 3090) ← poll-цикл
→ FLUX.2-klein + matchbox LoRA → 512×512 JPEG
→ Caption worker (Qwen-VL) → SEO alt-text
→ Backend → SQLite → видна в ленте
Никакой Kubernetes, никаких очередей вне SQLite. На двух машинах с tmux-сессиями. Всё.
---
## Монетизация
Бесплатно: всё, что описано выше. Просмотр, лайк, скачивание, поиск, кастомный промпт.
Платно: «Edit с Nano Banana» — берёшь любую картинку из ленты и переделываешь её через Gemini 3.1 Flash Image. «Сделай розовой», «добавь очки», «в стиле аниме». 1 токен = 1 редактирование. Себестоимость: $0.067 за картинку (это в основном Gemini API). Цена: $5 за 100 токенов = $0.05/токен. Маржа отрицательная по чистой себестоимости, но включает поддержку проекта.
Альтернатива: «Поделись для бесплатного редактирования» — кнопка в edit-диалоге. Запостил в Twitter — получил 1 бесплатный токен. Это конверсия в трафик.
Текущая монетизация — копейки. 5-15 покупок токенов в неделю, ~$50-100 валовая выручка. Это close to break-even на GPU + Stripe-комиссии. Но проект не про монетизацию здесь и сейчас — он про сборку SEO-массы и комьюнити.
---
Что выиграло
Технические выборы:
1. Один-промпт-одно-слово — реально снижает порог входа. Анализ показывает: ~80% поисков — одно слово (cat, owl, fox).
2. SQLite вместо Postgres. На текущем масштабе (~6700 картинок, ~50 RPS) SQLite в WAL-режиме держит всё на нолике CPU. Никакой инфраструктурной поддержки.
3. vast.ai вместо AWS/GCP. $0.20/час против $0.50-0.80 у больших провайдеров. Минус: спот-инстансы умирают, нужно tmux + supervisor для resilience.
4. Caddy вместо nginx. HTTPS из коробки, конфиг в 5 строк.
5. GA4 + Search Console day-one. Без аналитики не видно, что работает. Сейчас вижу: ~70% трафика органика, ~20% direct, ~10% соцсети.
Продуктовые выборы:
1. Hall of Fame на главной. Лучшие картинки (≥2 лайка) показываются первыми, в карусели сверху. Это критически меняет первое впечатление.
2. Auto-generation на основе demand-сигнала. Поиск и лайки → +N картинок в очередь автоматически. Сайт становится «живее» — каждый поиск даёт результат через минуту, даже если такого животного раньше не было.
3. Без аккаунтов — нет шага регистрации = нет drop-off. Лайки и история запоминаются по cookie.
---
Что я уже сломал публично
Чтобы не было ощущения «всё гладко».
1. Двухпроходный пайплайн оказался патчем поверх плохо обученной LoRA.
Я обучил LoRA на ~300 картинках matchbox-плакатов. При нормальном scale=1.0 стиль еле виден. Поднял scale до 2.0 — анатомия ломается. Сделал «sandwich»: pass-1 даёт стиль (с поломанной анатомией), pass-2 без LoRA перерисовывает картинку, оставляя только цвет. Решение работает, но каждый запрос — это 30 секунд GPU вместо ~10.
Запостил в r/StableDiffusion. Получил детальный комментарий от u/DelinquentTuna (https://www.reddit.com/r/StableDiffusion/comments/1t0pcac/comment/ojf7vn1/), который указал: «Ты выбрасываешь 90% работы LoRA в pass-2». Прогнал ablation: 5 вариантов пайплайна × 5 категорий × 3 сида = 75 картинок. Подтвердил его правоту в неожиданной форме — на single-pass с правильным style-промптом и scale=1.0 моя LoRA выдаёт кириллицу прямо в картинке (training-set leakage из обучающего набора советских плакатов).
Вывод: нужно собирать датасет на 1500+ примеров, без кириллицы, с чистой разметкой. Уход в single-pass даст ~3× ускорение генерации и возможность поднять разрешение с 512 до 1024.
2. Дефолтная сортировка была "Latest", а не "Liked".
Тот же u/DelinquentTuna заметил первым: первое впечатление = свежие картинки, в которых много мусора (пользовательских one-word промптов вроде «human face» или «motorcycle»). Поправил: главная теперь по умолчанию показывает Hall of Fame.
3. Поиск был ограничен 60 картинками.
Глупый баг. По «cat» в базе 581 картинка, но фронт показывал только 60. Добавил cursor-пагинацию по id, IntersectionObserver на скролл, и теперь весь корпус доступен. Авто-генерация при этом не триггерится на пагинационных запросах — иначе очередь забилась бы.
4. VAE encode/decode round-trip между проходами.
Pass-1 сохранялся в JPEG, pass-2 читал его и проксировал обратно через VAE. Это потери качества + лишние ~2 секунды. Знал, оставил, потому что хотел сохранять snapshot для отладки. Уберу при переходе на single-pass.
---
Финансовая модель — куда оно идёт
Простая арифметика:
- Постоянные расходы: ~$140 GPU + ~$40/12 домен ≈ $145/мес
- Платежи: ~$50-100/мес валовая, после Stripe ~$45-90 на счёт
- Текущий разрыв: ~$60-100/мес (плачу из своего кармана как маркетинг)
При условии что:
- За год домен наберёт DR 15-20 (реалистично с активной публикацией)
- Органика вырастет с 70% до 85% трафика
- 1% посетителей конвертируется в платящих (currently <0.5%)
- Средний чек — $5
При 50k посетителей/мес: 500 платящих × $5 = $2500/мес валовой. Минус Stripe и GPU = ~$2200 чистыми. Это уже не «маркетинговый эксперимент», а side-project с положительной экономикой.
Чтобы туда дойти, нужны бэклинки и контент-маркетинг. Эта статья — часть того плана.
---
Что бы делал иначе с самого начала
1. Day-one ablation. Не делать sandwich «потому что анатомия не ломается». Сделать 5 вариантов × 3 сида и выбрать тот, что проигрывает реже всего. 30 минут на vast.ai = $0.10. Я этого не сделал.
2. Обучать LoRA на 1500+, не на 300. Соблазн «быстро попробовать» приводит к тому, что неправильная база живёт месяцами.
3. Default sort = Liked с первого дня. Какой смысл в новизне, если первое впечатление страдает.
4. Открытый GitHub-репозиторий day-one. Сейчас я его открываю на 3-й неделе — это упущенный SEO + доверие.
---
Что планирую в ближайшие 2 недели
1. Переобучение LoRA на 1500-датасете. Запускаю завтра.
2. Публикация модели на HuggingFace + Civitai. Бесплатные dofollow-бэклинки от высоко-DA источников.
3. Show HN + Хабр (опубликован). Первые два технических канала.
4. GitHub awesome-lists PR-ы. 5-10 списков типа awesome-ai-art / awesome-flux. Каждый — вечный бэклинк.
5. Pinterest auto-pin скрипт. Каждая Hall of Fame картинка → пин с обратной ссылкой. Pinterest гонит трафик годами.
6. Telegram-каналы с AI-аудиторией. Через знакомых либо платное размещение в 3-5 каналах.
---
Ссылки и контакты
- pinock.io — https://pinock.io
- Reddit-нить с детальной критикой и моим ответом — https://www.reddit.com/r/StableDiffusion/comments/1t0pcac/comment/ojf7vn1/
- Хабр-статья с техническим разбором ablation — ссылка после публикации Хабра
Если у вас есть идеи, что ещё нужно изменить, или вы хотите попробовать что-то сделать вместе — пишите. Этот проект — про быстрые итерации по обратной связи.
Тест кириллицы