makepad/libs/ai/models/paint/Cargo.toml
Admin 7f59912916 libs/ai: one AI stack, replacing libs/ggml, llama, mlx, cuda, tts, voice2 and pbr_paint
The model code was spread across eight crates that had grown into each other:
ggml and cuda and mlx each owned part of a tensor runtime, llama and tts and
voice2 each owned part of a model, and libs/diffusion owned everything else.
They are now one tree with an explicit shape:

  libs/ai/cuda     — kernels and launch surface
  libs/ai/metal    — Metal shaders and the shim
  libs/ai/llm      — the language-model runtime (sessions, lanes, contexts,
                     the CUDA and Metal executors, the compiled Metal path)
  libs/ai/models/  — common, flux, h3, music, paint, speech, stems, vision

libs/diffusion is not deleted but demoted: what remains is the VALIDATOR
crate — several dozen `*_validate.rs` oracles that check a native
implementation against a reference, which is where they belong now that the
implementations live next door.

The functional work inside the move is mostly in the LLM runtime: N lanes that
draft while one verify batch serves all of them, per-slot prefill over a shared
folded attention arena, speculation that survives batching, and a scheduler
that reports rather than publishes. And in the CUDA build: a machine without
usable CUDA must still LINK (and say so), the default kernel arch is the
building machine's GPU, `NO_CUDA` forces the stub even where the toolkit
exists, and kernels compile in parallel with progress.

libs/video_flow is new here: classical optical flow estimation and the `mkfl`
motion-field payload — a flow field measured from a clip without a model,
which is what drives free-rate bounce-looping playback and the uprez/tween
enhance pipe.
2026-08-23 01:34:35 +02:00

52 lines
1.2 KiB
TOML

[package]
name = "makepad-ai-paint"
version = "0.1.0"
edition = "2021"
description = "Hunyuan3D-Paint family. Was libs/pbr_paint (aiarch.md §1)."
license = "MIT OR Apache-2.0"
[dependencies]
[features]
default = []
# Validation taps for the first experimental CUDA graph section. This is not a
# complete Hunyuan executor and deliberately does not register a model backend.
cuda-taps = ["dep:makepad-ai-common"]
[target.'cfg(any(target_os = "linux", target_os = "windows"))'.dependencies]
makepad-ai-common = { path = "../common", optional = true }
[[bin]]
name = "pbr-cuda-taps"
path = "src/bin/cuda_taps.rs"
required-features = ["cuda-taps"]
[[bin]]
name = "pbr-vae-canary"
path = "src/bin/vae_canary.rs"
required-features = ["cuda-taps"]
[[bin]]
name = "pbr-unet-canary"
path = "src/bin/unet_canary.rs"
required-features = ["cuda-taps"]
[[bin]]
name = "pbr-dino-canary"
path = "src/bin/dino_canary.rs"
required-features = ["cuda-taps"]
[[bin]]
name = "pbr-exec-canary"
path = "src/bin/exec_canary.rs"
required-features = ["cuda-taps"]
[[bin]]
name = "pbr-pipeline-canary"
path = "src/bin/pipeline_canary.rs"
required-features = ["cuda-taps"]
[[bin]]
name = "pbr-dino-bisect"
path = "src/bin/dino_bisect.rs"
required-features = ["cuda-taps"]