Seguridad en ComfyUI-WD14-Tagger: Despliegue Local y Gestión de Modelos

Seguridad en ComfyUI-WD14-Tagger: Despliegue Local y Gestión de Modelos

ComfyUI-WD14-Tagger es una extensión para ComfyUI que extrae etiquetas de tipo booru de imágenes. Esta guía cubre aspectos de seguridad durante su implementación local, protección de datos y estrategias de caché de modelos.

Implemnetación en Entorno Local

El despliegue local elimina la necesidad de enviar datos a servidores externos. El proceso de instalación implica:

  1. Clonar el repositorio: ``` git clone https://gitcode.com/gh_mirrors/co/ComfyUI-WD14-Tagger
  2. Instalar deepndencias: ``` cd ComfyUI-WD14-Tagger pip install -r requirements.txt
  3. Configurar el directorio de modelos. El código gestiona la ruta automáticamente: ``` if "wd14_tagger" in folder_paths.folder_names_and_paths: ruta_modelos = folder_paths.get_folder_paths("wd14_tagger")[0] if not os.path.exists(ruta_modelos): os.makedirs(ruta_modelos) else: ruta_modelos = get_ext_dir("models", mkdir=True)
    
    

Protección de Datos Durante el Procesamiento

Todas las operaciones se ejecutan localmente. La función principal procesa imágenes sin transmitirlas externamente:

def generar_etiquetas(imagen, modelo, umbral, umbral_personaje, excluir="", cambiar_guion=False, coma_final=False):
    datos_imagen = imagen * 255
    array_datos = np.array(datos_imagen, dtype=np.uint8)
    barra_progreso = comfy.utils.ProgressBar(array_datos.shape[0])
    resultados = []
    for idx in range(array_datos.shape[0]):
        img_pil = Image.fromarray(array_datos[idx])
        etiquetas = wait_for_async(lambda: etiquetar(img_pil, modelo, umbral, umbral_personaje, excluir, cambiar_guion, coma_final))
        resultados.append(etiquetas)
        barra_progreso.update(1)
    return {"ui": {"etiquetas": resultados}, "result": (resultados,)}

Para excluir etiquetas específicas, el sistema filtra según parámetros configurables:

exclusiones = [termino.strip() for termino in excluir.lower().split(",")]
etiquetas_filtradas = [t for t in todas_etiquetas if t[0] not in exclusiones]

Estrategias de Caché de Modelos

Los modelos se almacenan localmente para evitar descargas repetidas. La función de descarga gestiona tanto archivos ONNX como CSV:

async def descargar_modelo(nombre_modelo, id_cliente, nodo):
    await descargar_a_archivo(
        f"{url}model.onnx", os.path.join(ruta_modelos, f"{nombre_modelo}.onnx"), callback_actualizacion, sesion=session)
    await descargar_a_archivo(
        f"{url}selected_tags.csv", os.path.join(ruta_modelos, f"{nombre_modelo}.csv"), callback_actualizacion, sesion=session)

Para listar modelos almacenados:

def modelos_instalados():
    archivos_onnx = [f for f in os.listdir(ruta_modelos) if f.endswith(".onnx")]
    modelos_validos = [m for m in archivos_onnx if os.path.exists(os.path.join(ruta_modelos, os.path.splitext(m)[0] + ".csv"))]
    return modelos_validos

Se puede configurar un mirror para acelerar descargas mediante la variable de entorno HF_ENDPOINT:

endpoint_hf = os.getenv("HF_ENDPOINT", configuracion_default["HF_ENDPOINT"])

Etiquetas: ComfyUI WD14-Tagger ONNX Python etiquetado-imágenes

Publicado el 6-30 03:14