Почему YandexART, а не Midjourney

Протестировал три генератора: Midjourney, Kandinsky, YandexART. Остановился на последнем:

КритерийMidjourneyKandinskyYandexART
Цена$10-30/мес2-5 ₽/изобр~0.70 ₽/изобр
API⛔ Discord-only✅ REST API✅ REST API (Yandex Cloud)
Качество🔥🔥🔥🔥🔥🔥🔥🔥
Скорость30-60 сек10-20 сек5-15 сек
Русский языкСреднеХорошоОтлично (промпты на русском)

Главный плюс YandexART: промпты на русском работают лучше, чем на английском. Для русского контента это решающий фактор. Midjourney требует английский и живёт в Discord — API не сделать.

API: одна функция для всего

YandexART доступен через тот же endpoint что Alice и YandexGPT — ai.api.cloud.yandex.net/v1/responses. Меняем модель на yandex-art/latest.

<?php
// yandexart_generate.php — генерация картинки через API
function generateImage(string $prompt, string $outputPath): bool {
    $apiKey = getenv("YANDEX_API_KEY");
    $folderId = getenv("YANDEX_FOLDER_ID");

    $body = json_encode([
        "model" => "yandex-art/latest",
        "messages" => [
            ["role" => "user", "text" => $prompt]
        ],
        "generation_options" => [
            "aspect_ratio" => "16:9",  // или 1:1, 4:3, 9:16
            "mime_type" => "image/png",
            "width" => 1280,
            "height" => 720,
        ],
    ]);

    $ch = curl_init("https://ai.api.cloud.yandex.net/v1/responses");
    curl_setopt_array($ch, [
        CURLOPT_POST => true,
        CURLOPT_POSTFIELDS => $body,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HTTPHEADER => [
            "Content-Type: application/json",
            "Authorization: Api-Key " . $apiKey,
            "x-folder-id: " . $folderId,
        ],
        CURLOPT_TIMEOUT => 90,
    ]);

    $response = curl_exec($ch);
    $data = json_decode($response, true);
    
    // Ответ содержит base64-изображение
    $base64 = $data["result"]["image"] ?? "";
    if ($base64) {
        file_put_contents($outputPath, base64_decode($base64));
        return true;
    }
    
    return false;
}

// Использование
generateImage(
    "Товарная фотография кроссовок на белом фоне, студийный свет, вид сбоку",
    "/var/www/images/sneakers_side.png"
);

Промпты: искусство, а не магия

Промпт для генерации — это 80% результата. Плохой промпт = мусорная картинка. Вот моя формула промпта:

[ТИП ИЗОБРАЖЕНИЯ] [ОБЪЕКТ] на [ФОН], [СТИЛЬ], [ОСВЕЩЕНИЕ], [РАКУРС], [ДЕТАЛИ]

Примеры рабочих промптов:

ЗадачаПромптРезультат
Товарное фотоТоварная фотография серебряного кольца с сапфиром на белом фоне, студийный свет, макросъёмка, вид сверху, ювелирное качество🔥🔥🔥
Баннер для статьиАбстрактная иллюстрация нейронной сети, тёмно-синий фон, светящиеся соединения, минимализм, 16:9🔥🔥🔥
ИнфографикаСовременный офис с роботами и людьми, светлый интерьер, пастельные тона, широкая перспектива, чистое изображение🔥🔥

Что убивает качество:

  • Размытые промпты: «сделай красиво» — пиздец, а не промпт
  • Слишком много объектов: «кошка, собака, машина, город, закат» — генератор сходит с ума
  • Противоречия: «ночное освещение, яркое солнце» — выбери что-то одно

Я очищаю промпты через YandexGPT 5.1 перед отправкой — модель вычленяет суть и убирает мусор. Это даёт +30% к качеству.

Масштабирование: генерация пачками

Для статей и лендингов нужно не 1 изображение, а 5-10. Писать промпты руками — долго. Автоматизация:

<?php
// batch_generate.php — пачка картинок по теме
function batchGenerate(string $topic, int $count = 5): array {
    $results = [];
    
    // Вариации промптов для одной темы
    $variations = [
        "обложка статьи" => "Иллюстрация-обложка на тему «{$topic}», современный стиль, 16:9, насыщенные цвета",
        "инфографика" => "Инфографика на тему «{$topic}», чистый дизайн, пастельные тона, 4:3",
        "абстракция" => "Абстрактная композиция «{$topic}», тёмный фон, светящиеся элементы, 16:9",
        "реализм" => "Реалистичное изображение «{$topic}», естественное освещение, 4:3",
        "минимализм" => "Минималистичная иллюстрация «{$topic}», белый фон, акцентный цвет, 1:1",
    ];
    
    $i = 0;
    foreach ($variations as $type => $prompt) {
        if ($i >= $count) break;
        $filename = "/var/www/images/" . slugify($topic) . "_" . ($i+1) . ".png";
        if (generateImage($prompt, $filename)) {
            $results[] = $filename;
        }
        $i++;
        usleep(500_000); // 0.5 сек между запросами
    }
    
    return $results;
}

$images = batchGenerate("нейросети в бизнесе", 5);
echo "Сгенерировано: " . count($images) . " из 5\n";
echo "Затраты: " . (count($images) * 0.70) . " ₽\n";

5 картинок для статьи = 3.50 ₽ и 30 секунд. Дизайнер за те же 5 картинок = минимум 2 500 ₽ и 3 дня ожидания.

Модели заработка на генерации картинок

Модель 1: Товарные фото для маркетплейсов

Селлеры на Wildberries и Ozon тратят от 500 ₽ за одно товарное фото. Нейросеть делает 10 фото за 7 ₽.

Услуга: «10 товарных фото для вашего товара — 1 500 ₽». Себестоимость: 7 ₽. Маржа: 99.5%.

Где искать клиентов:

  • Чаты селлеров в Telegram
  • Биржи фриланса (Kwork, fl.ru)
  • Прямой обзвон новых магазинов на WB/Ozon

50 клиентов в месяц × 1 500 ₽ = 75 000 ₽. Затраты: 350 ₽ на API. Чистыми: 74 650 ₽.

Модель 2: Иллюстрации для статей и блогов

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

Пакет: «10 уникальных иллюстраций для вашего блога — 2 000 ₽». Себестоимость: 7 ₽.

Модель 3: Дизайн лендингов и баннеров

Генерация фоновых изображений, иконок, баннеров для сайтов. Один лендинг требует 3-5 уникальных изображений.

Цена: 3 000 ₽ за комплект визуалов для лендинга. Себестоимость: 3.50 ₽.

Грабли и решения

Пальцы и текст. YandexART (как и все генераторы) плохо рисует руки и текст на изображениях. Решение: не проси людей крупным планом и не вставляй текст в картинку. Текст — отдельно в HTML/CSS.

Однотипность. Если генеришь 20 картинок подряд с одинаковым промптом — они будут похожи. Решение: добавляй вариации в промпт: «вариант 1», «другой ракурс», «альтернативный стиль».

Лимиты API. Бесплатный грант Yandex Cloud — 4 000 ₽. Хватает на ~5 700 картинок. Дальше — копейки. Но если генеришь тысячи в день — подключи платёжку.

Что это значит для вас: Генерация картинок — самый недооценённый способ заработка на нейросетях. 70 копеек за изображение, которое продаётся за 500-3000 ₽. Это не «игрушка с картинками», это производство. Если хотите поставить генерацию на поток — код выше ваш, берите и запускайте.