Сам по себе Claude не генерирует ни картинки, ни видео, но через свой скилл ему можно дать API, который это умеет. Я подключил kie.ai, агрегатор, который по одному ключу и за предоплаченные кредиты перепродаёт GPT Image 2, Nano Banana, Seedream, Seedance, Kling и Veo, к скиллу /kie-media, и теперь тот же чат, где пишется промпт, сам его запускает, ждёт результат и скачивает файл. В живом прогоне для этого поста одна 2K-картинка на Nano Banana 2 обошлась в 8 кредитов, то есть $0.04, и была готова за 26 секунд; 5-секундный клип на Seedance 2.0 Mini стоил 41 кредит, то есть $0.21, и занял 114 секунд. Вся настройка - пакет кредитов за $25, одна папка скилла на 647 строк и четыре домена в белом списке песочницы.
TL;DR
- Claude и так писал каждый промпт для картинок; не хватало только способа вызвать генератор. Скилл с ключом kie.ai закрывает этот разрыв внутри одного чата.
- Реальные цифры из прогона для этого поста: 2K-картинка за 8 кредитов ($0.04) и 26 секунд, 5-секундный клип в 720p за 41 кредит ($0.21) и 114 секунд. За $25 - 5 000 кредитов, без подписки.
- Единственный сбой - 403 с `x-deny-reason: host_not_allowed`: kie отдаёт результаты с tempfile.aiquickdraw.com, так что этот хост тоже должен быть в белом списке песочницы.
Проблема была не в модели, а в беготне между вкладками
Большая часть того, что я прошу у Claude за рабочий день, - визуал. Обложка для поста, иллюстрация для презентации, фотореалистичный предмет для лендинга, пятисекундный луп для первого экрана. С мыслительной частью Claude справляется отлично, а на последнем шаге до недавнего времени был бесполезен: сам он не нарисует ни одного пикселя.
Поэтому процесс выглядел так. Обсудить идею в чате. Попросить Claude собрать из неё структурированный промпт, по одной мысли на фразу, как я описывал в Попробовал ИИ для видео. Вот что вышло. Открыть в соседней вкладке Midjourney, Higgsfield или Gemini. Вставить. Подождать. Скачать. Перетащить результат обратно в чат и спросить, что поправить. Получить исправленный промпт. Снова переключить вкладку. Сколько таких кругов понадобится, целиком зависит от сложности картинки: простой предмет получается с одного-двух, сцена из трёх элементов может съесть вечер.
Ни один из этих кругов не был творческой работой. Это была работа с буфером обмена.
Claude и так писал каждый промпт. Он просто не мог нажать «сгенерировать». Как только я увидел это в таком свете, решение стало очевидным: искать не более умную модель, а дать той, которой я уже пользуюсь, возможность вызвать другую.
Что такое kie.ai и зачем один ключ вместо пяти аккаунтов?
kie.ai - это перепродавец API. Одна форма запроса, один ключ, а за ним чужие модели, которые kie перепродаёт за предоплаченные кредиты: для картинок GPT Image 2 и 1.5, гугловские Nano Banana 2 и Pro, Seedream 5, Flux-2 и Grok Imagine; для видео Seedance 2.0, Kling 3.0, Veo 3.1, Wan и Hailuo; плюс утилиты вроде удаления фона от Recraft и апскейла от Topaz. Чат-модели в списке тоже есть, среди них GPT 6 Astra и Claude Fable 5, но я пришёл не за ними.
Любая задача - это одни и те же три вызова, какую модель ни возьми: POST createTask со строкой модели и объектом input, GET recordInfo, пока состояние не сменится с waiting на success, и скачивание того, что лежит в resultUrls. Выучил один раз - работает с десятком моделей.
Зарегистрироваться меня заставили цены. Я заплатил $25 и получил 5 000 кредитов по $0.005 за штуку, без подписки и без срока годности. Картинка на Nano Banana 2 обходится мне примерно в 8 кредитов. Сравните с тем, что я писал про Higgsfield месяц назад: отличный инструмент с ценой для того, кто открывает его каждое утро, а я не такой. Предоплаченные кредиты как раз для человека, которому на одной неделе нужно восемь картинок, а на следующей ни одной.
Честный противовес: вы доверяете посреднику и свой ключ, и свои файлы. В обзорах упоминают оценку 2,5 звезды на Trustpilot и жалобы на исчезающие кредиты, а ссылки на результат живут около 24 часов, так что скачивание - не опция, а обязанность. Я держу пополнение небольшим, а файлы - у себя.
Из чего состоит скилл /kie-media?
Скилл в Claude - это папка с файлом SKILL.md наверху, упакованная в zip и загруженная через Customize > Skills; инструкции подгружаются, когда задача под них подходит, а любой скрипт из папки выполняется в песочнице Claude. Структуру и ловушки регистрации я разбирал в Как правильно настроить AI-скиллы, поэтому здесь только то, из чего состоит именно этот скилл.
Файл | Строк | Что делает |
|---|---|---|
| 126 | Когда генерировать, когда нет, маршрутизация по моделям, чек-лист проверки |
| 55 | Точные строки моделей и ключи input, сверенные с документацией kie |
| 61 | Стилевой блок «как фотограф» и библиотека промптов |
| 312 |
|
| 93 | Пакет ассетов для набора скриншотов в App Store |
Всего 647 строк, и единственное, что Claude читает при каждом запуске, - верх SKILL.md. Остальное подгружается по мере надобности, так что справочные таблицы ничего не стоят, пока не встанет вопрос о строке модели.
Ключ никогда не лежит в папке. Скрипт берёт KIE_API_KEY из окружения или путь из KIE_API_KEY_FILE и останавливается с понятным сообщением, если нет ни того, ни другого. Нулевой шаг любой сессии - python3 scripts/kie.py doctor: он проверяет ключ, пакет requests и доступность двух хостов kie из песочницы:
✓ API key present
✓ requests importable
✓ reachable https://api.kie.ai
✓ reachable https://kieai.redpandaai.co
OKПоследняя проверка есть потому, что у песочницы белый список сетевых доменов, и api.kie.ai вместе с kieai.redpandaai.co пришлось туда добавить, прежде чем хоть что-то заработало. Сама сборка скилла прошла без единой ошибки. Единственное, что я забыл при первом запуске, - ключ. Doctor мне об этом сказал, я добавил, готово.
Какую модель выбирает Claude и как он пишет промпт?
Модель скилл выбирает раньше меня, по таблице маршрутизации из SKILL.md:
Задача | Модель | Почему |
|---|---|---|
Фотореалистичный предмет по референсу |
| Лучше всех следует инструкциям, точный печатный текст, до 16 входных картинок |
Дешёвые черновики для позы и ракурса |
| Быстро, около 8 кредитов, умеет 4K |
Прозрачная вырезка |
| Всегда отдельным шагом; просить прозрачность у генератора - лотерея |
Крупнее 2K |
| Поверх вырезки, коэффициент 2 |
Видео | Kling 3.0, Veo 3.1 или Seedance 2.0 | Кино, референс со звуком или быстрые продуктовые демо |
Два правила из этой таблицы стоили мне дороже всего, пока я их не записал. Никогда не просите генератор нарисовать экран, лицо, логотип или QR-код. Сгенерированный интерфейс - главный признак подделки в мокапе, поэтому промпт просит залить экран телефона плоским #00FF00, а настоящий скриншот подставляется потом. И никогда не просите прозрачный фон: генерируем на чистом белом, вырезаем через Recraft.
Промпты написаны для фотографа, а не для поэта. Один ключевой свет слева сверху, под 45 градусов, заполняющий справа. Никаких падающих теней: их добавляют один раз на вёрстке, чтобы набор из двенадцати ассетов читался как одна съёмка. Камера на 15-20 градусов выше, объектив 50 мм. Никакого текста, если он не прописан дословно. Прилагательные, которые не меняют пиксели, вырезаются. Стилевой блок со всем этим подставляется в начало каждого промпта флагом --style-block, а как только первый ассет утверждён, его URL уходит во все следующие задачи как --anchor с указанием повторить его свет и фактуру.
Батч-шаблон в скилле - это список ассетов для скриншотов eSIM-приложения в App Store: нано-SIM, скрепка для лотка, чек с дословным текстом, правая рука с телефоном и зелёным экраном. По три-четыре варианта каждого, потому что качество берётся из отбора, а вариант стоит копейки.
Что произошло в живом прогоне для этого поста?
Я попросил Claude сделать через скилл кандидата на обложку этого поста, без референса, чтобы опубликовать настоящие цифры, а не чужой скриншот. Вот промпт, который он написал, целиком, потому что промпт, который можно вставить, ценнее любого пересказа:
Photorealistic still life, editorial product photography. A dark matte charcoal desk surface seen from slightly above at about 20 degrees, 50 mm lens look, no wide-angle distortion. In the lower-left third: a slim matte-black access keycard the size of a credit card with a small gold contact chip, lying at a 15-degree angle, nothing printed on it. Along the right edge: the front slot of a compact black photo printer, with five freshly printed glossy photographs fanning out of it onto the desk, the top one still slightly curled; the photographs show soft abstract colour fields and simple landscape shapes, no people, no faces, no text. The upper-left two thirds of the frame is clean empty desk surface, evenly and softly lit, kept free for a text overlay. One soft key light from the top-left about 45 degrees above, gentle fill from the right, soft shadows falling down-right. Cool, slightly desaturated palette with a warm highlight on the gold chip and the glossy prints. Sharp, high detail, real materials with micro-texture. No text, no logos, no screens, no hands, no watermark. Full-bleed background image, not on a white background.Дальше команда:
python3 scripts/kie.py image --model nano-banana-2 --prompt "…" --aspect 16:9 --res 2K --variants 3 --out kie-demo/coverКредитов до: 4 323,18. Задача aaa4ae6b… пять раз ответила waiting, потом success. Один PNG в 2K, 2752×1536, 6,5 МБ, за 25,7 секунды серверного времени и ровно 8 кредитов. Кредитов после: 4 315,18.
Промпт просил пять отпечатков. Модель выдала четыре. Такой промах ловится только глазами, и именно поэтому скилл по умолчанию делает три варианта, а не один.
А потом скрипт упал.
requests.exceptions.HTTPError: 403 Client Error: Forbidden for url: https://tempfile.aiquickdraw.com/workers/images/image_978f…pngГенерация прошла. Скачивание - нет. Результаты kie хранит на tempfile.aiquickdraw.com, третьем хосте, которого в белом списке песочницы никогда не было, и прокси прямо сказал об этом в заголовке: x-deny-reason: host_not_allowed. Я попробовал очевидный обходной путь, перезалить файл через собственный аплоад kie, и получил ссылку на tempfile.redpandaai.co. Тоже заблокирован. Doctor проходит, потому что проверяет только два хоста, о которых я знал. Лечится двумя строками в белом списке, а doctor теперь должен проверять и третий хост.
С клипом вышло так же, только без падения: я вызвал функции скилла из обёртки, которая пропускает скачивание. Тот же кадр в качестве первого, Seedance 2.0 Mini, 5 секунд, 720p, без звука. Промпт идёт в порядке, который задаёт скилл: объект, действие, камера, свет, длительность:
The same still life: a matte-black keycard lying on a dark desk and glossy photographs fanning out of a compact black photo printer at the right edge. Action: one more glossy photograph slowly slides out of the printer slot and settles onto the pile with a soft curl; the keycard stays still. Camera: slow, steady push-in toward the printer slot, no handheld shake, no cuts. Light: one soft key light from the top-left, unchanged. 5 seconds. No text, no logos, no people, no hands, realistic motion, no slow-motion effect.Картинка | Клип | |
|---|---|---|
Модель |
|
|
Результат | 16:9, PNG 2K | 16:9, 720p, 5 с, MP4 |
Серверное время | 25,7 с | 113,6 с |
С учётом опроса статуса | 41 с | 121 с |
Кредиты | 8 ($0.04) | 41 ($0.21) |
Баланс после обоих: 4 274,18. Вся демонстрация стоила 49 кредитов, то есть около 25 центов, и единственный круг, который я пробежал, - до настроек сети.
Сколько это стоит на самом деле?
Деньги - самая простая часть. До сегодняшнего прогона ушло 677 кредитов; если бы каждый был картинкой, это около 84 изображений за $3.39. Настоящие издержки в другом.
Что даёт | Чего стоит |
|---|---|
Промпт, генерация, разбор и правка в одном чате | Выбирать из вариантов всё равно вам; модель не знает, какой из них верный |
Один ключ на десяток моделей, предоплата, без подписки | Посредник между вами и моделью, с неоднозначной репутацией |
Фотографический фирменный стиль на каждом ассете автоматически | Ключи input у моделей разные; неверный возвращает 422 и отправляет читать документацию |
Результат за 26 секунд для картинки и две минуты для клипа | Ссылки живут 24 часа; пропустил скачивание - платишь заново |
Работает внутри песочницы Claude, локально ничего не ставится | Четыре домена в белом списке и 403, когда забыл один |
Разрыв, который Claude за вас не закроет, - это вкус. Он напишет промпт лучше большинства людей, выберет разумную модель, поставит одинаковый свет во всей сцене и выдаст три варианта. Но не скажет, что нужный - второй, или что сама идея никуда не годится. Ровно то же, что я писал месяц назад про недостающие 2,5 балла у видеолупов: инструмент стал быстрее, а арт-дирекшн по-прежнему учить мне.
Круг, который остался
Круг, который я убрал, проходил между двумя вкладками браузера. Круг, который остался, проходит между мной и картинкой, и его я хочу оставить: именно в нём живут решения.
Дальше по списку: отдать утверждённый кадр одного ассета якорем для целого набора и проверить, читаются ли двенадцать генераций как одна съёмка, а клипу дать не только первый, но и последний кадр, чтобы пятисекундный луп замыкался сам на себя, а не уплывал. В скилле и то, и другое - в одном флаге. Ни то, ни другое - не круг между вкладками.
Claude теперь нажимает «сгенерировать». Решать, что этого заслуживает, по-прежнему моя работа.
Узким местом никогда не был промпт. Узким местом была вставка.
Октай Искендеров
Дизайнер и фулстек-разработчик, веду klauzzdcode - студию одного человека в Баку. На фрилансе с 2023 года: выкатываю продукты от Figma до деплоя и записываю то, что переживает контакт с продакшеном.