Skip to content

QVAC-22254 feat: isolated LAM-A2E C API and GGML graph - #24

Draft
Alok-Ranjan23 wants to merge 3 commits into
2026-07-03from
feat/QVAC-22248-lam-a2e
Draft

QVAC-22254 feat: isolated LAM-A2E C API and GGML graph#24
Alok-Ranjan23 wants to merge 3 commits into
2026-07-03from
feat/QVAC-22248-lam-a2e

Conversation

@Alok-Ranjan23

@Alok-Ranjan23 Alok-Ranjan23 commented Jul 24, 2026

Copy link
Copy Markdown

Summary

  • Add isolated lam_a2e_* C API and GGML graph (PCM 16 kHz → ARKit-52) that runs without an sd_ctx_t
  • Install include/lam-a2e.h as a public header of the stable-diffusion library
  • Add CPU smoke, frontend, and parity harnesses plus a CI job that compiles them

GGUF conversion tooling deliberately does not live here. It was moved to the consuming package (qvac/packages/diffusion-cpp/scripts/) in bf8adcc, matching how ocr-ggml and the other packages keep model tooling next to the code that ships the model. This repo stays the engine.

Tickets

  • QVAC-22254 — port the isolated LAM-A2E engine to qvac-ext-stable-diffusion.cpp. This is what the PR delivers.
  • QVAC-22248 (GGUF conversion and parity tooling) was in scope when this PR was opened and is what the branch name still says, but that work moved out in bf8adcc and now ships in tetherto/qvac#3455.
  • QVAC-22250 (LipSync CI and cross-platform validation) is partially advanced by the ubuntu-latest-lam-a2e job here; prebuild coverage and GPU parity remain open.

Test plan

  • lam-a2e-smoke against the converted F32 GGUF
  • lam-a2e-parity vs lipsync-ggml win64 fixtures (expr max abs ~3e-6)
  • CI build of stable-diffusion with the new sources — all 14 jobs green, including the dedicated ubuntu-latest-lam-a2e job
  • End-to-end parity against aigc3d/LAM_Audio2Expression itself, driven from the consumer side (qvac#3455): 5/5 cases, worst 9.1e-6 on F32, across varying identity and clip length

Notes

  • Consumed by tetherto/qvac#3455, which pins this branch through a vcpkg overlay port until the merge to 2026-07-03 lands and the registry publish follows (QVAC-22249).
  • CPU-only for now: use_gpu is accepted for forward-compat but not yet implemented.

Expose lam_a2e_* beside stable-diffusion, convert/remap scripts for
lam-audio2exp GGUF, and smoke/parity gates vs lipsync-ggml fixtures.
The standard build jobs compile the LAM audio2expression sources via the
SD library glob, but the smoke and CPU-parity test targets are only built
under -DSD_BUILD_LAM_A2E_SMOKE=ON and were therefore uncovered. Add a
PR-triggered ubuntu job that builds lam-a2e-smoke, lam-a2e-frontend-smoke
and lam-a2e-parity so regressions in the C API / graph / test harness are
caught. Executing parity is deferred until the remapped GGUF and
lipsync-ggml fixtures are available in CI (QVAC-22250 / QVAC-22249).
@Alok-Ranjan23
Alok-Ranjan23 marked this pull request as draft July 24, 2026 17:06
The Python conversion and fixture-dump scripts sat in the engine repo, but
nothing here runs them: the engine only ever reads the resulting .gguf. Every
comparable package (ocr-ggml and friends) keeps its conversion tooling beside
the code that consumes it, so these move to qvac packages/diffusion-cpp/scripts/
where the venv, the npm scripts, and the docs already live.

Keeps the engine a pure C/C++ artifact with no Python surface to maintain.
@Alok-Ranjan23 Alok-Ranjan23 changed the title QVAC-22248 feat: isolated LAM-A2E C API and GGUF tooling QVAC-22254 feat: isolated LAM-A2E C API and GGML graph Jul 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant