ИИОПУБЛИКОВАНО ОБНОВЛЕНО 6 МИН ЧТЕНИЯ

Как я заставил Claude делать картинки и видео

Сам по себе 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-скиллы, поэтому здесь только то, из чего состоит именно этот скилл.

Файл

Строк

Что делает

SKILL.md

126

Когда генерировать, когда нет, маршрутизация по моделям, чек-лист проверки

references/models.md

55

Точные строки моделей и ключи input, сверенные с документацией kie

references/prompting.md

61

Стилевой блок «как фотограф» и библиотека промптов

scripts/kie.py

312

createTask, опрос recordInfo, скачивание, вырезание фона, апскейл, батч

assets/jobs.template.json

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:

Задача

Модель

Почему

Фотореалистичный предмет по референсу

gpt-image-2-image-to-image

Лучше всех следует инструкциям, точный печатный текст, до 16 входных картинок

Дешёвые черновики для позы и ракурса

nano-banana-2

Быстро, около 8 кредитов, умеет 4K

Прозрачная вырезка

recraft/remove-background

Всегда отдельным шагом; просить прозрачность у генератора - лотерея

Крупнее 2K

topaz/image-upscale

Поверх вырезки, коэффициент 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.

Результат как есть, без правок: nano-banana-2, 16:9, 2K, 8 кредитов, 25,7 секунды.

Промпт просил пять отпечатков. Модель выдала четыре. Такой промах ловится только глазами, и именно поэтому скилл по умолчанию делает три варианта, а не один.

А потом скрипт упал.

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.
Seedance 2.0 Mini, первый кадр из картинки выше, 41 кредит, 113,6 секунды.

Картинка

Клип

Модель

nano-banana-2

bytedance/seedance-2-mini

Результат

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 до деплоя и записываю то, что переживает контакт с продакшеном.

ИСТОРИЯ →

FAQ

Может ли Claude сам генерировать картинки или видео?

Нет, встроенной генерации изображений и видео у Claude нет. Зато он может вызывать внешний генератор из своего скилла: скрипт в скилле отправляет промпт в API вроде kie.ai, ждёт результат и скачивает файл, не выходя из того же чата.

Сколько стоит картинка через kie.ai?

Около 8 кредитов, то есть $0.04, за картинку в 2K на Nano Banana 2 при цене kie $0.005 за кредит. 5-секундный клип в 720p на Seedance 2.0 Mini в моём прогоне стоил 41 кредит, то есть $0.21; более тяжёлые модели вроде Veo 3.1 и Kling 3.0 берут за клип больше.

Это работает в claude.ai или только в Claude Code?

Работает в claude.ai: свои скиллы загружаются zip-архивом через Customize > Skills на планах с включённым выполнением кода, а скрипт выполняется в песочнице Claude. У песочницы есть белый список сети, поэтому в нём должны быть api.kie.ai, kieai.redpandaai.co и хосты tempfile, с которых отдаются результаты.

Почему скачивание с kie.ai падает с 403 host_not_allowed?

Потому что готовые файлы kie отдаёт с tempfile.aiquickdraw.com, а не с api.kie.ai, а песочница Claude блокирует любой хост не из белого списка. Добавьте tempfile.aiquickdraw.com и tempfile.redpandaai.co в разрешённые домены; сама задача уже выполнена и кредиты списаны, так что скачивайте заново по записи задачи в течение 24 часов.

Достаточно ли надёжен kie.ai для клиентской работы?

Для моих объёмов да, при двух привычках: небольшие пополнения и немедленное скачивание. Это перепродавец с неоднозначной репутацией, оценкой 2,5 звезды на Trustpilot и жалобами на пропадающие кредиты в обзорах, а ссылки на результат живут около 24 часов, поэтому файлы лежат у меня на диске, а не у них.