Counter: 110476730
Environment variable:
NEXT_PUBLIC_YANDEX_METRIKA_ID=110476730Goals:
click_create_card- create-card CTA clickopen_cabinet- cabinet openupload_photo- product photo uploadgenerate_card- successful card generationdownload_png- PNG downloaddownload_json- JSON downloadcopy_description- description or marketplace text copysave_to_history- card saved to historyselect_marketplace- marketplace selectionselect_design_preset- design preset selectionpricing_click- pricing plan click
Check in Yandex Metrika: Reports -> Conversions.
Counter: 110476730
Core goals for ads:
click_create_card- create-card CTA clickopen_cabinet- cabinet opengenerate_card- successful card generationdownload_png- PNG download
Direct quick links:
/cabinet/#examples/#how/#pricing
Direct UTM template:
utm_source=yandex_direct&utm_medium=cpc&utm_campaign={campaign_id}&utm_content={ad_id}&utm_term={keyword}
MarketCard AI - MVP AI-сервиса для продавцов маркетплейсов. Пользователь загружает фото товара, вводит описание, выбирает маркетплейс, стиль и режим изображения, а сервис генерирует текст карточки, SEO, инфографику, HTML-preview и AI-изображение через NanoBanana Expert или Google Gemini Nano Banana.
npm install
npm run devСборка:
npm run buildСкопируйте .env.example в .env.local:
AI_PROVIDER=gemini
GEMINI_API_KEY=
GEMINI_TEXT_MODEL=gemini-2.5-flash
IMAGE_PROVIDER=nanobanana_expert
GEMINI_IMAGE_MODEL=gemini-3.1-flash-image
GEMINI_IMAGE_FALLBACK_MODEL=gemini-2.5-flash-image
GEMINI_IMAGE_PRO_MODEL=gemini-3-pro-image
GEMINI_IMAGE_SIZE=1K
NANOBANANA_EXPERT_API_KEY=
NANOBANANA_EXPERT_BASE_URL=https://nanobanana.expert/api/v1
NANOBANANA_EXPERT_MODEL=nb2
NANOBANANA_EXPERT_PROVIDER=auto
NANOBANANA_EXPERT_RESOLUTION=1k
NANOBANANA_EXPERT_ASPECT_RATIO=4:5
KLING_ACCESS_KEY=
KLING_SECRET_KEY=
KLING_BASE_URL=https://api-singapore.klingai.com
KLING_VIDEO_MODEL=kling-v1-6
KLING_VIDEO_MODE=stdСекретные ключи храните только в .env.local. Не добавляйте реальные ключи в .env.example.
Видео из готовой карточки создаётся через Google Veo 3.1 Fast (GenAPI, network id veo-3-1-fast, img2video через image_urls). Длительность — 4, 6 или 8 секунд, без звука. Розничные тарифы: standard (1080p) — 38 ₽/сек (4 сек = 152 ₽), pro (4K) — 114 ₽/сек. Карточка — 55 ₽ за одну генерацию фото.
GENAPI_API_KEY=
GENAPI_BASE_URL=https://api.gen-api.ru
GENAPI_VIDEO_MODEL_ID=veo-3-1-fast
GENAPI_CALLBACK_SECRET=Для включения добавьте в .env.local один из вариантов.
Новый формат (один ключ из консоли Kling, вида api-key-kling-...):
KLING_API_KEY=или
KLING_ACCESS_KEY=Старый формат (пара Access Key + Secret Key для JWT):
KLING_ACCESS_KEY=
KLING_SECRET_KEY=Общие настройки:
KLING_BASE_URL=https://api-singapore.klingai.com
KLING_VIDEO_MODEL=kling-v1-6
KLING_VIDEO_MODE=stdEndpoint приложения: POST /api/generate-video. Он создаёт задачу Kling image2video, если передано изображение, иначе text2video, и возвращает videoUrl либо taskId для повторной проверки.
- Зарегистрируйтесь в NanoBanana Expert.
- Откройте Dashboard → API.
- Создайте API key.
- В
.env.localдобавьте:
NANOBANANA_EXPERT_API_KEY=
NANOBANANA_EXPERT_BASE_URL=https://nanobanana.expert/api/v1
NANOBANANA_EXPERT_MODEL=nb2
NANOBANANA_EXPERT_PROVIDER=auto
NANOBANANA_EXPERT_RESOLUTION=1k
NANOBANANA_EXPERT_ASPECT_RATIO=4:5
IMAGE_PROVIDER=nanobanana_expert- Запустите проект:
npm run dev- На странице генератора выберите: Режим изображения → NanoBanana Expert
401: Неверный API-ключ.
402: Недостаточно banana-баланса.
400: Ошибка параметров запроса.
403: Нет доступа или аккаунт заблокирован.
429: Слишком много запросов.
500/503: Сервис временно недоступен.
nb2: Использовать по умолчанию для красивых товарных карточек, фонов, визуальной композиции и image-to-image.
gpt2: Использовать, если важно лучше отрисовать текст на изображении.
- Создайте API key в Google AI Studio.
- Создайте файл
.env.local. - Добавьте:
GEMINI_API_KEY=
AI_PROVIDER=gemini
IMAGE_PROVIDER=gemini
GEMINI_TEXT_MODEL=gemini-2.5-flash
GEMINI_IMAGE_MODEL=gemini-3.1-flash-image
GEMINI_IMAGE_FALLBACK_MODEL=gemini-2.5-flash-image
GEMINI_IMAGE_PRO_MODEL=gemini-3-pro-image- Запустите проект:
npm run dev- На странице генератора включите “Сгенерировать AI-изображение карточки” и выберите режим:
HTML-preview- не вызывает внешние image API.NanoBanana Expert- генерация через REST API NanoBanana Expert.Gemini Nano Banana-gemini-3.1-flash-image/gemini-2.5-flash-image/gemini-3-pro-image.Auto- сначала NanoBanana Expert (если задан ключ), затем Gemini, затем HTML-preview.
- не задан
NANOBANANA_EXPERT_API_KEYилиGEMINI_API_KEY; - недостаточно banana-баланса в NanoBanana Expert;
- выбран текстовый Gemini model вместо image model;
- не используется Interactions API;
- превышены лимиты API;
- не подключен billing для платного уровня;
- модель временно недоступна;
- запрос заблокирован safety-фильтрами;
- изображение слишком большое или неподдерживаемого формата.
Если AI-изображение не сгенерировалось, интерфейс не падает: показывается HTML/CSS fallback-preview, который можно скачать как PNG.
- Максимальный размер входного файла: 5 МБ.
- Поддерживаются
image/jpeg,image/png,image/webp. - Если файл больше 5 МБ, приложение покажет ошибку: “Изображение слишком большое. Загрузите файл до 5 МБ.”
- Генерация текстовой карточки через Gemini, Ollama, OpenRouter, Hugging Face или smart fallback.
- Генерация AI-изображения карточки через NanoBanana Expert REST API.
- Генерация AI-изображения карточки через Gemini Nano Banana Interactions API.
- Автоматический fallback на HTML/CSS preview.
- Проверка баланса NanoBanana Expert через
/api/image-balance. - Скачивание PNG/AI-изображения и JSON.
- Копирование описания и prompt изображения.
- История последних 10 генераций в localStorage, включая AI-изображение и metadata.
- Защита от слишком больших и неподдерживаемых изображений.
MarketCard AI генерирует текстовые данные карточки с учётом правил конкретной площадки. Платформа влияет на структуру JSON, стиль, ограничения и поля platformSpecific.
- Короткое точное название без SEO-перегруза
- Описание, характеристики, преимущества
- Safe-тексты для инфографики (
wbSafeImageTexts) без цены, скидок и CTA - Список запрещённых слов на фото и чеклист перед загрузкой
- Информативное название, аннотация и полное описание
- Rich-content блоки: «Почему стоит купить», «Сценарии использования», «Что в комплекте»
- Структурированные характеристики и медиа-рекомендации
- Формат объявления, а не карточки маркетплейса
- Заголовок, описание, цена, CTA, доставка
- Блок частых вопросов и ответов
- Информативное название: тип + бренд + характеристики
- Описание и характеристики в каталожном стиле
- Safe-тексты для фото без цен, скидок и CTA
{
"platform": "wildberries",
"textMode": "marketplace_safe",
"productDescription": "портативный вентилятор с тремя режимами и аккумулятором",
"category": "Техника для дома",
"color": "чёрный",
"price": "1290 ₽",
"marketplace": "Wildberries",
"style": "Премиальный",
"includeSeo": true,
"focusBenefits": true,
"includeInfographicText": true
}{
"platform": "avito",
"textMode": "full_listing",
"productDescription": "премиальная награда из дуба и чёрного акрила",
"category": "Сувениры и подарки",
"price": "7490 ₽",
"packageContents": "награда, подарочная упаковка",
"marketplace": "Avito",
"style": "Премиальный",
"includeSeo": true,
"focusBenefits": true,
"includeInfographicText": true
}Ответ API содержит поле marketplaceText с платформенной структурой, platformSpecific, moderationWarnings, improvementTips и exportChecklist.
- В MVP нет прямой публикации на WB/Ozon/Avito.
- AI-модель может ошибаться в мелкой типографике; HTML-preview остается надежным fallback.
- Для Gemini image API может требоваться paid billing.