Claude Opus 5.5 уже доступна в SeedRouter

Как снять короткометражку с Claude Opus 5.5 и Seedance 2.5

Сделайте Claude Opus 5.5 режиссёром: он пишет раскадровку и промпты, GPT Image 2.5 рисует персонажа, а Seedance 2.5 генерирует каждый план со звуком.

Читать в Markdown

Чтобы снять короткометражку с Claude Opus 5.5 и Seedance 2.5, отдайте режиссуру Opus, а рисование и съёмку поручите двум другим моделям. Вы даёте Opus одну идею сюжета; он пишет неизменное описание персонажа, промпт для листа персонажа и по одному видеопромпту на каждый план. GPT Image 2.5 превращает эти промпты в лист персонажа и стартовые кадры. Seedance 2.5 генерирует каждый план с диалогами и звуком, используя эти изображения как референсы. Затем вы склеиваете планы в один файл. Все три модели работают в SeedRouter с одним и тем же API-ключом. Каждый запрос ниже соответствует справочникам API SeedRouter, проверено 30 сентября 2026 года.

Как устроен процесс с Claude Opus 5.5 и Seedance 2.5?

Идея взята из процесса, которым автор поделился на r/Seedance_AI в сентябре 2026 года (исходный пост): «Я не написал вручную ни одного промпта. Я дал Opus 5.5 одну основную идею и несколько скриншотов-референсов нужного стиля». Opus написал промпты для листа персонажа, стартовых кадров, движений камеры, тайминга диалогов и звука; GPT Image 2.5 нарисовал лист персонажа и стартовый кадр; Seedance 2.5 сгенерировал планы.

У каждой модели одна задача:

ШагМодельВходВыход
1. ПланClaude Opus 5.5Идея сюжета, по желанию изображения стиляОписание персонажа, промпт листа, для каждого плана промпт стартового кадра и видеопромпт
2. ДизайнGPT Image 2.5Промпт листа, затем промпты стартовых кадров с листом как референсомЛист персонажа и стартовые кадры в виде URL изображений
3. СъёмкаSeedance 2.5Видеопромпт, а также лист и стартовый кадр как референсные изображенияПо одному видео со звуком на план
4. Монтажffmpeg или любой видеоредакторФайлы плановГотовый фильм

Шаги связаны через URL. GPT Image 2.5 возвращает изображения, размещённые в хранилище SeedRouter, а Seedance 2.5 принимает референсные изображения в виде публичных URL, поэтому результат шага 2 сразу идёт в шаг 3 без скачивания и повторной загрузки.

Что нужно подготовить?

  • API-ключ SeedRouter в переменной окружения:
export SEEDROUTER_API_KEY="your-key"
  • Python 3 с requests и Anthropic SDK: pip install requests anthropic.
  • ffmpeg, чтобы в конце склеить планы.
  • Баланс. Каждый вызов — платный запрос. Неудачные задачи не оплачиваются, а новые аккаунты начинают с небольшого бесплатного баланса.

Все фрагменты кода на Python ниже используют эти две строки:

import os
import requests

HEADERS = {"Authorization": f"Bearer {os.environ['SEEDROUTER_API_KEY']}"}

Шаг 1: как заставить Claude Opus 5.5 спланировать планы?

Дайте Opus системный промпт, который объясняет, как Seedance 2.5 читает промпт, и попросите вернуть план в JSON, чтобы им мог пользоваться ваш скрипт. Правила этого системного промпта взяты из официальных руководств ByteDance по промптам Seedance и собраны в руководстве по промптам Seedance 2.5: сначала субъект и действие, одно движение камеры на план, временные отрезки для длинных планов, референсные файлы называются по номерам.

import json
import anthropic

client = anthropic.Anthropic(
    api_key=os.environ["SEEDROUTER_API_KEY"],
    base_url="https://api.seedrouter.ai",
)

