"""LoraRef — referencia a un adaptador LoRA para generacion de imagenes.""" from __future__ import annotations try: from pydantic import BaseModel, ConfigDict class LoraRef(BaseModel): """Referencia a un adaptador LoRA (Low-Rank Adaptation). Un LoRA modifica el comportamiento de un modelo base sin cambiar sus pesos originales. Se aplica multiplicando matrices de rango bajo durante la inferencia. Attributes: path: Ruta al archivo .safetensors o .bin del adaptador LoRA. Puede ser absoluta o relativa al directorio de modelos. weight: Factor de escala global del LoRA. 1.0 aplica el LoRA con su fuerza original. 0.0 lo desactiva completamente. Rango tipico: 0.0 a 1.5. scale: Override del alpha del LoRA (escala de rango). None usa el alpha del propio archivo. Util para ajuste fino sin reentrenar. """ model_config = ConfigDict(frozen=True) path: str weight: float = 1.0 scale: float | None = None except ImportError: from dataclasses import dataclass @dataclass(frozen=True) class LoraRef: # type: ignore[no-redef] """Referencia a un adaptador LoRA (fallback dataclass). Attributes: path: Ruta al archivo del adaptador LoRA (.safetensors o .bin). weight: Factor de escala global. Rango tipico 0.0-1.5. Por defecto 1.0. scale: Override del alpha. None usa el alpha del archivo. """ path: str weight: float = 1.0 scale: float | None = None