Содержание
- Как оживить фото в Grok: пошаговый разбор
- Какие фото подходят для анимации в Grok
- Промпт-каркас для анимации фото в Grok: шесть блоков
- Параметры ролика в Grok: длительность, пропорции, разрешение, звук
- Сколько стоит анимация фото в Grok
- Скрипт grok_animate.py: анимация фото в Grok через API
- Где пригодится анимация фото в Grok: четыре сценария
- Доступ и оплата Grok из России
- Чем анимация фото в Grok отличается от Sora 2 и Veo 3.1
- Чек-лист: анимация фото в Grok под свою задачу
Grok: анимация фото — как оживить снимок и цена ролика
Черновик готовит редакция с помощью ИИ. За стандарт издания отвечает главный редактор — Валерий Курземнек.
Материал редакции Зерокодера. Параметры, дефолты и цены сняты с первоисточников 9 сентября 2026 года: docs.x.ai и docs.x.ai/openapi.json у xAI, developers.openai.com у OpenAI, ai.google.dev у Google. Обновлено: сентябрь 2026.
Анимация фото в Grok делается в режиме image-to-video внутри Grok Imagine: загруженный снимок становится первым кадром, промпт задаёт движение, на выходе ролик от 1 до 15 секунд со звуковой дорожкой. По машинному контракту xAI длительность по умолчанию — 8 секунд, разрешение — 480p, а 1080p доступно на grok-imagine-video-1.5. Секунда генерации по API стоит от 0,08 $ в 480p до 0,25 $ в 1080p.
Главное:
- Оживление снимка живёт в Grok Imagine и принимает JPEG, PNG или WebP; промпт для этого режима необязателен.
- Длительность ролика — от 1 до 15 секунд при дефолте 8; разрешение выбирается из трёх значений, по умолчанию самое низкое.
- Пропорцию кадра диктует сам снимок: схема запроса GenerateVideoRequest помечает поле aspect_ratio как игнорируемое для image-to-video.
- Цена секунды растёт с разрешением: пятисекундный ролик стоит 0,40 $ в 480p и 1,25 $ в 1080p, а со снимком подписка SuperGrok за 30 $ окупается с 73 или с 23 таких роликов.
Как оживить фото в Grok: пошаговый разбор
Оживление снимка в Grok — режим image-to-video внутри Grok Imagine, где картинка становится первым кадром ролика. Документация xAI описывает механику дословно: «Transform a still image into a video by providing a source image along with an optional prompt».
- Открыть Grok на grok.com или в приложении и переключиться в Imagine.
- Загрузить снимок: публичной ссылкой, base64-строкой data URI или
file_idиз Files API — три способа со страницы Image-to-Video на docs.x.ai. - Описать движение. Промпт необязателен: схема помечает его как optional, и без него модель оживляет картинку сама.
- Задать длительность и разрешение: в приложении переключателями, в API параметрами
durationиresolution. - Забрать ролик. Генерация асинхронна: запрос возвращает идентификатор, статус опрашивается до готовности.
Отличие от генерации по тексту механическое: поле image без соседей означает image-to-video, а вместе с last_frame или reference_images тот же запрос становится reference-to-video с закреплённым первым кадром. Про чат-движок — Grok: нейросеть Илона Маска, про Imagine целиком — обзор и критика Grok Imagine, сценарии с ботами — хаб Grok боты.
Мини-вывод: анимация фото отличается от генерации видео одним полем запроса, и оно фиксирует ваш кадр.
Какие фото подходят для анимации в Grok
Grok анимирует снимок тем чище, чем меньше модели приходится додумывать. Схема ImageUrl в машинном контракте xAI принимает JPEG, PNG и WebP — и ничего больше.
Резкость лица. Первый кадр модель берёт как есть, поэтому мягкий фокус и шум разойдутся по ролику.
Готовая пропорция. Кадр ролика наследует пропорцию исходника, поэтому вертикаль под сторис режется до 9:16 в редакторе, до загрузки.
Отсутствие смаза. Снимок с готовым размытием даёт противоречивый первый кадр: модель достраивает движение поверх зафиксированного.
Мини-вывод: снимок готовится до загрузки — формат, кадрирование и резкость решаются в редакторе.
Промпт-каркас для анимации фото в Grok: шесть блоков
Промпт оживления собирается из шести блоков, каждый закрывает свой источник ошибок. Каркас собран редакцией Зерокодера под режим image-to-video и приводится целиком.
| Блок | Что писать | Зачем |
|---|---|---|
| КАДР | что на снимке: кто, что, где | опора на реальном содержимом |
| ДВИЖЕНИЕ | один-два оживающих объекта | ограничивает зону изменений |
| ЗАМОК | что остаётся неизменным | удерживает лицо, одежду, надписи |
| КАМЕРА | статика, наезд или параллакс | отделяет сцену от объектива |
| СВЕТ И ТЕМП | характер света и скорость | задаёт настроение |
| ЗВУК | что слышно или тишина | дорожка генерируется по умолчанию |
Заполненный пример под портрет:
Портрет женщины у окна кофейни, чашка в руках. Оживают только пар над чашкой и пряди волос у виска. Черты лица, одежда, фон и вывеска за стеклом остаются без изменений. Камера статична, лёгкий параллакс. Свет мягкий контровой, темп замедленный. Звук: приглушённый гул зала.
Блок ЗАМОК забывают чаще прочих, и он отвечает за «уехавшее лицо»: модель меняет всё, что разрешено молчанием. Общая механика промптов — как правильно писать промты.
Мини-вывод: описывайте не только движение, но и границы, за которые движению выходить запрещено.
Параметры ролика в Grok: длительность, пропорции, разрешение, звук
Параметры генерации видео заданы схемой GenerateVideoRequest в машинном контракте xAI; таблица собрана чтением этой схемы 9 сентября 2026 года.
| Параметр | Допустимые значения | По умолчанию |
|---|---|---|
duration |
целое от 1 до 15 секунд | 8 |
aspect_ratio |
1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3 | 16:9 для текстового режима |
resolution |
480p, 720p, 1080p | 480p |
prompt |
текст описания | необязателен для image-to-video |
image |
ссылка, base64 или file_id |
обязателен для оживления снимка |
Здесь же — расхождение внутри документации самой xAI, найденное сверкой двух страниц. Гайд Video Generation утверждает: «If you specify the aspect_ratio parameter, it will override this and stretch the image to the desired aspect ratio». Машинная схема GenerateVideoRequest в том же домене говорит обратное: «Ignored for image-to-video (first-frame image input): the aspect ratio is always derived from the input image». Два первоисточника одного вендора описывают поле противоположно, и вывод один: пропорцию решает кадрирование исходника, потому что поведение параметра не гарантировано.
1080p гайд разрешает на grok-imagine-video-1.5 для текста и картинки, reference-to-video ограничен 720p. Звуковая дорожка добавляется по умолчанию; параметр generate_audio=False описан в гайде, но в схеме запроса отсутствует — проверяйте своим запросом.
Мини-вывод: три параметра решают почти всё, а пропорция кадра — до отправки запроса.
Сколько стоит анимация фото в Grok
Единой цены секунды у Grok нет: docs.x.ai держит на grok-imagine-video-1.5 лестницу «Pricing per second based on resolution», и секунда в 1080p дороже 480p в 3,1 раза.
| Разрешение | Секунда | Ролик 5 с | Ролик 8 с (дефолт) |
|---|---|---|---|
| 480p (дефолт) | 0,08 $ | 0,40 $ | 0,64 $ |
| 720p | 0,14 $ | 0,70 $ | 1,12 $ |
| 1080p | 0,25 $ | 1,25 $ | 2,00 $ |
Предыдущая grok-imagine-video обрывается на 720p: 0,05 $ за секунду в 480p и 0,07 $ в 720p, входной снимок у неё 0,002 $. У grok-imagine-video-1.5 он дороже — «Input pricing … Image $0.01». Своя лестница и у картинки: grok-imagine-image-2.0 берёт по разрешению и качеству 1K·Low 0,04 $, 2K·Low и 1K·Medium 0,06 $, 2K·Medium 0,08 $; витрина показывает нижнюю ступень.
Порог окупаемости тоже не один: тридцать долларов — это 73 пятисекундных ролика в 480p, 42 в 720p или 23 в 1080p со входным снимком. Витрина x.ai/pricing ставит «Image and video generation» на SuperGrok за 30 $ в месяц, «Create 1080p videos» — на SuperGrok Plus за 100 $; у бесплатного плана генерации видео нет.
Мини-вывод: бюджет считается от разрешения и снимка.
Скрипт grok_animate.py: анимация фото в Grok через API
Скрипт grok_animate.py написан редакцией Зерокодера и приводится целиком: загружает снимок base64-строкой, печатает смету по лестнице цен docs.x.ai, опрашивает статус до потолка ожидания, разбирает ошибку. Значения параметров сверены со схемой GenerateVideoRequest в docs.x.ai/openapi.json.
# grok_animate.py — оживление снимка через Imagine API xAI.
# Параметры сверены со схемой GenerateVideoRequest (docs.x.ai/openapi.json, 09.09.2026).
import base64, os, time, requests
BASE = "https://api.x.ai/v1/videos"
HEAD = {"Content-Type": "application/json",
"Authorization": f"Bearer {os.environ['XAI_API_KEY']}"}
# $/сек по лестнице разрешений и $/входной снимок, docs.x.ai/developers/models, 09.09.2026
PRICE = {"grok-imagine-video-1.5": {"480p": 0.08, "720p": 0.14, "1080p": 0.25},
"grok-imagine-video": {"480p": 0.05, "720p": 0.07}}
IN_IMAGE = {"grok-imagine-video-1.5": 0.01, "grok-imagine-video": 0.002}
def animate(photo: str, prompt: str, duration: int = 5,
resolution: str = "1080p",
model: str = "grok-imagine-video-1.5",
timeout: int = 600) -> str:
"""Пропорцию ролика задаёт сам снимок — кадрируйте photo ДО вызова."""
if resolution not in PRICE[model]:
raise ValueError(f"{model} не умеет {resolution}: "
f"есть {', '.join(PRICE[model])}")
rate = PRICE[model][resolution] # цена секунды зависит от разрешения
with open(photo, "rb") as f:
b64 = base64.b64encode(f.read()).decode()
body = {
"model": model,
"prompt": prompt,
"image": {"url": f"data:image/jpeg;base64,{b64}"},
"duration": duration, # 1..15, дефолт 8
"resolution": resolution, # 480p | 720p | 1080p, дефолт 480p
}
rid = requests.post(f"{BASE}/generations", headers=HEAD, json=body).json()["request_id"]
total = duration * rate + IN_IMAGE[model] # входной снимок оплачивается отдельно
print(f"{rid}: {duration} c x {rate} $ ({resolution}) + снимок {IN_IMAGE[model]} $ = {total:.2f} $")
deadline = time.time() + timeout
while time.time() < deadline:
r = requests.get(f"{BASE}/{rid}", headers=HEAD).json()
if r["status"] == "done":
return r["video"]["url"]
if r["status"] in ("failed", "expired"):
err = r.get("error", {})
raise RuntimeError(f'{r["status"]} [{err.get("code")}]: {err.get("message")}')
time.sleep(5)
raise TimeoutError(f"{rid}: ролик не готов за {timeout} c")
if __name__ == "__main__":
with open("prompt.txt", encoding="utf-8") as p:
print(animate("portrait.jpg", p.read(), duration=5))
Статус принимает четыре значения: pending, done, expired, failed. Упавшая генерация возвращает один из пяти кодов: invalid_argument (параметр или модерация), permission_denied (нет прав на видео), failed_precondition (модель не умеет разрешение), service_unavailable (перегрузка) и internal_error. Редактирование готового ролика длительность не принимает: результат сохраняет длину оригинала, потолок 8,7 секунды.
Мини-вывод: скрипт закрывает весь цикл — смету, загрузку, ожидание и внятную ошибку.
Где пригодится анимация фото в Grok: четыре сценария
Анимация фото в Grok закрывает четыре типовые задачи, каждая упирается в свой параметр запроса.
Соцсети. Вертикальный ролик под сторис и Reels: кадр 9:16 задаётся обрезкой снимка до загрузки, потому что пропорцию ролик наследует от исходника.
Товарные карточки. Пятисекундное оживление предметной съёмки стоит со входным снимком 0,41 $ в 480p и 1,26 $ в 1080p, двадцать позиций — 8,20 $ или 25,20 $. Блок ЗАМОК в промпте держит артикул, надписи и упаковку неподвижными.
Портреты и аватары. Резкий портрет переносит движение спокойнее всего; 1080p открывается на grok-imagine-video-1.5 и на плане SuperGrok Plus за 100 $.
Семейный архив. Скан старой фотографии оживает даже без промпта — для image-to-video он необязателен. Требование одно: JPEG, PNG или WebP.
Мини-вывод: сценарий меняет три вещи — пропорцию исходника, длительность и разрешение.
Доступ и оплата Grok из России
Оплата Grok идёт в долларах и с карты. Витрина x.ai/pricing на 9 сентября 2026 года показывает цену у трёх планов — Free за 0 $, SuperGrok за 30 $ и SuperGrok Plus за 100 $, — а таблица «Compare features across plans» перечисляет семь: сверх этих трёх идут SuperGrok Lite, SuperGrok Heavy, Business и Enterprise, все четыре без цены. Рублёвой цены нет ни у одного. Раздел Paid Accounts соглашения xAI задаёт механику: «we will automatically charge your payment method on each periodic renewal until you cancel», уплаченное там же названо невозвратным.
Второе — раздел Export Controls. Принимая соглашение, пользователь заявляет, что не находится и не является резидентом «any country or territory for which the United States maintains trade or economic sanctions or embargoes»; перечня стран в тексте нет, есть отсылка к спискам OFAC. Grok внутри X под соглашение не подпадает: «Use of Grok on the X platform is not governed by these Terms».
Официальный статус доступа и легальные замены — в материале Grok в России: доступ и аналоги.
Мини-вывод: подписка Grok долларовая и автопродлеваемая, а юридическую рамку задаёт раздел Export Controls.
Чем анимация фото в Grok отличается от Sora 2 и Veo 3.1
Отличий три: цена секунды, отношение к лицу человека на входе и срок жизни API.
| Модель | Секунда 720p | Секунда 1080p | Снимок на входе | Звук |
|---|---|---|---|---|
Grok, grok-imagine-video-1.5 |
0,14 $ | 0,25 $ | первый кадр, пропорция берётся из снимка | по умолчанию |
| Sora 2, OpenAI | 0,10 $ | нет; sora-2-pro — 0,70 $ |
input_reference, размер картинки обязан совпадать с размером ролика |
есть |
| Veo 3.1, Google | 0,40 $; Fast 0,10 $; Lite 0,05 $ | 0,40 $; Fast 0,12 $; Lite 0,08 $ | вход «Text, Image» | «Video with audio» |
Цены сведены к равному разрешению, иначе сравнение врёт: 0,080 $ у Grok — это только 480p, которого нет ни у Sora 2, ни у Veo. В 720p Grok дороже: 0,14 $ против 0,10 $ у sora-2 и у Veo 3.1 Fast, против 0,05 $ у Veo 3.1 Lite. В 1080p он обгоняет старших — 0,25 $ против 0,70 $ у sora-2-pro и 0,40 $ у Veo 3.1 Standard, — но облегчённые линейки Veo дешевле и там. Для портрета решает вторая строка: гайд Video generation у OpenAI предупреждает «Input images with faces of humans are currently rejected», а на страницах docs.x.ai запрета по лицам нет. Третье отличие срочное: та же страница держит баннер о закрытии Videos API вместе с sora-2 и sora-2-pro 24 сентября 2026 года.
Возможности Sora 2 — в разборе Sora 2; текстовая линейка Grok — что умеет Grok 4.1.
Мини-вывод: по цене секунды Grok обходит старшие модели только в 1080p, а портрет человека Sora 2 через API вообще не принимает.
Чек-лист: анимация фото в Grok под свою задачу
- Кадрируйте снимок до загрузки: пропорция ролика наследуется от исходника.
- Держите исходник в JPEG, PNG или WebP — других форматов схема не принимает.
- Собирайте промпт по шести блокам и заполняйте ЗАМОК: без него первым уезжает лицо.
- Ставьте
durationосознанно: по умолчанию 8 секунд, то есть в 480p 0,64 $ вместо 0,40 $. - Проверьте разрешение: дефолт 480p, 1080p доступно на grok-imagine-video-1.5 и стоит в 3,1 раза дороже.
- Считайте объём: подписка SuperGrok за 30 $ отбивается на 73 роликах в 480p и на 23 в 1080p.
- Для потока берите
grok_animate.pyс потолком ожидания и разбором пяти кодов ошибки.
