Концепции, ценность и типичные сценарии клонирования — меньше кода.
Концепции, ценность и типичные сценарии клонирования — меньше кода.
Preparing Ring content
Preparing Ring content
Preparing Ring content
Провайдер-нейтральный, схемоуправляемый пайплайн для маркетинговых и объясняющих роликов. Креативный агент создаёт один scripted-video-generation-request-<id>.json; ring-video-create последовательно выполняет:
firstFramePrompt → ImageConductor)next/og)Справочник инструмента MCP (перегруженный путь сцены).
Пресеты VideoConductor и режимы ремастеринга.
Creative agent → scripted-video-generation-request.json
→ run-scripted-video.mjs (CLI) OR ring-video-create (MCP)
→ VideoConductor.generate
→ ImageConductor (firstFramePrompt)
→ xAI I2V (compiled ACTION/DIALOGUE prompt)
→ thumbnail compositor (optional)
→ manifest v3 + ring-filebase URLs| Артефакт | Путь |
|---|---|
| JSON Schema | lib/media/scripted-video-generation.schema.json |
| Валидация Zod | lib/media/schemas.ts |
| Компилятор prompt | lib/media/prompt-compiler.ts |
| Миниатюра | lib/media/thumbnail.tsx |
| Пример запроса | scripts/ring-viral-video/scripted-video-generation-request-hoa-nightclub.json |
| CLI runner | scripts/ring-viral-video/run-scripted-video.mjs |
| Линза режиссёра | AI-LEGIOX/legiox-truth-lens/scripted-video-director.nodus.json |
Плейсхолдеры каста: {{guy}}, {{girl}} при компиляции раскрываются в cast[].description.
| Тип | firstFrame | scene.dialogue | Режим видео |
|---|---|---|---|
| Монтаж / UI | опустить | опционально | T2V grok-imagine-video @ 480p |
| Диалог | imagePrompt обязателен | обязателен | I2V grok-imagine-video-1.5 @ 480p |
Манифест v3 хранит firstFrameUrl, thumbnailUrl, pipelineRequestId, clipId для каждого ключа upsert id::qualityMode.
С thumbnail.enabled в body — см. ring-video-create.
При создании запросов обращайтесь к линзе истины scripted-video-director. Валидируйте так:
xai-video-jobs.json + generate-xai-videos.mjs остаются для пакетных запусков напрямую через xAI без gateway. Для новых кампаний предпочитайте файл сценарного запроса.
Провайдер-нейтральный, схемоуправляемый пайплайн для маркетинговых и объясняющих роликов. Креативный агент создаёт один scripted-video-generation-request-<id>.json; ring-video-create последовательно выполняет:
firstFramePrompt → ImageConductor)next/og)Справочник инструмента MCP (перегруженный путь сцены).
Пресеты VideoConductor и режимы ремастеринга.
Creative agent → scripted-video-generation-request.json
→ run-scripted-video.mjs (CLI) OR ring-video-create (MCP)
→ VideoConductor.generate
→ ImageConductor (firstFramePrompt)
→ xAI I2V (compiled ACTION/DIALOGUE prompt)
→ thumbnail compositor (optional)
→ manifest v3 + ring-filebase URLs| Артефакт | Путь |
|---|---|
| JSON Schema | lib/media/scripted-video-generation.schema.json |
| Валидация Zod | lib/media/schemas.ts |
| Компилятор prompt | lib/media/prompt-compiler.ts |
| Миниатюра | lib/media/thumbnail.tsx |
| Пример запроса | scripts/ring-viral-video/scripted-video-generation-request-hoa-nightclub.json |
| CLI runner | scripts/ring-viral-video/run-scripted-video.mjs |
| Линза режиссёра | AI-LEGIOX/legiox-truth-lens/scripted-video-director.nodus.json |
Плейсхолдеры каста: {{guy}}, {{girl}} при компиляции раскрываются в cast[].description.
| Тип | firstFrame | scene.dialogue | Режим видео |
|---|---|---|---|
| Монтаж / UI | опустить | опционально | T2V grok-imagine-video @ 480p |
| Диалог | imagePrompt обязателен | обязателен | I2V grok-imagine-video-1.5 @ 480p |
Манифест v3 хранит firstFrameUrl, thumbnailUrl, pipelineRequestId, clipId для каждого ключа upsert id::qualityMode.
С thumbnail.enabled в body — см. ring-video-create.
При создании запросов обращайтесь к линзе истины scripted-video-director. Валидируйте так:
xai-video-jobs.json + generate-xai-videos.mjs остаются для пакетных запусков напрямую через xAI без gateway. Для новых кампаний предпочитайте файл сценарного запроса.
Провайдер-нейтральный, схемоуправляемый пайплайн для маркетинговых и объясняющих роликов. Креативный агент создаёт один scripted-video-generation-request-<id>.json; ring-video-create последовательно выполняет:
firstFramePrompt → ImageConductor)next/og)Справочник инструмента MCP (перегруженный путь сцены).
Пресеты VideoConductor и режимы ремастеринга.
Creative agent → scripted-video-generation-request.json
→ run-scripted-video.mjs (CLI) OR ring-video-create (MCP)
→ VideoConductor.generate
→ ImageConductor (firstFramePrompt)
→ xAI I2V (compiled ACTION/DIALOGUE prompt)
→ thumbnail compositor (optional)
→ manifest v3 + ring-filebase URLs| Артефакт | Путь |
|---|---|
| JSON Schema | lib/media/scripted-video-generation.schema.json |
| Валидация Zod | lib/media/schemas.ts |
| Компилятор prompt | lib/media/prompt-compiler.ts |
| Миниатюра | lib/media/thumbnail.tsx |
| Пример запроса | scripts/ring-viral-video/scripted-video-generation-request-hoa-nightclub.json |
| CLI runner | scripts/ring-viral-video/run-scripted-video.mjs |
| Линза режиссёра | AI-LEGIOX/legiox-truth-lens/scripted-video-director.nodus.json |
Плейсхолдеры каста: {{guy}}, {{girl}} при компиляции раскрываются в cast[].description.
| Тип | firstFrame | scene.dialogue | Режим видео |
|---|---|---|---|
| Монтаж / UI | опустить | опционально | T2V grok-imagine-video @ 480p |
| Диалог | imagePrompt обязателен | обязателен | I2V grok-imagine-video-1.5 @ 480p |
Манифест v3 хранит firstFrameUrl, thumbnailUrl, pipelineRequestId, clipId для каждого ключа upsert id::qualityMode.
С thumbnail.enabled в body — см. ring-video-create.
При создании запросов обращайтесь к линзе истины scripted-video-director. Валидируйте так:
xai-video-jobs.json + generate-xai-videos.mjs остаются для пакетных запусков напрямую через xAI без gateway. Для новых кампаний предпочитайте файл сценарного запроса.
{
"schemaVersion": "1.0",
"requestId": "hoa-nightclub-viral-2026-06",
"purpose": "viral-ad",
"defaults": { "qualityMode": "draft", "aspectRatio": "16:9", "imageResolution": "2k" },
"cast": [{ "id": "guy", "description": "…" }],
"setting": "San Francisco nightclub at night…",
"clips": [{
"id": "03_sf_nightclub_ring_opener",
"duration": 12,
"firstFrame": { "imagePrompt": "{{girl}} and {{guy}} at bar…" },
"scene": {
"action": "{{guy}} gestures warmly…",
"dialogue": [{ "speaker": "guy", "line": "So your HOA uses Ring?", "tone": "warmly" }]
},
"thumbnail": { "enabled": true, "overlays": [{ "text": "Your HOA on Ring", "role": "title" }] }
}]
}
cd ring-platform.org/scripts/ring-viral-video
# Full pipeline via MCP gateway (needs RING_MCP_ACCESS_KEY + dev server)
node run-scripted-video.mjs scripted-video-generation-request-hoa-nightclub.json --download
# Single clip
node run-scripted-video.mjs scripted-video-generation-request-hoa-nightclub.json --clip=03_sf_nightclub_ring_opener
# Remaster from manifest URL
node run-scripted-video.mjs request.json --remaster --clip=03_sf_nightclub_ring_opener --source-url=https://...
import { scriptedVideoGenerationRequestSchema } from '@/lib/media/schemas'
scriptedVideoGenerationRequestSchema.parse(request)
XAI_API_KEY=…
RING_MCP_ACCESS_KEY=long-random-token
RING_API_BASE_URL=http://localhost:3000
FILE_BACKEND=ringbase
ring-video-create \
prompt "ACTION: … DIALOGUE: …" \
firstFramePrompt "Cinematic still {{guy}} and {{girl}} at bar…" \
qualityMode draft duration 12 purpose viral-ad clipId 03_sf_nightclub_ring_opener
{
"schemaVersion": "1.0",
"requestId": "hoa-nightclub-viral-2026-06",
"purpose": "viral-ad",
"defaults": { "qualityMode": "draft", "aspectRatio": "16:9", "imageResolution": "2k" },
"cast": [{ "id": "guy", "description": "…" }],
"setting": "San Francisco nightclub at night…",
"clips": [{
"id": "03_sf_nightclub_ring_opener",
"duration": 12,
"firstFrame": { "imagePrompt": "{{girl}} and {{guy}} at bar…" },
"scene": {
"action": "{{guy}} gestures warmly…",
"dialogue": [{ "speaker": "guy", "line": "So your HOA uses Ring?", "tone": "warmly" }]
},
"thumbnail": { "enabled": true, "overlays": [{ "text": "Your HOA on Ring", "role": "title" }] }
}]
}
cd ring-platform.org/scripts/ring-viral-video
# Full pipeline via MCP gateway (needs RING_MCP_ACCESS_KEY + dev server)
node run-scripted-video.mjs scripted-video-generation-request-hoa-nightclub.json --download
# Single clip
node run-scripted-video.mjs scripted-video-generation-request-hoa-nightclub.json --clip=03_sf_nightclub_ring_opener
# Remaster from manifest URL
node run-scripted-video.mjs request.json --remaster --clip=03_sf_nightclub_ring_opener --source-url=https://...
import { scriptedVideoGenerationRequestSchema } from '@/lib/media/schemas'
scriptedVideoGenerationRequestSchema.parse(request)
XAI_API_KEY=…
RING_MCP_ACCESS_KEY=long-random-token
RING_API_BASE_URL=http://localhost:3000
FILE_BACKEND=ringbase
ring-video-create \
prompt "ACTION: … DIALOGUE: …" \
firstFramePrompt "Cinematic still {{guy}} and {{girl}} at bar…" \
qualityMode draft duration 12 purpose viral-ad clipId 03_sf_nightclub_ring_opener
{
"schemaVersion": "1.0",
"requestId": "hoa-nightclub-viral-2026-06",
"purpose": "viral-ad",
"defaults": { "qualityMode": "draft", "aspectRatio": "16:9", "imageResolution": "2k" },
"cast": [{ "id": "guy", "description": "…" }],
"setting": "San Francisco nightclub at night…",
"clips": [{
"id": "03_sf_nightclub_ring_opener",
"duration": 12,
"firstFrame": { "imagePrompt": "{{girl}} and {{guy}} at bar…" },
"scene": {
"action": "{{guy}} gestures warmly…",
"dialogue": [{ "speaker": "guy", "line": "So your HOA uses Ring?", "tone": "warmly" }]
},
"thumbnail": { "enabled": true, "overlays": [{ "text": "Your HOA on Ring", "role": "title" }] }
}]
}
cd ring-platform.org/scripts/ring-viral-video
# Full pipeline via MCP gateway (needs RING_MCP_ACCESS_KEY + dev server)
node run-scripted-video.mjs scripted-video-generation-request-hoa-nightclub.json --download
# Single clip
node run-scripted-video.mjs scripted-video-generation-request-hoa-nightclub.json --clip=03_sf_nightclub_ring_opener
# Remaster from manifest URL
node run-scripted-video.mjs request.json --remaster --clip=03_sf_nightclub_ring_opener --source-url=https://...
import { scriptedVideoGenerationRequestSchema } from '@/lib/media/schemas'
scriptedVideoGenerationRequestSchema.parse(request)
XAI_API_KEY=…
RING_MCP_ACCESS_KEY=long-random-token
RING_API_BASE_URL=http://localhost:3000
FILE_BACKEND=ringbase
ring-video-create \
prompt "ACTION: … DIALOGUE: …" \
firstFramePrompt "Cinematic still {{guy}} and {{girl}} at bar…" \
qualityMode draft duration 12 purpose viral-ad clipId 03_sf_nightclub_ring_opener