Как создать свою студию
Студия — ваш собственный ИИ-инструмент на моделях CG: форма на входе, цепочка генераций внутри, готовый результат на выходе. Код писать не нужно: студию собирает наш агент в чате, ваш ассистент через MCP или вы сами одним JSON-файлом. Создать может любой пользователь CG; лучшие студии попадают в общий каталог.
Основа
Что такое студия
Студия описана одним документом — манифестом. В нём четыре части, и каждая отвечает на простой вопрос.
Что студия делает
pipelinesЦепочки шагов-генераций: текст, картинка, видео, звук. Шаги передают друг другу результаты.
Что студия хранит
collectionsСвои данные: серии, кампании, выпуски. У каждого пользователя — свои записи.
Что видит человек
screensЭкраны из готовых блоков: форма, галерея, лента шагов, результат.
Что запускает работу
actionsКнопки. Любой запуск сначала показывает цену, и человек её подтверждает.
Студия ничего не исполняет сама: у неё нет своего кода, стилей и запросов в интернет. Каждый шаг — обычная генерация CG со сметой, резервом денег, статусом и возвратом при ошибке. Готовая студия открывается по адресу getcg.ai/a/<slug> — на сайте и в приложении.
Быстрый старт
Три способа создать студию
Выберите удобный. Во всех трёх — одни и те же проверки, бесплатный тестовый прогон и смета перед живым запуском.
Самый простой путь — без настройки и без JSON. Агент App Creator спросит, что непонятно, соберёт студию и сам исправит ошибки проверки.
- Войдите на getcg.ai (вход по почте или Google) и откройте «Студии».
- В поле наверху опишите студию своими словами: что на входе, что на выходе, что хранить. Можно нажать одну из готовых идей.
- Ответьте на вопросы агента. Он покажет промпты и экраны и прогонит студию бесплатно — без генераций.
- Нажмите «Открыть черновик студии» — студия откроется у вас. Живой запуск — только после сметы и вашего подтверждения.
Собери студию «Рецепт в ролик».
На входе: название блюда, список ингредиентов и фото готового блюда (по желанию).
Что делает: пишет рецепт из 4 шагов, рисует кадр на каждый шаг, оживляет кадры в вертикальные клипы по 5 секунд.
Перед кадрами дай мне поправить рецепт. Сохраняй рецепты в библиотеку.Первая студия
Самая маленькая студия
Один шаг: постер по описанию. Этот манифест проходит проверку как есть — скопируйте и отдайте агенту, ассистенту или в templates_studio_create.
{
"manifest_version": 2,
"kind": "app",
"profile": "studio",
"slug": "quick-poster",
"category": "marketing",
"lang": "ru",
"name": {"ru": "Быстрый постер", "en": "Quick poster"},
"pipelines": {
"make": {
"inputs": {
"idea": {"type": "text", "label": {"ru": "Что на постере"}, "required": true, "max_length": 300}
},
"steps": [
{
"id": "poster",
"kind": "image",
"prompt": "Poster: {{idea}}. Bold composition, clean typography space",
"params": {"aspect_ratio": {"const": "3:4"}},
"tiers": {"standard": {"model": {"id": "nano-banana-2"}}}
}
]
}
},
"screens": [
{
"id": "main",
"title": {"ru": "Постер"},
"blocks": [
{"type": "form", "source": "pipeline:make", "actions": ["go"]},
{"type": "result", "source": "pipeline:make"}
]
}
],
"actions": [{"id": "go", "label": {"ru": "Сделать"}, "run": "make", "confirm_quote": true}]
}Обязательная шапка любой студии: manifest_version: 2, kind: "app", profile: "studio", slug (адрес /a/<slug>), category, lang и name. Тексты для людей — объекты {"ru": …, "en": …}: язык lang обязателен, второй — по желанию.
Входы
Что заполняет человек
Входы — поля формы перед запуском. Задаются у каждой цепочки: pipelines.<имя>.inputs.
text,long_text— строка и длинный текст (max_length).enum— выбор из вариантов (options, виджетыchips,cards,grid…). У варианта естьfragment— готовый кусок промпта: человек выбирает «Аниме», а модель получает описание стиля через{{style.fragment}}.number,boolean— число и да/нет.image,video,audio— файлы (min/max— сколько, до 10): фото героев, товар, голос.model— модель выбирает сам человек.
Общие поля: label, help, required, default, placeholder и visible_if — условие, при котором поле видно.
Цепочки и шаги
Что студия делает
Порядок задаёт не список, а needs: шаг стартует, когда закончились все шаги, которых он ждёт. Независимые шаги идут параллельно.
| Вид шага | Что делает | Параметры |
|---|---|---|
llm | Текст или JSON: сценарий, план, подписи |
|
image | Картинка: кадр, постер, обложка |
|
video | Видео: клип из кадра или по описанию |
|
audio | Звук: озвучка (tts) или музыка |
|
Скоро: tool, montage — пока такой шаг отвечает STEP_KIND_NOT_AVAILABLE.
- Модель — в
tiers: уровеньstandardобязателен,draftиpremium— по желанию. Модель берётся из каталога CG по id (например,nano-banana-2,seedance-2-0,claude-haiku-4-5); человек её не выбирает, если вы не дали входmodel. - Промпт — шаблон:
{{вход}}, фильтры{{name | upper}}, условия{{#if …}}, списки{{#each …}}. Значения человека вставляются как текст и никогда не исполняются. Сервер заранее считает худший промпт — все входы максимальной длины — и не даст сохранить слишком длинный. - Результат прошлого шага — привязка
{"step_output": {"step": "script", "path": "/title"}}. В промпт он попадает черезvars: одно значение — до 2 000 символов. - JSON от текстовой модели —
output_schemaу llm-шага: следующие шаги читают его по полям, а ответ не по схеме останавливает шаг. - foreach — шаг по каждому элементу списка: кадр на каждую сцену, клип на каждый кадр.
*в пути — текущий элемент. ЗадайтеmaxItems: смета считает по верхней границе, без неё — 50 элементов. - Остановки —
checkpoints:editдаёт поправить текст шага,approve— продолжить или отменить. Ставьте их перед дорогим шагом: правка сценария стоит копейки, пересъёмка видео — нет.
Данные
Коллекции: что студия хранит
Коллекция — список записей у каждого пользователя студии: серии, кампании, выпуски.
schema— поля записи; поле{"type": "object", "format": "media"}хранит картинку, видео или звук.title_field— поле-название,max_items— сколько записей у одного пользователя,retention_days— сколько дней хранить.writesу шага кладёт его результат в поле записи:{"writes": {"collection": "episodes", "field": "frames"}}. Один запуск — одна запись.
Экраны и кнопки
Что видит человек
Экран — блоки сверху вниз. Блоки — только из реестра: своего HTML и CSS у студии нет, поэтому она одинаково выглядит на сайте и в приложении.
| Блок | Что показывает | Источник | Поля bind | Кнопки |
|---|---|---|---|---|
form | Форма входов цепочки — по ней запускают студию | pipeline | — | да |
gallery | Сетка картинок и видео | collection, pipeline | media, title, caption | да |
list | Записи строками | collection, pipeline | title, subtitle, media | да |
board | Карточки по колонкам одного поля | collection | title, column, media | да |
calendar | Записи по датам | collection | title, date | да |
card | Одна запись целиком | collection, pipeline | title, body, media | да |
timeline | Шаги и сцены запуска по порядку | pipeline, collection | title, media, time | нет |
chat | Диалог, который заполняет входы | pipeline | — | да |
result | Результаты последнего запуска | pipeline | media, title | да |
source—pipeline:<имя>илиcollection:<имя>;bind— какое поле показывать:{"media": "frames", "title": "title"}.- Кнопка запускает цепочку:
{"id": "make", "run": "make_episode", "confirm_quote": true}.confirm_quote: trueобязателен — без сметы запустить нельзя. permissions— что студия может читать от имени человека: assets.read, assets.list, assets.get, elements.get, elements.search, templates.get, templates.list.
Деньги
Смета, запуск и тестовый прогон
Один путь денег, как во всём CG: смета → резерв → генерации → списание или возврат.
- Тестовый прогон бесплатный.
templates_studio_test_runпроходит всю цепочку без моделей и денег: каждый шаг отдаёт заглушку нужного типа. Так проверяют, что шаги читают друг друга, а экраны заполняются. - Смета до запуска. Считает каждый шаг по худшему промпту и по верхней границе
foreach. Если список вышел короче — лишнее не списывается. - Запуск — только по подтверждённой смете. Если цена выросла или кончились деньги, запуск встаёт на паузу и продолжается после новой сметы или пополнения.
- Не удалось — вернём. Деньги за несостоявшиеся генерации возвращаются. Платит тот, кто запускает студию, по ценам моделей CG.
Заработок авторов на запусках своих студий запланирован, но пока не включён: сейчас человек платит только за генерации.
Публикация
Кто увидит вашу студию
Новая студия — ваш приватный черновик. Дальше решаете вы.
- Только вы (
private) и ваша команда (workspace) — сразу, без проверки. - Все, в каталоге (
public) — после проверки модератором CG. Нужны обложка и пример результата: запустите студию, выберите удачный результат и задайте их (templates_versions_set_presentation), затемtemplates_publish. - Запуск идёт по снимку опубликованной версии: правка черновика не ломает тех, кто уже пользуется студией.
Примеры
Готовые студии: откройте и переделайте
Официальные студии CG — живые образцы. Откройте, посмотрите, как они устроены, и скопируйте к себе (templates_fork).
- Сериал Студия
сценарий серии → кадр на сцену → клип на кадр, постер параллельно, правка сценария и одобрение кадров
- Каталог в рекламу
коллекция кампаний, foreach по товарам, картинка → видео, формат через map
- Серия комиксов
панели по сценарию, обложка параллельно, герой как референс
- Подкаст в клипы
сцены из текста, кадры и клипы, озвучка параллельно
Как устроена «Сериал Студия»: входы series, plot, genre, style, heroes; шаги script → frames → clips → poster; остановки edit после script, approve после frames. Два шага, которые делают из сценария видео, — как они есть в студии:
[
{
"id": "frames",
"kind": "image",
"title": {
"en": "Scenes",
"ru": "Кадры сцен"
},
"needs": [
"script"
],
"foreach": {
"step_output": {
"step": "script",
"path": "/scenes"
}
},
"vars": {
"visual": {
"step_output": {
"step": "script",
"path": "/scenes/*/visual"
}
}
},
"prompt": "Vertical 9:16 frame of a short drama series. {{visual}}. {{style.fragment}}, {{genre.fragment}}, consistent character design, no text, no subtitles",
"slots": {
"reference_image": [
{
"input": "heroes"
}
]
},
"params": {
"aspect_ratio": {
"const": "9:16"
}
},
"tiers": {
"standard": {
"model": {
"id": "nano-banana-2"
}
}
},
"writes": {
"collection": "episodes",
"field": "frames"
}
},
{
"id": "clips",
"kind": "video",
"title": {
"en": "Clips",
"ru": "Ролики сцен"
},
"needs": [
"frames"
],
"foreach": {
"step_output": {
"step": "frames",
"path": ""
}
},
"vars": {
"shot": {
"step_output": {
"step": "script",
"path": "/scenes/*/shot"
}
}
},
"prompt": "{{shot}}. Vertical short drama shot, natural acting, {{style.fragment}}",
"slots": {
"first_frame": {
"step_output": {
"step": "frames",
"path": "/*"
}
}
},
"params": {
"duration_s": {
"const": 5
},
"aspect_ratio": {
"const": "9:16"
},
"audio": {
"const": true
}
},
"tiers": {
"standard": {
"model": {
"id": "seedance-2-0"
},
"params": {
"resolution": "720p"
}
}
},
"writes": {
"collection": "episodes",
"field": "clips"
}
}
]frames рисует кадр на каждую сцену сценария, clips идёт по кадрам: для N-го кадра /* — этот кадр, а /scenes/*/shot — описание N-й сцены.
Справочник
Пределы и коды проверки
Собрано из кода сервера — всегда совпадает с тем, что проверяет CG. Полная JSON Schema манифеста — в ответе templates_studio_schema_get.
| Что | Предел | Ключ |
|---|---|---|
| Размер манифеста, байт | 262 144 | manifest_bytes |
| Цепочек в студии | 10 | pipelines |
| Шагов в цепочке | 30 | steps_per_pipeline |
| Вложенность схем (output_schema, коллекции) | 4 | schema_depth |
| Элементов в foreach | 50 | max_fanout_default |
| Генераций на один запуск цепочки | 200 | max_jobs_default |
| Символов одного значения из vars в промпте | 2 000 | var_chars |
| Наценка автора, % (пока не начисляется) | 50 | author_markup_pct |
| Символов промпта llm-шага | 20 000 | llm_prompt_chars |
| Размер записи коллекции, байт | 262 144 | record_bytes |
Частые ошибки
UNKNOWN_FIELD— Неизвестный ключ — вpathточное место. Частая причина — опечатка или поле из другого места манифеста.FORMULA_UNKNOWN_SLOT— Формула читает{{имя}}, которого нет ни среди входов цепочки, ни вvarsшага.STEP_NOT_ANCESTOR—step_outputчитает шаг, которого этот шаг не ждёт. Добавьте его вneeds(прямо или через другие шаги).STEP_OUTPUT_TYPE_MISMATCH— Тип выхода не подходит месту: в кадр — одна картинка, вreference_image— картинка или список, вvars— текст, число, да/нет или список таких.FOREACH_UNBOUNDED— У списка нетmaxItems: смета считает 50 элементов. ЗадайтеmaxItems, чтобы смета была честной.PROMPT_TOO_LONG— Худший промпт (все входы иvarsмаксимальной длины) длиннее предела. Сократите текст илиmax_lengthвходов.PARAM_REQUIRED— Видео-шагу нуженduration_s— вparamsили в каждом уровнеtiers.MODEL_NOT_FOUND— Такой модели нет в каталоге или она недоступна.CAPS_UNSUPPORTED— Модель не умеет одну из возможных конфигураций шага (параметры, слоты, длина). Вparams.rule— какое правило нарушено. Сузьте параметры или выберите другую модель.CONFIRM_QUOTE_REQUIRED— У кнопки должно бытьconfirm_quote: true: каждый запуск сначала показывает смету.
Все коды проверки
Показано 90 из 90
ACTION_UNKNOWNошибка — не даёт запуститьПоляБлок называет кнопку, которой нет в
actions. Добавьте кнопку или исправьте id.BINDING_MULTI_ENUMошибка — не даёт запуститьПоляВход с множественным выбором нельзя использовать в параметре или условии. Сделайте выбор одиночным.
BINDING_TOO_DEEPошибка — не даёт запуститьПоляПривязки
if/then/elseвложены глубже 3 уровней. Упростите условие.BLOCK_PROP_UNKNOWNошибка — не даёт запуститьПоляВ
bindблока свойство, которого у этого блока нет. Список свойств — в реестре блоков.BLOCK_SOURCE_INVALIDошибка — не даёт запуститьПоляБлок не принимает источник такого вида. Пишите
collection:<имя>илиpipeline:<имя>— как разрешает блок.BLOCK_UNKNOWNошибка — не даёт запуститьПоляТакого блока нет в реестре. Экран собирается только из блоков реестра.
CAPS_UNSUPPORTEDошибка — не даёт запуститьМодели каталогаМодель не умеет одну из возможных конфигураций шага (параметры, слоты, длина). В
params.rule— какое правило нарушено. Сузьте параметры или выберите другую модель.CATALOG_UNAVAILABLEподсказкаМодели каталогаКаталог моделей не ответил, проверка S3 повторится позже. Исправлять ничего не нужно.
CHAIN_TOO_LARGEошибка — не даёт запуститьГраф шаговЗапуск цепочки может создать больше задач, чем разрешено (
TPL_STUDIO_MAX_JOBS, по умолчанию 200): сумма верхних границ всех шагов. УменьшитеmaxItemsсписков или число шагов.CHAIN_TOO_LONGошибка — не даёт запуститьГраф шаговВ цепочке больше 30 шагов. Разбейте её на несколько цепочек.
CHECKPOINT_EDIT_NOT_LLMошибка — не даёт запуститьГраф шаговОстановка
editвозможна только после llm-шага: править можно только текст или JSON. Для медиа используйтеapprove.COLLECTION_UNKNOWNошибка — не даёт запуститьПоляwritesилиsourceназывает коллекцию, которой нет вcollections.CONFIG_SPACE_TOO_LARGEошибка — не даёт запуститьМодели каталогаВходы дают слишком много сочетаний параметров, проверить их все нельзя. Сократите варианты выбора.
CONFIRM_QUOTE_REQUIREDошибка — не даёт запуститьПоляУ кнопки должно быть
confirm_quote: true: каждый запуск сначала показывает смету.CONST_MEDIA_INVALIDошибка — не даёт запуститьПоляПостоянное медиа в слоте задаётся ссылкой https.
CONST_MEDIA_NOT_ALLOWEDошибка — не даёт запуститьПоляДля публикации
unlisted/publicмедиа-константы, превью и обложка должны быть результатами ваших запусков (job_output), а не ссылками. Замените ссылку на результат запуска.DENYLIST_MATCHподсказкаПоляТекст совпал с правилом модерации. Сохранить можно, но публикацию проверит оператор.
DUPLICATE_STEP_IDошибка — не даёт запуститьГраф шаговДва шага цепочки с одним id. Id шагов уникальны внутри цепочки.
EACH_NESTEDошибка — не даёт запуститьПоляФормула: блоки
{{#each}}нельзя вкладывать друг в друга.EACH_NOT_LISTошибка — не даёт запуститьПоляФормула:
{{#each}}работает только со списком.FAKE_MARKER_IN_FORMULAошибка — не даёт запуститьПоляВ тексте служебный маркер
[[…]]имитатора. Уберите его.FALLBACK_CAPS_UNSUPPORTEDошибка — не даёт запуститьМодели каталогаЗапасная модель не умеет всех конфигураций своего уровня. Уберите её или выберите другую.
FALLBACKS_WITH_MODEL_INPUTошибка — не даёт запуститьПоляЗапасные модели (
fallbacks) работают только с фиксированной моделью, не с выбором пользователя.FEATURE_DISABLEDошибка — не даёт запуститьПоляВозможность выключена на сервере (например, видео-входы —
TPL_VIDEO_INPUTS_ENABLED).FEATURE_NOT_AVAILABLEошибка — не даёт запуститьРазбор JSONПоле запланировано, но ещё не работает:
triggers(расписание) иquestions(интервью перед запуском). Уберите его.FILTER_TYPE_MISMATCHошибка — не даёт запуститьПоляФормула: фильтр применён к значению не того типа.
FOREACH_INVALIDошибка — не даёт запуститьГраф шаговforeachзадаётся только как{step_output: {step, path}}на список.FOREACH_MISMATCHошибка — не даёт запуститьГраф шагов*в пути должен идти по тому же списку, по которому размножен шаг.FOREACH_NESTED_NOT_SUPPORTEDошибка — не даёт запуститьГраф шаговforeachпо списку внутри списка (*в путиforeach) пока не поддерживается. Сделайте список плоским.FOREACH_NOT_A_LISTошибка — не даёт запуститьГраф шаговforeachуказывает не на список. Нужен массив изoutput_schemallm-шага или выход другогоforeach-шага.FOREACH_TOO_LARGEошибка — не даёт запуститьГраф шаговmaxItemsсписка большеTPL_MAX_FANOUT(50). УменьшитеmaxItems.FOREACH_UNBOUNDEDподсказкаГраф шаговУ списка нет
maxItems: смета считает 50 элементов. ЗадайтеmaxItems, чтобы смета была честной.FORMULA_ARITYошибка — не даёт запуститьПоляФормула: у функции не то число аргументов.
FORMULA_SYNTAXошибка — не даёт запуститьПоляФормула: синтаксическая ошибка. В
params— строка, столбец и что ожидалось.FORMULA_TOO_COMPLEXошибка — не даёт запуститьПоляФормула слишком сложная: глубина, число узлов, длина литерала или
#each. Упростите её.FORMULA_TOO_LONGошибка — не даёт запуститьПоляФормула длиннее предела по символам.
FORMULA_UNKNOWN_FIELDошибка — не даёт запуститьПоляФормула: у входа нет такого поля (например,
{{style.fragment}}у входа безfragment).FORMULA_UNKNOWN_FILTERошибка — не даёт запуститьПоляФормула: неизвестный фильтр.
FORMULA_UNKNOWN_FUNCTIONошибка — не даёт запуститьПоляФормула: неизвестная функция.
FORMULA_UNKNOWN_SLOTошибка — не даёт запуститьПоляФормула читает
{{имя}}, которого нет ни среди входов цепочки, ни вvarsшага.GRAPH_CYCLEошибка — не даёт запуститьГраф шаговШаги по
needsобразуют цикл (или шаг ждёт сам себя). Цепочка — граф без циклов.I18N_MISSING_LANGUAGEошибка — не даёт запуститьПоляНет текста на основном языке
lang. Добавьте его (второй язык необязателен).ISSUES_TRUNCATEDошибка — не даёт запуститьРазбор JSONЗамечаний больше 200, показаны первые. Исправьте их и проверьте снова.
ITEM_OUTSIDE_EACHошибка — не даёт запуститьПоляФормула:
itemиindexработают только внутри{{#each}}.LAST_FRAME_REQUIRES_FIRSTошибка — не даёт запуститьПоляПоследний кадр задаётся только вместе с первым.
LIMIT_EXCEEDEDошибка — не даёт запуститьРазбор JSONПревышен жёсткий предел (цепочек, шагов, входов, экранов, блоков и т. п.). Дальше манифест не проверяется. Пределы — в справочнике.
MANIFEST_INVALID_JSONошибка — не даёт запуститьРазбор JSONМанифест — не JSON.
MANIFEST_TOO_LARGEошибка — не даёт запуститьРазбор JSONМанифест больше предела: студия — 256 КБ, приложение — 64 КБ.
MAP_INCOMPLETEошибка — не даёт запуститьПоляmapпокрывает не все варианты входа. Добавьте недостающиеcasesилиdefault.MEDIA_SOURCE_UNSUPPORTEDошибка — не даёт запуститьЗапускВход не принимает медиа такого вида (ссылки выключены, вход без
assetвsourcesи т. п.).MEDIA_URL_INVALIDошибка — не даёт запуститьПоляСсылка на медиа не разрешена: нужен https на публичный адрес.
MODEL_KIND_MISMATCHошибка — не даёт запуститьМодели каталогаВид модели не совпадает с видом шага (например, видеомодель в image-шаге).
MODEL_NOT_FOUNDошибка — не даёт запуститьМодели каталогаТакой модели нет в каталоге или она недоступна.
NOT_SUPPORTED_BY_CAPS_V1ошибка — не даёт запуститьРазбор JSONСлот, параметр или аудио-вход пока не поддерживается моделями каталога.
OUTPUT_SCHEMA_MISMATCHошибка — не даёт запуститьЗапускЗначение не подходит под схему: ответ llm-шага, правка на остановке
editили запись коллекции.OUTPUT_SCHEMA_NOT_ALLOWEDошибка — не даёт запуститьПоляoutput_schemaбывает только у llm-шага.OVERRIDDENподсказкаПоляВариант выбора задаёт параметр модели (
options[].params) — он перекроет значение шага. Это предупреждение-напоминание.PARAM_NOT_SUPPORTEDошибка — не даёт запуститьПоляУ шага такого вида нет этого параметра. Список параметров по видам — в справочнике.
PARAM_OUT_OF_RANGEошибка — не даёт запуститьПоляЗначение параметра выходит за разрешённый диапазон.
PARAM_REQUIREDошибка — не даёт запуститьПоляВидео-шагу нужен
duration_s— вparamsили в каждом уровнеtiers.PARAM_TYPE_MISMATCHошибка — не даёт запуститьПоляЗначение параметра не того типа или не из списка (например,
aspect_ratioне из разрешённых).PARAMS_ON_MULTI_ENUMошибка — не даёт запуститьПоляВарианты множественного выбора не могут задавать параметры модели.
PERMISSION_NOT_ALLOWEDошибка — не даёт запуститьПоляКоманды нет в белом списке разрешений студии.
PIPELINE_UNKNOWNошибка — не даёт запуститьПоляКнопка или блок называет цепочку, которой нет в
pipelines.PREDICATE_TYPE_MISMATCHошибка — не даёт запуститьПоляФормула: условие должно давать да/нет.
PROMPT_MAY_BE_EMPTYошибка — не даёт запуститьПоляПромпт может оказаться пустым (например, всё внутри условий). Добавьте постоянный текст.
PROMPT_TOO_LONGошибка — не даёт запуститьПоляХудший промпт (все входы и
varsмаксимальной длины) длиннее предела. Сократите текст илиmax_lengthвходов.REF_INVALIDошибка — не даёт запуститьПоляНеверная ссылка на медиа: в формуле — только
{{@вход}}на привязанный к слоту image/video-вход; кадр принимает ровно одну картинку.REF_LIMIT_EXCEEDEDошибка — не даёт запуститьМодели каталогаРеференсов больше, чем принимает модель.
SCHEMA_INVALIDошибка — не даёт запуститьПоляСхема (
output_schemaили коллекции) нарушает подмножество JSON Schema: ключ не к своему типу, объект без полей,requiredна несуществующее поле,formatвне коллекции.SCHEMA_TOO_DEEPошибка — не даёт запуститьПоляСхема вложена глубже 4 уровней объектов и массивов.
SLOT_INPUT_TYPE_MISMATCHошибка — не даёт запуститьПоляВход не того типа для слота (в кадр — только image) или модель уровня — не вход типа
model.SLOT_NOT_ALLOWEDошибка — не даёт запуститьПоляУ шага такого вида нет этого слота: у image — только
reference_image, у llm и audio слотов нет.SLOT_UNUSEDподсказкаПоляВход не используется ни одним шагом. Уберите его или подключите.
STEP_KIND_NOT_AVAILABLEошибка — не даёт запуститьГраф шаговВид шага
toolилиmontageзапланирован, но пока недоступен.STEP_NOT_ANCESTORошибка — не даёт запуститьГраф шаговstep_outputчитает шаг, которого этот шаг не ждёт. Добавьте его вneeds(прямо или через другие шаги).STEP_OUTPUT_IN_PARAMSошибка — не даёт запуститьПоляstep_outputнельзя использовать вparams: цена должна быть известна до запуска.STEP_OUTPUT_PATH_INVALIDошибка — не даёт запуститьГраф шаговПуть
pathне JSON Pointer или такого поля в выходе шага нет.*— не больше одного раза.STEP_OUTPUT_TYPE_MISMATCHошибка — не даёт запуститьГраф шаговТип выхода не подходит месту: в кадр — одна картинка, в
reference_image— картинка или список, вvars— текст, число, да/нет или список таких.STEP_OUTPUT_WILDCARD_OUTSIDE_FOREACHошибка — не даёт запуститьГраф шагов*(текущий элемент) работает только в шаге сforeach.STEP_UNKNOWNошибка — не даёт запуститьГраф шаговneeds,step_outputилиcheckpoints.afterназывают шаг, которого нет.TEXT_INVALID_CHARSошибка — не даёт запуститьПоляВ тексте управляющие или невидимые символы. Уберите их.
TIER_STEP_MISSINGошибка — не даёт запуститьПоляКаждый шаг задаёт каждый уровень (
draft/standard/premium), который есть хотя бы у одного шага цепочки.TYPE_MISMATCHошибка — не даёт запуститьПоляФормула: вход не того вида — да/нет читают через
{{#if}}, медиа — через{{@вход}}.UNKNOWN_FIELDошибка — не даёт запуститьРазбор JSONНеизвестный ключ — в
pathточное место. Частая причина — опечатка или поле из другого места манифеста.VALUE_INVALIDошибка — не даёт запуститьПоляЗначение не подходит: формат id, диапазон, тип, повтор. Подробности — в
messageиparams.VALUE_REQUIREDошибка — не даёт запуститьПоляНет обязательного значения: цепочки, шага, промпта, уровня
standard, текста кнопки и т. п.VAR_NAME_CONFLICTошибка — не даёт запуститьПоляИмя из
varsсовпадает с именем входа. Переименуйте одно из них.VAR_UNUSEDподсказкаПоляПромпт не читает это значение из
vars. Уберите его или вставьте{{имя}}в промпт.WRITES_TYPE_MISMATCHошибка — не даёт запуститьГраф шаговПоле коллекции не примет выход шага: текст — в string, медиа — в поле
{type: object, format: media},foreach— в массив таких элементов, объект — в объект со всеми его полями.