feat(flux): HF-Token in Diagnostic statt .env
Passwort-Feld in der FLUX-Section, mit Show/Hide-Toggle und kurzem Hinweis-Link zu den HuggingFace-Schritten (Lizenz-Agree + Token-Erzeugung). Wert wird in voice_config.json persistiert und per config-Broadcast an die flux-bridge gepusht; dort vor jedem from_pretrained als HF_TOKEN + HUGGING_FACE_HUB_TOKEN env gesetzt. HF_TOKEN aus .env.example + docker-compose.yml entfernt. Auch FLUX_MODEL aus compose raus — Default-Modell kommt jetzt komplett aus Diagnostic. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
+13
-2
@@ -509,8 +509,19 @@ async def run_loop(runner: FluxRunner) -> None:
|
||||
await _flux_queue.put(payload)
|
||||
elif mtype == "config":
|
||||
# Diagnostic-Broadcast (oder aria-bridge nach Reconnect).
|
||||
# Wir interessieren uns nur fuer fluxDefaultModel — die
|
||||
# Keywords nutzt das Brain, nicht wir.
|
||||
# HuggingFace-Token MUSS vor dem Modell-Swap gesetzt sein,
|
||||
# weil FluxPipeline.from_pretrained den Token aus der env
|
||||
# liest. Reihenfolge im selben Tick gewaehrleistet das.
|
||||
if "huggingfaceToken" in payload:
|
||||
tok = (payload.get("huggingfaceToken") or "").strip()
|
||||
if tok:
|
||||
os.environ["HF_TOKEN"] = tok
|
||||
os.environ["HUGGING_FACE_HUB_TOKEN"] = tok
|
||||
logger.info("[config] HF-Token gesetzt (len=%d)", len(tok))
|
||||
else:
|
||||
os.environ.pop("HF_TOKEN", None)
|
||||
os.environ.pop("HUGGING_FACE_HUB_TOKEN", None)
|
||||
logger.info("[config] HF-Token entfernt (leerer Wert)")
|
||||
tag = (payload.get("fluxDefaultModel") or "").strip()
|
||||
if tag:
|
||||
asyncio.create_task(_apply_default_change(tag))
|
||||
|
||||
Reference in New Issue
Block a user