--- name: postcreator-canvas description: Создавай и запускай выбранный граф Canvas или сценарий приложения Postcreator для аудио, синхронизации губ, 3D, улучшения и референсов. Следуй живым схемам; не применяй к постороннему локальному коду. --- # Canvas и творческие приложения Прочитай [правила выполнения](../postcreator/references/execution.md). `/canvas`, `/audio` и `/3d` ведут сюда; синхронизация губ выбирается как операция приложения. Найди разрешённые проект и Canvas через `list_projects` / `list_canvases`. До правок прочитай `list_canvas_nodes`, `get_canvas_node`, `list_canvas_edges`. Через `list_apps` / `get_app_schema` проверь приложение, `operations`, привязки входов, модели, `nodeTypes`, `executionTool`, `executionAvailable`. Не выдумывай отдельные инструменты запуска аудио/3D или универсальный запуск приложения. Если пользователь назвал шот («в шоте X»), найди его через `list_canvas_shots` (или создай `create_canvas_shot`) и передавай `shotId` в `create_canvas_node` и `generate_media` — иначе узлы и результаты окажутся на корневом Canvas, а не в шоте; см. раздел «Доска и шот» в правилах выполнения. Собери минимальный граф для результата. `instantiate_app_workflow` применяй только к операции, объявляющей рецепт и его точную версию. Иначе используй `create_canvas_node` с объявленными типом/параметрами, привязывай ассеты проекта, создавай `create_canvas_edge` с документированными портами. Исходники проходят загрузку/привязку, а не URL в параметрах. До обновления перечитай версии; сохраняй остальные параметры, если инструмент заменяет их целиком. Один узел котируется через `quote_canvas_node_run`, запрошенная группа — через `quote_canvas_workflow_run` с явными `nodeIds` или `fromNodeId`. Запуск соответствует котированному объёму. Проверь итоговый `expectedCostRub`, область, `nodeCount`, возможность выполнения и `unsupportedReasons`. Число вариантов объясни по схеме узла/приложения; трата проверяется по котированному итогу. Детализацию по вариантам используй только при её наличии — текущая котировка Canvas её не возвращает. Не запускай посторонние узлы. Отслеживай `get_canvas_run_status` / `get_canvas_workflow_status`, затем получи реальные выходы. Аудио следует фактическим входам приложения для текста, голосового профиля, музыки, озвучивания событий видео или эффектов. При необходимости найди профиль через `list_voice_profiles`. Отсутствие нужного голоса не разрешает клонировать или подменять его. Синхронизация губ требует объявленных портрета/видео, аудио и совместимой пары моделей. Для 3D следуй соответствию модели и узла, соблюдай порядок ракурсов. Выдай все запрошенные форматы геометрии/текстур через инструменты получения 3D-результатов. Для `scene-3d` прочитай `sceneAuthoring`, создавай/правь через `create_canvas_node`, `update_canvas_node` или `edit_scene3d`, проверь `preview_scene3d`. Статичный кадр использует порт изображения, видеосцена — порт видео. Котируй даже бесплатный рендер. Если исполнитель рендера недоступен, сохрани редактируемую сцену и сообщи ограничение. `export_canvas` / `create_user_canvas_template` нужны только при запросе экспорта или шаблона. Выдай заказанные медиа и, когда это входит в запрос, ссылку на редактируемый Canvas.