DIRECTOR = """You are the director of a short film made with AI models.
Return only JSON, no other text, in this shape:
{"character": "...", "sheet_prompt": "...",
 "shots": [{"duration": 5, "frame_prompt": "...", "video_prompt": "..."}]}

character: one fixed paragraph describing the main character's face, hair,
build and clothes. Repeat it word for word inside every other prompt.

sheet_prompt: an image prompt for one character reference sheet: a front,
three-quarter, profile and back view, plus four facial expressions, on a plain
light background, with no text other than small panel labels.

shots: 3 to 5 shots, each 4 to 15 seconds.
frame_prompt: an image prompt for the first frame of the shot.
video_prompt: a video prompt for Seedance 2.5. Write it in this order: subject
and action, scene, visual style, camera, audio. Image 1 is the character sheet
and Image 2 is the start frame of the shot; refer to them by those names.
Use one camera move per shot. Say who is holding the camera and how they move.
For shots longer than 5 seconds, split the action into time ranges such as
0-3s. Put dialogue in quotes as: Character's line (emotion): content.
Describe the ambient sound. Do not ask for subtitles or on-screen text.

The character must not look like a real, identifiable person. Use a stylized
look, such as a 3D animated or illustrated character."""

message = client.messages.create(
    model="claude-opus-5-5",
    max_tokens=16000,
    system=DIRECTOR,
    messages=[{
        "role": "user",
        "content": "A lighthouse keeper finds a lost robot on the rocks during a storm and teaches it to wave at passing ships.",
    }],
)
text = "".join(block.text for block in message.content if block.type == "text")
plan = json.loads(text)

Несколько важных деталей:

  • max_tokens включает рассуждения. Opus 5.5 всегда использует адаптивное мышление, и справочник API Opus 5.5 учитывает токены рассуждений в max_tokens. Оставьте запас, иначе JSON может оборваться.
  • Не передавайте temperature, top_p и top_k и не заполняйте заранее реплику assistant. Opus 5.5 возвращает ошибку 400 на значения сэмплинга, отличные от значений по умолчанию, и на предзаполненный ответ. Чтобы управлять глубиной рассуждений, используйте output_config.effort.
  • «Кто держит камеру» — совет из исходного поста. Автор пишет, что после фразы «мой друг снимает с заднего сиденья» Opus сам добавил мелкую тряску камеры, запаздывающее кадрирование и «ищущий» автофокус, и что «именно эта одна деталь контекста убирает „ИИ-вид“».
  • Референсы стиля необязательны. Opus читает изображения, поэтому можно добавить скриншоты нужного вида как блоки image с URL-источником в реплику user.

Если json.loads падает, выведите text и попросите Opus ещё раз. Прочитать план до любой генерации — ещё и самый дешёвый момент, чтобы исправить сюжет: правка здесь стоит одного текстового запроса, а правка после рендера стоит видео.

Шаг 2: как сделать лист персонажа и стартовые кадры в GPT Image 2.5?

Сначала отправьте plan["sheet_prompt"] в GPT Image 2.5. Затем отправьте frame_prompt каждого плана с листом в качестве референсного изображения, чтобы на каждом стартовом кадре был один и тот же персонаж. Задачи изображений отправляются в /v1/images/generations, а результат читается из /v1/tasks/{id}:

import time

def image(prompt, size, refs=()):
    body = {"model": "gpt-image-2.5-flare", "prompt": prompt, "size": size, "quality": "high"}
    if refs:
        body["images"] = [{"image_url": url} for url in refs]
    task_id = requests.post(
        "https://api.seedrouter.ai/v1/images/generations",
        headers=HEADERS, json=body, timeout=60,
    ).json()["id"]
    while True:
        task = requests.get(
            f"https://api.seedrouter.ai/v1/tasks/{task_id}", headers=HEADERS, timeout=30,
        ).json()
        if task["status"] == "completed":
            return task["output"]["data"][0]["url"]
        if task["status"] == "failed":
            raise RuntimeError(task["error"]["message"])
        time.sleep(3)

sheet = image(plan["sheet_prompt"], "1536x1024")
frames = [image(shot["frame_prompt"], "1792x1008", [sheet]) for shot in plan["shots"]]

Почему такие настройки:

  • 1792x1008 — это 16:9. GPT Image 2.5 принимает size в формате WIDTHxHEIGHT, обе стороны кратны 16, поэтому кадр 16:9 нужно записать в пикселях; 16:9 — недопустимое значение size. Согласуйте его с ratio, который вы зададите для Seedance.
  • Для большинства листов хватает Flare. Sunburst точнее держит результат от правки к правке, но работает медленнее; когда он оправдан, разбирает статья GPT Image 2.5 Flare vs Sunburst.
  • Черновики делайте с более низким quality. Пока персонаж ещё меняется, low или medium генерируют быстрее. Переключайтесь на high для изображений, с которыми будете снимать.

Чтобы оставаться короткими, функции выше опрашивают задачу без ограничения по времени. В своём коде добавьте лимит времени и сохраняйте ID задачи, чтобы прерванный запуск мог снова проверить ту же задачу, а не платить за новую.

