openjutsu
One-click character swap for videos: an open-source, local Higgsfield Genjutsu alternative built on ComfyUI and MiniMax H3, with FLUX.3 Klein relighting.
The Digitakt II keyframe time stretcher and its TKEO transient detector, compiled from the unit's C to WebAssembly and played live in the browser. AGPL-3.0.
MediaHTML · CGitHub @heavylight-industriesOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗The keyframe time stretcher from the Digitakt II keyframer mod, with its TKEO transient detector, running live in the browser: https://heavylight-industries.github.io/keyframer-lab/
The engine is the unit's own C, compiled to WebAssembly with no changes to its arithmetic, so what you hear and see is what the Digitakt plays. It starts on a synthesized drum loop. Open a folder or drop files to use your own samples. Everything runs in the page; nothing is uploaded.
In Chrome or Edge, Connect MIDI and the page listens to your controllers and your DAW:
To record it in a DAW, pick an output on the page (no change to your system's): BlackHole 2ch on macOS, VB-CABLE on Windows, and arm a track that records from it. On Linux with PipeWire, wire the browser's output to the DAW in qpwgraph or Helvum. The page shows these steps for your system, with the virtual MIDI port for each (the IAC bus, loopMIDI, PipeWire's own).
Needs clang with the wasm32 target, wasm-ld, python3, and node for the check.
sh tools/build_kfweb.sh # build/kfweb.wasm, build/kfweb.html, build/kfweb-site/index.html
cp build/kfweb-site/index.html index.html # the page GitHub Pages serves
KF=path/to/kf sh tools/build_kfweb.sh builds against another checkout's engine sources.
sh tools/check_kfweb.sh some.wav other.wav # 16-bit PCM WAVs, mono or stereo
For each file it checks that:
kfrender (the engine on the host) sample for sample;| path | what |
|---|---|
kf/kf.c, kf/kf.h | the keyframe engine (the DAFx26 paper's method): reference and play heads, extrema keyframes, splices past K, transient borders |
kf/tkeo.c, kf/tkeo.h | the TKEO transient detector and its slice pickers |
kf/host/kfweb.c | the glue: the unit's ONESHOT path (STR, TUNE, SIZE, PLAY, edge fades), the analysis, the picture's data |
kf/host/kfweb.html | the page (the module inlined at build) |
kf/host/kfweb_host.c, kfweb_check.mjs, kfrender.c | the native and node drivers and the host renderer the check compares |
tools/ | the build and the check |
The engine files come from the keyframer mod's tree; changes to the engine are made there first and copied here.
docs/conversation.md is the conversation in which it was built, from the first brief to this repo: heavylight's notes and Claude's replies, without the tool output.
GNU AGPL-3.0-or-later (LICENSE).