Add SEGA hi-res FLUX runtime pipeline integration#231
Draft
timfox wants to merge 4 commits into
Draft
Conversation
Integrate rajabi2001/sega as an external PyTorch generation hook mirroring FLUX/TRELLIS: async SDL jobs, console commands, and texture hot-reload. - Vendored upstream flux_sega/ and qwen_sega/ under external/sega/ - scripts/sega_flux_generate.py wrapper copied to release on build - src/client/cl_sega.c with cvars, sega_generate/status/cancel/view - Shared cl_pipeline.c/h for shell template expansion (FLUX/TRELLIS/SEGA) - USE_SEGA CMake option (default ON), docs/SEGA.md, runtime check script - cl_sega_enable defaults to 0 for classic mod compatibility Co-authored-by: Tim Fox <timfox@outlook.com>
User-facing commands, cvars, CMake flag, docs, and scripts now use spec_energy_* / USE_SPEC_ENERGY instead of sega_* / USE_SEGA. Vendored upstream moved to external/flux_spec_energy/ (upstream flux_sega/ layout unchanged). GitHub repo URL kept only as upstream reference in docs. Co-authored-by: Tim Fox <timfox@outlook.com>
- Add spec_energy_runtime_check to CTest, validate_ci_build, smoke_test - Fix cs_autoInit compat grep (Cvar_Get vs ri.Cvar_Get) - Document release wrappers in DEVELOPMENT_SETUP; cross-link TRELLIS.md Co-authored-by: Tim Fox <timfox@outlook.com>
- Upstream layout validator (flux_sega/, qwen_sega/, requirements.txt) - spec_energy_runtime_check runs layout check on vendored copy - COMPATIBILITY.md notes generative hooks default off Co-authored-by: Tim Fox <timfox@outlook.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Integrates rajabi2001/sega (Spectral-Energy Guided Attention for hi-res diffusion) as a runtime external pipeline in the idTech3 client, following the same pattern as FLUX and TRELLIS.
SEGA is not embedded in the engine — PyTorch/diffusers run out-of-process via
sega_flux_generate.py, orchestrated by console commands and optional async SDL background jobs.Changes
external/sega/(flux_sega/,qwen_sega/,requirements.txt)scripts/sega_flux_generate.py— idTech3 wrapper for SEGA FLUX generation (copied torelease/on build)src/client/cl_sega.c— job system, cvars, commands:sega_generate,sega_status,sega_cancel,sega_viewcl_sega_enable(default 0),cl_sega_async,cl_sega_repo, resolution/steps/seed/checkpoint, etc.src/client/cl_pipeline.c/h— shared shell template expansion extracted fromcl_main.cUSE_SEGACMake option (default ON)docs/SEGA.md,scripts/sega_runtime_check.sh, smoke/compat check updatesUsage
Validation
./scripts/compile_engine.sh vulkan— builds cleanly./scripts/sega_runtime_check.sh release— passessega_generate/cl_sega_enablesymbolscl_sega_enabledefaults to 0 (Q3/OA compat check)Note: Full
smoke_testcurrently fails on a pre-existingcs_autoInitcompat check unrelated to this PR.Requirements
sega) with PyTorch + diffusers perexternal/sega/requirements.txt