• Stefy Lanza (nextime / spora )'s avatar
    LoRA transport: upload / id / url / inline file (no shared filesystem) · 42e45456
    Stefy Lanza (nextime / spora ) authored
    Previously a per-request LoRA could only be a local path or HF id, which
    assumed the client shared the server's filesystem. Add a content-addressed
    store so remote clients can supply LoRAs by value or handle.
    
    Request `loras` spec now accepts (resolved server-side, in priority):
      id "name:<registered>"  -> a LoRA trained on this server (path-independent)
      id "sha256:<hex>"       -> a previously uploaded blob
      file/data (base64)      -> inline weights, cached in the blob store
      url                     -> server downloads (cached by content hash)
      model/path              -> legacy local path / HF id (unchanged)
    
    - loras.py: blob store (save_lora_blob / lora_blob_exists / _lora_blob_path),
      resolve_lora_ref(), resolve_request_loras() (in-place -> clean 400 on a
      missing blob / unknown name). New POST /v1/loras/upload (multipart / JSON
      base64 / raw, dedup) and GET /v1/loras/blob/{hash} existence check.
    - LoraConfig / VideoLoraConfig: model now optional; add id/url/file/data/path.
    - image + video handlers resolve_request_loras() before model work, so
      signature dedup / VRAM reserve / load_lora_weights read lora.model as before.
    - gen_township_fighters.py: reference trained LoRAs by id "name:<registered>"
      (derived from the server path) with the raw path kept as a co-located
      fallback, so the script works client/server-split.
    
    Also harden video load: float(cfg.get('balanced_gpu_percent', 80)) crashed on
    an explicit null (admin UI writes null for blank fields); use `or 80`.
    Co-Authored-By: 's avatarClaude Opus 4.8 <noreply@anthropic.com>
    42e45456
Name
Last commit
Last update
..
__init__.py Loading commit data...
app.py Loading commit data...
archive.py Loading commit data...
audio_backends.py Loading commit data...
audio_clean.py Loading commit data...
audio_gen.py Loading commit data...
audio_stems.py Loading commit data...
characters.py Loading commit data...
custom_pipelines.py Loading commit data...
embeddings.py Loading commit data...
environments.py Loading commit data...
faceswap.py Loading commit data...
images.py Loading commit data...
log.py Loading commit data...
loras.py Loading commit data...
pipelines.py Loading commit data...
prompt_cache.py Loading commit data...
ratelimit.py Loading commit data...
spatial.py Loading commit data...
state.py Loading commit data...
text.py Loading commit data...
transcriptions.py Loading commit data...
tts.py Loading commit data...
urlutils.py Loading commit data...
video.py Loading commit data...
voice_clone.py Loading commit data...
voice_convert.py Loading commit data...