mirror of
https://github.com/storytold/lightcraft.git
synced 2026-10-24 10:09:01 -06:00
The unknown-tab error now names every Settings tab (it missed AI Denoise after the faces merge). lightcraft-sam3-worker (#359) only builds its server off wasm32, so `cargo xtask wasm` passes again. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
19 lines
905 B
Rust
19 lines
905 B
Rust
//! Serves SAM 3 on this Mac's Metal GPU to one LightCraft editor over a loopback socket (an SSH
|
|
//! tunnel); see docs/ai-masks.md → Remote Metal inference.
|
|
#![forbid(unsafe_code)]
|
|
#![deny(clippy::unwrap_used, clippy::expect_used, clippy::panic, clippy::unimplemented, clippy::todo, clippy::unreachable)]
|
|
|
|
#[cfg(not(target_arch = "wasm32"))]
|
|
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|
let mut args = std::env::args().skip(1);
|
|
let dir = args.next().ok_or("usage: lightcraft-sam3-worker MODEL_DIR [127.0.0.1:8793]")?;
|
|
let address = args.next().unwrap_or_else(|| "127.0.0.1:8793".into()).parse()?;
|
|
let device = candle_core::Device::new_metal(0)?;
|
|
lightcraft_segment::remote::serve(address, std::path::Path::new(&dir), device)?;
|
|
Ok(())
|
|
}
|
|
|
|
/// The worker serves a local GPU over a socket; there is nothing to serve in a browser.
|
|
#[cfg(target_arch = "wasm32")]
|
|
fn main() {}
|