Skip to content

Releases: skyphusion-labs/vivijure

v1.0.0 -- Vivijure Studio, first stable release

Choose a tag to compare

@skyphusion-mackaye skyphusion-mackaye released this 13 Jul 10:47
736d34c

Vivijure Studio leaves pre-1.0. The module-host control plane, the module registry, the
self-assembling UI, and the full render spine (planner -> keyframe -> motion -> finish -> score ->
assemble -> master) are OUTPUT-verified end-to-end on production -- every path re-run and the ACTUAL
artifact inspected (ffprobe stream shape plus eyeballed pixels / measured audio), not merely
phase=done. Verified paths:

  • Motion backends: seedance, kling, minimax-hailuo, google-veo, vidu-q3, alibaba-wan, own-gpu
    (same prod RunPod endpoint, Wan2.2 i2v_clip), and the local-gpu LTX door (propagandhi).
  • Keyframe: SDXL/RunPod keyframe and the GPUless cloud-keyframe (FLUX-2).
  • Finish: finish-rife, finish-upscale (exact 2x ESRGAN), finish-lipsync (MuseTalk).
  • Score / audio: dialogue-gen, narration-gen, music-gen, beat-sync, audio-master.
  • Captions: subtitle (burn + .srt), film-titles.
  • Cast: cast-LoRA-bound keyframe + voice; plan-enhance; scatter/gather.

Two release-promise degrades found and fixed on the way in: cross-render clip-adoption contamination
(a re-render with a different backend silently adopting a stale clip -- now fingerprinted by
backend/config, #768) and audio-master shipping a silent film (#765). Both are prod-confirmed. The
evidence ledger for this release lives at docs/release/v1.0-coverage.md.

Not in v1.0 scope: the experimental CogVideoX-16gb local door (vivijure-local-16gb) is marked not
ready for deployment; its kernel-stack rendering defect is tracked post-1.0. The mainstream local-gpu
path ships via the LTX 12gb door.

This release also rolls up the two distribution changes below.

Retire the text-overlay finish module (dead code; superseded by subtitle + film-titles).

  • text-overlay retired, not fixed. The module read its content from req.config.overlays (an
    array), but overlays was never a declared config_schema field (schema types are only int / float /
    bool / enum / string; there is no array type). The core validateConfig (src/modules/registry.ts)
    builds a module's validated config ONLY from declared schema keys, so overlays was always stripped
    before the module saw it: it could never receive overlay content through any path (config or derived),
    and always took the clean no-overlays passthrough. Captions and title / credit cards are already covered
    by the working, output-verified subtitle and film-titles modules. Removed: the
    modules/text-overlay/ worker, its MODULE_TEXT_OVERLAY service binding in wrangler.toml.example,
    the CI + deploy-doc references, and tests/text-overlay.test.ts. The film-orchestrator chain-advance
    fixtures that used it as a generic unmodeled finish step now use a neutral MODULE_FINISH_STUB. The
    core auto-discovers modules via the MODULE_* service-binding scan, so dropping the binding delists it
    after the next core deploy.

Delist alibaba-wan-lora from the v1.0 distribution (unverified, not retired).

  • alibaba-wan-lora delisted pending verification (#771). Its distinguishing feature -- injecting
    custom operator LoRAs into the Wan 2.2 cloud i2v path (high_noise_loras / low_noise_loras) -- is
    UNVERIFIED: exercising it needs a hosted Wan2.2 i2v LoRA artifact, and the cast LoRAs on hand are SDXL
    keyframe LoRAs (wrong architecture), so a render with empty LoRA arrays only duplicates the already
    output-verified alibaba-wan backend. Rather than ship an advertised-but-unverified feature in v1.0, the
    module is DELISTED, not retired: the MODULE_ALIBABA_WAN_LORA core binding is commented in
    wrangler.toml.example, the module DIR is added to the CI deploy-loop EXCLUDE, and it is dropped from
    deploy.sh STANDARD_MODULES. The module SOURCE and its tests stay intact; re-enable the binding + drop
    it from EXCLUDE once the custom-LoRA path is output-verified with a real Wan LoRA.

v0.6.6 -- load-run wiring fixes + Secrets Store migration

Choose a tag to compare

@skyphusion-mackaye skyphusion-mackaye released this 24 Jun 16:06
003fa43

Wiring-bug batch from the load/stress runs, plus the module Secrets Store migration:

  • fix(render): bundle-only renders now derive dialogue + voice from the storyboard, instead of rendering silent (#313)
  • feat(planner): per-keyframe sub-progress wired in (render-progress.ts), so the ETA subdivides the keyframe phase instead of pinning (#318)
  • fix(contract): finish-rife declares src_fps/frames/width/height OPTIONAL, matching what advanceFinishPhase actually sends; behavior preserved (#232)
  • fix(modules): the 12 cloud modules now resolve RunPod creds from the Cloudflare Secrets Store, with per-endpoint secret names (latent shared-secret bug fixed); part of #238 (#237)

Audio-mix into mux (#231) is wired but held for the VPC service decision -- ships separately.

v0.6.5 -- planner/cast fixes + stale-deploy catch-up

Choose a tag to compare

@skyphusion-mackaye skyphusion-mackaye released this 24 Jun 14:38
933ef25

Frontend bug fixes:

  • fix(planner): phase-aware render progress + ETA (#115)
  • fix(cast): open a character on load so highlight + detail pane stay in sync (#146)

Also deploys fixes that were already on main but masked by a stale deploy:

  • #144 (Cast & Bundle step renders blank) and #145 (manifest.webmanifest 404) -- both fixed in #147 (2026-06-19), confirmed present in current main; this release ships them live. Close after post-deploy verify.

v0.6.4 -- load-run bug-fix batch

Choose a tag to compare

@skyphusion-mackaye skyphusion-mackaye released this 24 Jun 03:00
30506b2

Bug fixes surfaced by today's load/stress runs:

  • fix(render): Slate-authored per-shot dialogue now reaches TTS + lip-sync instead of rendering SILENT -- emitScene serializes dialogue + hStartFilm forwards dialogue_lines (#307, #296)
  • fix(cast): DELETE /api/cast/:id now reclaims the cast's R2 artifacts (portrait/refs/source/lora), no more orphans (#298)
  • fix(cast): a LoRA training row wedged in 'training' (RunPod job aged out before write-back) reconciles to failed (#295)

Backend keyframes_only cost-trap fix (#119) merged separately; ships with the next backend image.