Шаг 3: как сгенерировать каждый план в Seedance 2.5?

Отправляйте каждый video_prompt в Seedance 2.5 с двумя референсными изображениями: лист персонажа как Image 1 и стартовый кадр плана как Image 2, именно в таком порядке, потому что Seedance нумерует референсные файлы в порядке их прикрепления. У видеозадач свой эндпоинт, /v1/contents/generations/tasks, и они завершаются со status: "succeeded":

def shot(prompt, refs, duration):
    content = [{"type": "text", "text": prompt}]
    for url in refs:
        content.append({"type": "image_url", "image_url": {"url": url}, "role": "reference_image"})
    task_id = requests.post(
        "https://api.seedrouter.ai/v1/contents/generations/tasks",
        headers=HEADERS,
        json={
            "model": "dreamina-seedance-2-5",
            "content": content,
            "resolution": "480p",
            "ratio": "16:9",
            "duration": duration,
            "generate_audio": True,
        },
        timeout=60,
    ).json()["id"]
    while True:
        task = requests.get(
            f"https://api.seedrouter.ai/v1/contents/generations/tasks/{task_id}",
            headers=HEADERS, timeout=30,
        ).json()
        if task["status"] == "succeeded":
            return task["content"]["video_url"]
        if task["status"] in ("failed", "expired"):
            raise RuntimeError(task["error"]["message"])
        time.sleep(15)

videos = [shot(s["video_prompt"], [sheet, frame], s["duration"]) for s, frame in zip(plan["shots"], frames)]

Почему запрос устроен так:

  • Референсные изображения, а не первый кадр. Seedance 2.5 может жёстко привязать план к точному первому кадру (role: "first_frame"), но в справочнике API Seedance 2.5 сказано, что режимы первого кадра «нельзя сочетать с референсными элементами», и вы потеряете лист персонажа. Если оба изображения переданы как reference_image, то, что Image 2 — стартовый кадр, Seedance узнаёт из промпта. Начало плана будет близко к нему, но не совпадёт попиксельно.
  • 480p для черновиков. Сначала сгенерируйте все планы в 480p, исправьте неудачные промпты, а затем отрендерьте удачные планы в 720p или 1080p с тем же промптом.
  • generate_audio: true даёт диалоги, фоновые звуки и эффекты из промпта, генерируемые вместе с изображением.
  • Фиксированный ratio. Если у всех планов одинаковые соотношение сторон и разрешение, ffmpeg склеит их без перекодирования.

План может длиться от 4 до 30 секунд, а одна задача может содержать несколько склеек, если промпт задаёт каждой свой временной отрезок. Например, во второй сцене автора шесть планов, смонтированных под удары барабанов, уместились в 10 секунд.

Как сохранить одного и того же персонажа во всех планах?

Постоянство достигается повторением — и в промпте, и в референсах:

  • Повторяйте одно и то же описание. Абзац character из шага 1 слово в слово входит в каждый промпт изображения и видео. Два разных описания одного человека — одна из причин, по которым модель искажает или дублирует персонажа.
  • Отправляйте один и тот же лист в каждый план. Лист всегда Image 1. Seedance 2.5 принимает листы с несколькими ракурсами; более старая Seedance 2.0 может принять многоракурсный лист за нескольких людей, и руководство по промптам советует давать ей вместо этого крупный план лица и изображение в полный рост на каждого персонажа.
  • Называйте персонажа каждый раз одинаково, например «смотритель маяка из Image 1», и не полагайтесь на имя, написанное внутри картинки.
  • Сохраняйте один голос во всех планах. Seedance 2.5 принимает до 10 аудиореференсов (WAV или MP3, от 2 до 30 секунд). Прикрепите один и тот же голосовой фрагмент к каждому плану и привяжите его в тексте, как в примере ByteDance: «Image 1 изображает главного героя John и использует тембр голоса из Audio 1».

Если два плана должны стыковаться без заметного скачка, есть второй вариант: задайте "return_last_frame": true для первого плана и передайте возвращённый content.last_frame_url как first_frame следующего. Стык будет зафиксирован, но следующий план не сможет использовать лист персонажа, поэтому применяйте это для непрерывного действия внутри одной сцены, а не для каждой склейки.

Можно ли использовать фото реального человека как персонажа?

