๋์ ์ผ: 2026-06-27 ยท ์ถ์ฒ: github.com/calesthio/OpenMontage (24kโญ) ยท ๋ผ์ด์ ์ค: AGPLv3
OpenMontage๋ ์คํ์์ค ์์ด์ ํธ ์์ ์ ์ ์์คํ ์ด๋ค (AGPLv3). 13๊ฐ ์์ ์ ์ ํ์ดํ๋ผ์ธ๊ณผ 115๊ฐ ๋๊ตฌ/์คํฌ์ ๊ฐ์ถ๊ณ , "executive-producer(EP)"๊ฐ ๊ฐ ์ ์ ๋จ๊ณ๋ฅผ ์คํ ์ด์ง-๊ฒ์ดํธ ๋ฐฉ์์ผ๋ก ํต์ ํ๋ค โ ๊ฐ ๋จ๊ณ์ ์ฐ์ถ๋ฌผ์ด ํ์ง ๊ฒ์ดํธ๋ฅผ ํต๊ณผํด์ผ ๋ค์ ๋จ๊ณ๋ก ๋์ด๊ฐ๋ ๊ตฌ์กฐ๋ค.
MCO๋ ์์ ์์ฒด๊ฐ ์๋๋ผ ์ด ๋ฐฉ๋ฒ๋ก (์คํ ์ด์ง-๊ฒ์ดํธ ๊ฑฐ๋ฒ๋์ค + ๋นํ ๊ท์จ)์ ์ด์ํ๋ค. ์์ ์ ์๋ฟ ์๋๋ผ ์์์ ๋ค๋จ๊ณ ์์ฑ ์์ ์ MCO์ GAN ๋ฃจํ๋ก ์ ์ฉํ ์ ์๋ค.
| ๊ตฌ์ฑ ์์ | ๋ฌด์ | ์์น |
|---|---|---|
| mco-pipeline ์์ง | OpenMontage EP ์คํ ์ด์ง-๊ฒ์ดํธ ํ์ดํ๋ผ์ธ์ MCO GAN ๋ฃจํ(์์ฑ์=router, ํ๊ฐ์=eval ์ฒด์ธ)๋ก ์คํ | /opt/star365-hq/api/mco-pipeline.mjs + CLI /usr/local/bin/mco-pipeline |
| chai-rubric | OpenMontage meta/reviewer์ CHAI ๋นํ ๊ท์จ(Accurate/Complete/Constructive) ์ด์ | /opt/star365-hq/api/chai-rubric.mjs |
| 13 ํ์ดํ๋ผ์ธ ์นดํ๋ก๊ทธ | ์นดํ๋ก๊ทธ + ๊ฐ๋ณ JSON ์ ์ | pipelines/catalog.json ยท pipelines/defs/*.json |
๊ฐ stage = generate(์์ฑ์) โ CHAI gate(ํ๊ฐ์, GAN ๋
๋ฆฝ) โ ํต๊ณผ ์ artifact ์ ์ฌ + ์ฒดํฌํฌ์ธํธ. ๋ฏธํต๊ณผ ์ must_fix๋ฅผ ์ฃผ์
ํ send-back(์ต๋ max_revisions ํ). ์ด์ stage์ produces artifact๊ฐ ๋ค์ stage์ required_artifacts_in์ผ๋ก ํ์ดํ๋๋ค.
โโโโโโโโโโโโโ stage N โโโโโโโโโโโโโโ
input โ โ generate (router routeLLM) โ
prev โ โ produces artifact draft โ
artifacts โโผโโโโโโโบ โ โ
โ โผ โ
โ CHAI gate (eval chain, GAN ๋
๋ฆฝ) โ
โ pass? โโnoโโโบ must_fix ์ฃผ์
โโโโ
โ โ yes send-back โ (โค max_revisions)
โ โผ โโโโโโโโโโโโโ
โ artifact ์ ์ฌ + ์ฒดํฌํฌ์ธํธ(JSON) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โผ (required_artifacts_in)
๋ค์ stage โฆ โ publish
router(routeLLM), ํ๊ฐ์๋ eval ์ฒด์ธ(groq70โglmโโฆโclaude-cli ํด๋ฐฑ). ํ๊ฐ์๋ ์ฐ์ถ๋ฌผ์ ์์ ํ์ง ์๊ณ verdict๋ง ๋ฐํ.mco-pipeline resume <runId>๋ก ์ค๋จ ์ง์ ๋ถํฐ ์ฌ๊ฐ.--budget ์ด๊ณผ ์ ๊ฒฝ๊ณ . ๊ฐ ํ์ดํ๋ผ์ธ ์ ์์ budget_default_usdยทmax_wall_time_minutes ๊ธฐ๋ณธ๊ฐ ํฌํจ.๊ทผ๊ฑฐ: CMU/Harvard CHAI ์ฐ๊ตฌ "Building a Precise Video Language with Human-AI Oversight" (arXiv 2604.21718v2). ๋นํ ํ์ง 3์ถ์ด ๋ค์ด์คํธ๋ฆผ ์ฐ์ถ๋ฌผ ํ์ง์ ์ง์ ์ข์ฐํ๋ค๋ ๋ฐ๊ฒฌ์ ๊ฒ์ดํธ์ ๊ฐ์ ํ๋ค.
| ์ถ | ๊ท์จ |
|---|---|
| Accurate | ๋ชจ๋ finding์ ์ฐ์ถ๋ฌผ์ ๊ตฌ์ฒด ๋ถ๋ถ(ํ๋/๋ฌธ์ฅ/์์น/ํ๋ ์)์ ์ธ์ฉ. ๊ฐ๋ฆฌํฌ ์ ์์ผ๋ฉด ์ ์ง ์์(ํ๊ฐ ๋นํ ๊ธ์ง). |
| Complete | ํ ๊ฒฐํจ๋ง ์ก๊ณ ๋๋ฅ ๊ฒฐํจ ๋๋ฝ = ๋ ๋์จ. ๊ฐ์ ํด๋์ค ๊ฒฐํจ์ ์ ์ ์ค์บ ํ ๋ฐํ. |
| Constructive | ๋ชจ๋ critical finding์ ๊ตฌ์ฒด์ proposed_fix(๊ต์ฒด ํ
์คํธ/์ ํํ ๊ฐ/์์ ํ๋)๋ฅผ ๋ฐ๋์ ๋๋ฐ. |
proposed_fix ๊ฐ์ ๊ท์น (๊ฑฐ์ง critical ์ฐจ๋จ): proposed_fix๊ฐ ์๋ critical/suggestion์ ์๋์ผ๋ก investigation์ผ๋ก ๊ฐ๋ฑ๋์ด ๊ฒ์ดํธ๋ฅผ ๋ง์ง ์๋๋ค. severity ์ฒด๊ณ: critical(ํต๊ณผ ์ฐจ๋จยทfix ๅฟ
) ยท suggestion ยท nitpick ยท investigation(fix ๋ถ๋ช
ยท๋น์ฐจ๋จ).
mco-pipeline list # 13 ํ์ดํ๋ผ์ธ ๋ชฉ๋ก
mco-pipeline show <id> # ํ์ดํ๋ผ์ธ ์ ์(stagesยทartifactsยท์์ฐ) ์์ธ
mco-pipeline run <id> --input "์ฃผ์ /์ค๋ช
" \
[--threshold 80] [--max-rev 2] [--budget 2.0]
mco-pipeline resume <runId> # ์ฒดํฌํฌ์ธํธ์์ ์ฌ๊ฐ
mco-pipeline runs # ์คํ ์ด๋ ฅ
pipelines/catalog.json ์ค์ ๊ฐ (source: calesthio/OpenMontage, count: 13):
| id | category | stability | ๋จ๊ณ์ | ์ค๋ช |
|---|---|---|---|---|
animated-explainer |
generated | production | 8 | ์ฃผ์ /์์ด๋์ด๋ก AI ์์ ์์ฑ ์ค๋ช ์์(๋ด๋ ์ด์ ยท๋น์ฃผ์ผยท์์ ). research-first ์ฌ์ ์ ์(๊ฐ๋ ์ ์+๋น์ฉ ์ถ์ +์น์ธ). |
animation |
animation | production | 8 | ๋ชจ์ ๊ทธ๋ํฝยท๋ค์ด์ด๊ทธ๋จ ์ค๋ช ยทํค๋คํฑ ํ์ดํฌยท์ํ ๋น์ฃผ์ผ ๋ฑ ์ ๋๋ฉ์ด์ ์ฐ์ . research-first. |
avatar-spokesperson |
custom | production | 7 | ๋์งํธ ํ๋ฆฌ์ ํฐ ์ค์ฌ ์คํฌํฌ์คํผ์จ/์จ๋ณด๋ฉ/์ธ์ผ์ฆ ์ธํธ๋ก. lip-syncยทํ๋ ์ด๋ฐยทCTA ๊ฒ์ดํธ. |
character-animation |
animation | beta | 10 | ๋ก์ปฌ ์ฌ์ฌ์ฉ ์บ๋ฆญํฐ ์ ๋๋ฉ์ด์ (์คํยท๋ฆฌ๊ทธยทํฌ์ฆยทSVG/Canvas/Remotion ๋ ๋). ๊ฒฐ์ ์ ๋ก์ปฌ ๋ชจ์ . |
cinematic |
cinematic | production | 8 | ๋ฌด๋ ์ค์ฌ ์๋ค๋งํฑ(ํธ๋ ์ผ๋ฌยท๋ธ๋๋ํ๋ฆยท๋ชฝํ์ฃผ). ๊ณต๊ธ ํธํฐ์ง ๊ธฐ๋ฐ, ๊ฐ์ ํ์ด์ฑยท์ปฌ๋ฌยท์ค๋์ค ๊ฒ์ดํธ. |
clip-factory |
custom | beta | 7 | ๋กฑํผ(์จ๋น๋ยท์คํธ๋ฆผยท์ธํฐ๋ทฐ)์์ ๋ค์ค ์ํด๋ฆฝ ์ถ์ถ. ๋จ์ผ ์์ค โ N ์ฐ์ถ๋ฌผ. |
documentary-montage |
documentary | beta | 5 | retrieval-first ํ ๋ง ๋ชฝํ์ฃผ. Pexels/Archive.org/NASA/Wikimedia/Unsplash CLIP ๊ฒ์์ผ๋ก ์ฌ๋กฏ ์ฑ์. |
framework-smoke |
custom | beta | 2 | Phase 0 ํ๋ ์์ํฌ ๊ณ์ฝ ์ ๊ฒ์ฉ ์ต์ ๋งค๋ํ์คํธ(์ค๋ชจํฌ ํ ์คํธ). |
hybrid |
hybrid | production | 7 | ์์ค ํธํฐ์ง + ์ค๊ณ/์์ฑ ๋ณด์กฐ ์์ฐ ํผํฉ(์ธํฐ๋ทฐ+๋ค์ด์ด๊ทธ๋จ, ์ ํ์์+์ค๋ฒ๋ ์ด ๋ฑ). |
localization-dub |
custom | beta | 7 | transcript-first ํ์งํ(๋ฒ์ญ ์๋งยท๋๋นยท๋ฆฝ์ฑํฌ ๋ณํ). ๋ฒ์ญ ์ ํ๋ยทํ์ด๋ฐ ๋ณด์กด ๊ฒ์ดํธ. |
podcast-repurpose |
custom | beta | 7 | ํ์บ์คํธ ์ค๋์ค/์์ โ ์ค๋์ค๊ทธ๋จยท์๋ง ํด๋ฆฝยท์ธ์ฉ ์์ ์์ฐยท์ ํธ ์ปดํจ๋์ธ ์์. |
screen-demo |
screen_recording | production | 7 | ํ๋ฉด ๋ นํ ๋ฐ๋ชจ. ์ค์บก์ฒ(์ฑ/๋ธ๋ผ์ฐ์ /์ฝ๋ฉ) ๋๋ ํฉ์ฑ(Remotion TerminalScene CLI ๋ฐ๋ชจ) 2๋ชจ๋. |
talking-head |
talking_head | beta | 7 | ๋งํ๋ ์ฌ๋ raw ํธํฐ์ง โ ์ ์ฌยทํธ์ง๊ฒฐ์ ยท์๋งยท์ค๋์ค๋ฏน์คยทํฉ์ฑ end-to-end. |
๋จ๊ณ์ยทcategoryยทstability๋ ์นดํ๋ก๊ทธ ์๋ณธ ๊ฐ. ์ค๋ช ์ ์๋ฌธ ์์ฝ(์ ๋ฌธ์
mco-pipeline show <id>๋๋pipelines/defs/<id>.json).
GET /api/mco/pipelines (์นดํ๋ก๊ทธ + CHAI ๋ฉํ), GET /api/mco/pipelines/:id (๊ฐ๋ณ ์ ์). ๊ตฌ์ถ๋จ (/opt/star365-hq/api/server.mjs).GET /api/pipelines (์นดํ๋ก๊ทธ ๋
ธ์ถ). ๊ตฌ์ถ๋จ (/opt/star365-hq/studio/server.mjs).์ธ๋ถ HTTPS ๋ผ์ด๋ธ ์๋ต ๊ฒ์ฆ์ ๋ฉ์ธ ์์ด์ ํธ ์ฌ์์ ํ ์ํ ์์ . ์ ๋ผ์ฐํธ๋ ์์ค์ ์กด์ฌํจ์ ํ์ธํ์ผ๋ ๋ณธ ๋ฌธ์ ์์ฑ ์์ ์ ์ฌ์์์ ํ์ง ์์๋ค.
์คํ
์ด์ง ์ ์์ "executor": "asset" | "compose" ๊ฐ ์์ผ๋ฉด LLM ํ
์คํธ๊ฐ ์๋๋ผ ์ค์ ํ์ผ์ ์์ฑํ๋ค. ๊ฒ์ดํธ๋ LLM CHAI ๊ฐ ์๋๋ผ ๊ฒฐ์ ์ ๊ฒ์ฆ(ํ์ผ ์กด์ฌ + ffprobe ๊ธธ์ด>0).
scene_plan(JSON) ํ์ฑ โ ์ฅ๋ฉด๋ณ fal.ai FLUX ์ด๋ฏธ์ง + fal.ai TTS(kokoro=์์ด / minimax=ํ๊ตญ์ดยท๋ค๊ตญ์ด) ๋ด๋ ์ด์
์์ฑ โ asset_manifest(์คํ์ผ ๊ฒฝ๋ก + ๊ธธ์ด). ์ต๋ 6์ฅ๋ฉด.asset_manifest โ ๋ด๋ ์ด์
concat + SRT ์๋ง + ffmpeg(์ ์ ํ๋ ์+ํ์ด๋, ์ต์
Ken Burns) concat ์ฌ๋ผ์ด๋์ผ โ final.mp4 + render_report.ํค: /root/.fal_api_key(fal.ai). ์ฐ์ถ๋ฌผ: pipelines/runs/<runId>.assets/(scene_NN.jpg / scene_NN.mp3 / subs.srt / final.mp4). ๋น์ฉ โ $0.03(6์ฅ๋ฉด, FLUX schnell). ๊ตฌํ /opt/star365-hq/api/media-tools.mjs.
์ ๊ท ํ์ดํ๋ผ์ธ star365-slideshow(๋ธ๋ฆฌํโscriptโscene_planโassetsโcompose)๊ฐ ์ด ๊ฒฝ๋ก์ ์ค๊ตฌํ โ OpenMontage "$0.15 FLUX ์ฌ๋ผ์ด๋์ผ"์ MCO ๋ฒ์ .
star365-slideshow ยท animated-explainer ยท animation ยท cinematic โ ๋ชจ๋ assets/compose executor ๋ณด์ . OM 3์ข
์ scene_plan ์ด {id,type,description,required_assets,script_section_id,...} ๋ค์ดํฐ๋ธ ํฌ๋งท์ด๋ผ, asset executor ๊ฐ LLM ์ ๊ทํ(normalizeRenderSpec: scene_plan+script โ {scenes:[{image_prompt(์์ด),narration}]})๋ก ๋ณํ ํ ๋ ๋ํ๋ค. star365-slideshow ๋ ์ฒ์๋ถํฐ ํธํ ์คํค๋ง๋ผ ์ ๊ทํ๋ฅผ ๊ฑด๋๋ด๋ค.
๋ ๋ ๋ถ๊ฐ(footage/ํ๋ฉด์บก์ฒ/์ค๋์ค/์๋ฐํ/๋ฆฌ๊ทธ ์ ๋ ฅ ์์กด โ ์ด๋ฏธ์ง ์ฌ๋ผ์ด๋์ผ ๋๊ตฌ๋ก ๋ถ๊ฐ): documentary-montage, talking-head, screen-demo, avatar-spokesperson, clip-factory, podcast-repurpose, localization-dub, hybrid, character-animation โ ๊ธฐํ/์ค์ผ์คํธ๋ ์ด์ (LLM ํ ์คํธ)๊น์ง๋ง.
๊ฒ์ฆ: star365-slideshow(1920x1080 h264+aac ํ๊ตญ์ด+์๋ง 37s) ยท animation(OM ๋ค์ดํฐ๋ธ scene_plan โ LLM ์ ๊ทํ โ 1920x1080 h264+aac 18s) ๋ผ์ด๋ธ mp4 ์์ฑ ํ์ธ.
์์ ๋ค์ด๋ก๋: GET /api/mco/pipeline-run/:runId/video (compose ์๋ฃ ์ run ์ํ์ video ๋งํฌ ๋
ธ์ถ).
์ฐธ๊ณ : 4 vCPU ํ๊ฒฝ์์ zoompan(Ken Burns)์ ํด๋ฆฝ๋น 90s+ ๋ก ๋น์ค์ฉ โ ๊ธฐ๋ณธ์ ์ ์ +ํ์ด๋(ํด๋ฆฝ๋น ~2s).
kenBurns์ต์ ์ผ๋ก๋ง ๋ชจ์ ํ์ฑ.
/opt/star365-hq/api/mco-pipeline.mjs โ ์คํ
์ด์ง-๊ฒ์ดํธ ์์ง(generateโgateโartifact ํ์ดํโ์ฒดํฌํฌ์ธํธโ์์ฐ)/usr/local/bin/mco-pipeline โ CLI ๋ํผ/opt/star365-hq/api/chai-rubric.mjs โ CHAI ๋นํ ๊ท์จ(ํ๋กฌํํธยทํ์ยทproposed_fix ๊ฐ๋ฑ ๋ก์งยทCHAI_META)/opt/star365-hq/api/pipelines/catalog.json โ 13 ํ์ดํ๋ผ์ธ ์นดํ๋ก๊ทธ/opt/star365-hq/api/pipelines/defs/*.json โ ๊ฐ๋ณ ํ์ดํ๋ผ์ธ ์ ์/opt/star365-hq/api/server.mjs โ GET /api/mco/pipelines, GET /api/mco/pipelines/:id