diff --git a/README.md b/README.md index 3e0efc6..358684b 100644 --- a/README.md +++ b/README.md @@ -59,7 +59,7 @@ Nodos dedicados para calcular resoluciones estrictamente divisibles y proteger t - **`🎬 ResTool 64x (Hunyuan)`**: Múltiplos de 64. Base nativa ~921,600 px. **Todas las herramientas comparten la misma interfaz:** -- **Inputs:** `aspect_ratio` (ej. 16:9, 9:16), `base_resolution` (INT) +- **Inputs:** `aspect_ratio` (ej. 16:9, 9:16), `base_resolution` (Campo numérico INT libre, puedes escribir el valor exacto que necesites, ej. 832 o 1024) - **Outputs:** `width` (INT), `height` (INT), `debug_info` (STRING) > **🛡️ Escudo de Megapíxeles (NUEVO en v1.5.1):** Cada herramienta conoce el "suelo de entrenamiento" (Training Floor) de su modelo. Si solicitas una resolución extrema que cae por debajo del área mínima vital, el nodo escalará primero la resolución proporcionalmente hacia arriba para proteger la generación contra artefactos, y luego aplicará la divisibilidad estricta. diff --git a/README_EN.md b/README_EN.md index ebf5236..41508ef 100644 --- a/README_EN.md +++ b/README_EN.md @@ -59,7 +59,7 @@ Dedicated nodes to calculate strictly divisible safe resolutions, shielding your - **`🎬 ResTool 64x (Hunyuan)`**: Multiples of 64. Native base ~921,600 px. **All Tools share the same interface:** -- **Inputs:** `aspect_ratio` (e.g. 16:9, 9:16), `base_resolution` (INT) +- **Inputs:** `aspect_ratio` (e.g., 16:9, 9:16), `base_resolution` (Free INT numerical field, write the exact value you need, e.g., 832 or 1024) - **Outputs:** `width` (INT), `height` (INT), `debug_info` (STRING) > **🛡️ Megapixel Shield (NEW in v1.5.1):** Each tool knows its model's "training floor" area. If you request an extreme aspect ratio that falls below this vital threshold, the node will first scale the resolution up proportionally to protect the generation against melting artifacts, and only then apply strict divisibility. diff --git a/tools.py b/tools.py index 99c50d5..da9b8d2 100644 --- a/tools.py +++ b/tools.py @@ -8,7 +8,8 @@ class BaseResolutionTool: return { "required": { "aspect_ratio": (["16:9", "9:16", "1:1", "4:3", "3:4", "21:9", "3:2", "2:3"],), - "base_resolution": (["256", "360", "480", "512", "720", "768", "1024", "1080", "1280", "1440", "1920", "2048", "2160"], {"default": "1024"}), + # 💡 Cambio clave: Dejamos de usar combo y pasamos a un campo INT libre + "base_resolution": ("INT", {"default": 1024, "min": 128, "max": 8192, "step": 8}), } } @@ -20,7 +21,7 @@ class BaseResolutionTool: def get_resolution(self, aspect_ratio, base_resolution): div = self.DIVISOR min_pixels = getattr(self, "MIN_PIXELS", 0) - longest_side = int(base_resolution) + longest_side = int(base_resolution) # Mantenemos el casting por seguridad w_str, h_str = aspect_ratio.split(':') w_ratio = float(w_str) @@ -81,4 +82,4 @@ class ResTool32x(BaseResolutionTool): @register_node class ResTool64x(BaseResolutionTool): DIVISOR = 64 - MIN_PIXELS = 921600 # Hunyuan (Equivale a 1280x720) \ No newline at end of file + MIN_PIXELS = 921600 # Hunyuan (Equivale a 1280x720)