Нет. Seedance 2.5 не принимает референсные изображения и видео с лицами реальных людей, и задача с ними завершается ошибкой без списания средств. В статье об ошибке Seedance «real person» объясняются правило ByteDance и варианты, которые ByteDance предлагает на собственной платформе.

Это касается и реалистичных ИИ-персонажей. В исходном посте снята фотореалистичная женщина, но документация ByteDance не говорит, как проверка лиц обрабатывает реалистичные лица, нарисованные другой моделью. Стилизованный персонаж — например, в стиле 3D-анимации или иллюстрации, как требует системный промпт выше, — снимает этот вопрос. Если вам нужен фотореалистичный вид, сначала проверьте один короткий план в 480p, прежде чем строить вокруг него весь фильм.

Как склеить планы в один фильм?

Скачайте видео по порядку, перечислите их в текстовом файле и склейте с помощью ffmpeg:

names = []
for index, url in enumerate(videos):
    name = f"shot-{index + 1}.mp4"
    with open(name, "wb") as file:
        file.write(requests.get(url, timeout=300).content)
    names.append(name)
with open("shots.txt", "w") as file:
    file.writelines(f"file '{name}'\n" for name in names)
ffmpeg -f concat -safe 0 -i shots.txt -c copy film.mp4

-c copy склеивает файлы без перекодирования; это работает, потому что у всех планов одинаковые разрешение, соотношение сторон и формат. Если настройки различаются, уберите -c copy, и ffmpeg перекодирует файлы. URL видео размещены в хранилище SeedRouter, поэтому скачайте файлы, которые хотите сохранить.

Сколько стоит короткометражка на Seedance 2.5?

Каждая модель тарифицируется в своей единице, а актуальные цены есть на странице каждой модели:

  • Claude Opus 5.5 тарифицирует входные и выходные токены, включая рассуждения. Планирование фильма — это один или несколько запросов. Цены.
  • GPT Image 2.5 Flare и Sunburst берут фиксированную цену за каждое выданное изображение. Лист плюс стартовый кадр на каждый план — это от четырёх до шести изображений для короткометражки. Цены.
  • Seedance 2.5 тарифицирует видеотокены: секунды на выходе × ширина × высота × 24 ÷ 1024. Одна секунда видео 16:9 — это 9607,5 токена в 480p, 21 600 в 720p и 48 600 в 1080p, причём у 1080p свой тариф. Цены.

Основная часть расходов — видео. Черновик в 480p тратит меньше половины токенов 720p, поэтому больше всего экономит правка промптов в 480p и рендер только финальной версии в более высоком разрешении. Больше примеров расчёта — в статье о ценах API Seedance.

Часто задаваемые вопросы

Может ли Claude Opus 5.5 сам создать видео?

Нет. Opus 5.5 — текстовая модель: она читает изображения, но не генерирует ни изображения, ни видео. В этом процессе она пишет промпты, а картинки и видеоряд создают GPT Image 2.5 и Seedance 2.5.

Можно ли использовать Claude Fable 5.1 вместо Opus 5.5?

Да. Fable 5.1 принимает тот же запрос Messages, поэтому просто замените model на claude-fable-5-1. Сравнение трёх моделей — в статье Claude Fable 5.1 vs Fable 5 vs Opus 5.5.

Какой длины может быть короткометражка на Seedance 2.5?

Одна задача Seedance 2.5 генерирует от 4 до 30 секунд или позволяет модели самой выбрать длину через duration: -1. Более длинный фильм склеивается из нескольких планов, поэтому жёсткого ограничения на общую длину нет.

Почему персонаж меняется от плана к плану?

Обычно потому, что промпты описывают его по-разному, в некоторых планах нет листа или референсные файлы прикреплены не в том порядке, в котором их нумерует промпт. Проверьте, что каждый видеопромпт содержит один и тот же абзац о персонаже, а лист всегда идёт первым изображением.

Можно ли использовать Seedance 2.0 в этом процессе?

Да, с той же структурой запроса и собственным ID модели. Для персонажа давайте Seedance 2.0 отдельные изображения лица и в полный рост вместо одного многоракурсного листа. Остальные различия перечислены в статье Seedance 2.5 vs 2.0.

Снимите свою первую короткометражку

Начните с истории из трёх планов в 480p, проверьте планы, а затем отрендерьте финальную версию в более высоком разрешении. На странице Seedance 2.5 есть актуальные цены и Playground для проверки одного плана, а полный справочник по запросам — в документации API Seedance 2.5, документации API GPT Image 2.5 и документации API Claude Opus 5.5.

Похожие руководства