1. 09 Jun, 2026 4 commits
    • Stefy Lanza (nextime / spora )'s avatar
      Township web UI: suppress BrokenPipe/ConnReset from aborted requests · 2c736da4
      Stefy Lanza (nextime / spora ) authored
      Browsers routinely abort media (video seek/scrub) and SSE connections
      mid-response, which surfaced as BrokenPipeError/ConnectionResetError
      tracebacks spamming the terminal. Swallow these in the request handler's
      handle_one_request() and finish() so they're ignored cleanly.
      Co-Authored-By: 's avatarClaude Opus 4.8 <noreply@anthropic.com>
      2c736da4
    • Stefy Lanza (nextime / spora )'s avatar
      Township: per-match outcomes, match previews, editable prompts, terminal logs · df1c0032
      Stefy Lanza (nextime / spora ) authored
      Matches:
      - Outcomes are now per-match (<match>_<fighter>_<outcome>), generated for each
        match's two fighters, so each match's outcome scenes are its own/different.
      - Support multiple matches for the same pair+environment via unique match names
        (numeric suffix); scanner and delete isolate siblings correctly.
      - List view shows a lightweight preview (clip00 keyframe or metadata poster);
        detail view shows clips AND the match's outcomes per fighter, each with an
        editable prompt + re-render + remove. Clip/outcome prompts save to
        prompts.json. Legacy per-fighter outputs still listed.
      
      Prompts page: reframed as master prompts that auto-write a unique prompt per
      clip/outcome of every match; static templates marked fallback-only.
      
      Terminal: per-card action jobs (regenerate, train LoRA, match render) now echo
      their progress to the terminal too.
      Co-Authored-By: 's avatarClaude Opus 4.8 <noreply@anthropic.com>
      df1c0032
    • Stefy Lanza (nextime / spora )'s avatar
      Township: Matches list/detail with edit+remove, global Prompts page, --browser · 5e040759
      Stefy Lanza (nextime / spora ) authored
      Matches page:
      - Lightweight list view (no embedded players); per-match/per-fighter detail
        loads only that item's videos.
      - Edit a match: change fighters, environment, short/long targets, and each
        clip's prompt (saved to prompts.json). Fighter-outputs detail edits outcome
        prompts.
      - Remove videos: per clip, per final, whole match, single output, or all of a
        fighter's outputs (keeps plan/keyframes for re-render). Traversal-guarded.
      
      Global Prompts page (/prompts):
      - Edit the script's global templates — LLM fight/outcome system prompts and the
        static fight-shot + win/ko_win/retire/draw fallback templates. Persisted to
        <out-dir>/prompts_config.json, applied live and re-loaded on every run, with
        reset-to-defaults.
      
      Web UI:
      - Only auto-open a browser when --browser is passed (avoids spawning a terminal
        text browser on headless servers).
      Co-Authored-By: 's avatarClaude Opus 4.8 <noreply@anthropic.com>
      5e040759
    • Stefy Lanza (nextime / spora )'s avatar
      Township: per-profile LoRA training, Matches page, modals; fix SDXL LoRA dtype · 533bab82
      Stefy Lanza (nextime / spora ) authored
      LoRA training (codai/api/loras.py):
      - Fix instant crash "mat1 and mat2 have the same dtype (Half != float)":
        components loaded in their checkpoint's native dtype (fp16 text encoders +
        fp32 UNet). Force consistent fp32 (stable LoRA reference) for both SD1.5 and
        SDXL, and free VAE/text encoders after pre-encoding to keep memory in budget.
      
      Web UI (tools/gen_township_fighters.py):
      - Per-profile LoRA training launched from the Characters/Environments cards
        (steps/rank, live server progress, status badge); the "Train LoRAs" step now
        trains regardless of the consistency setting and logs what it does. Profiles
        are uploaded to CoderAI first so server-side training has reference images.
      - New Matches page: final short/long videos, single clips, and outcome outputs
        per match. Re-render clips/outputs with the video model (reuses the render
        path, honoring keyframe/LoRA settings) or reassemble finals from existing
        clips (no model).
      - Replace browser alert/confirm/prompt with proper in-page modal dialogs
        (uiConfirm/uiAlert/uiPrompt) on every page.
      - Apply changed connection/model settings (image/video/text model) to the live
        session on Save config / Start, so per-profile jobs use them immediately.
      Co-Authored-By: 's avatarClaude Opus 4.8 <noreply@anthropic.com>
      533bab82
  2. 08 Jun, 2026 2 commits
    • Stefy Lanza (nextime / spora )'s avatar
      Township UI: profile management, regenerate/upload refs, env parity · 278fab3e
      Stefy Lanza (nextime / spora ) authored
      Web UI (tools/gen_township_fighters.py):
      - Characters and Environments management pages: edit every meta field
        (data-driven form, not a fixed set), remove a profile, delete individual
        reference images — synced to CoderAI (DELETE/PATCH).
      - Regenerate references: background job generates N new images guided by the
        kept references (IP-Adapter) and APPENDS them, preserving non-deleted ones.
      - Upload your own reference image files (magic-byte validated, appended).
      - Clear run banner + status-pill label indicating which run/step is executing.
      - Config: -s/--save and -c/--config; web Save button writes server-side and,
        when launched with -c, defaults to that same config path.
      
      Environment parity / consistency:
      - Per-environment identity LoRAs (loras.py: environment field, env image
        resolver, "place" instance prompt; script stage_env_loras, env_loras.json,
        applied to keyframes + video alongside fighter LoRAs).
      - Environment IP-Adapter: environment_profiles on the image request
        (imagerequest.py) resolved into the IP-Adapter reference set (images.py),
        so environment regeneration can match kept references.
      Co-Authored-By: 's avatarClaude Opus 4.8 <noreply@anthropic.com>
      278fab3e
    • Stefy Lanza (nextime / spora )'s avatar
      Add config save/load to township fighters generator · f5cb44e1
      Stefy Lanza (nextime / spora ) authored
      CLI: -s/--save FILE writes selected generation options to a JSON config
      and exits; -c/--config FILE loads them as defaults (command-line args
      still override, via a two-phase parse).
      
      Web UI: "Save config" button writes the current form options to a file
      on the server (relative paths land in the output dir, absolute paths as-is)
      via a new /save-config endpoint. Web- and CLI-saved configs are
      interchangeable (shared CONFIG_FIELDS / canonical mapping).
      Co-Authored-By: 's avatarClaude Opus 4.8 <noreply@anthropic.com>
      f5cb44e1
  3. 03 Jun, 2026 1 commit
  4. 11 May, 2026 9 commits
  5. 08 May, 2026 3 commits
  6. 07 May, 2026 10 commits
  7. 06 May, 2026 11 commits