QUITAR FILTRO NSFW EN FACEFUSION 3.4.1
Hola amigos…Para quitar el filtro nfsw de la version 3.4.1, despues de analizar el codigo y varias pruebas pude quitar el fucking filter…Intentare ser detallado para que no queden dudas…Les dejo los archivos ya modificados y funcionando si no les gusta el codigo. (Recuerden hacer una copia de sus archivos originales antes de cualquier modificación)
RESUMEN DE MODIFICACIONES PARA DESACTIVAR EL FILTRO NSFW
Las modificaciones se realizaron en dos archivos principales para anular el filtro de contenido en tres niveles:
la lógica de detección, la verificación de integridad y el bloqueo de errores de la herramienta externa (FFmpeg).
1. Archivo: content_analyser.py
Desactivar la lógica de detección del filtro (NSFW) forzándola a siempre reportar «contenido seguro».
Lineas 116-121, Aprox…
Se reemplazó la lógica de consenso que llama a los 3 modelos (is_nsfw_1, is_nsfw_2, is_nsfw_3) y la condición de return final por un simple return False.
def detect_nsfw(vision_frame : VisionFrame) -> bool:
# Lógica del filtro de IA ANULADA:
# is_nsfw_1 = detect_with_nsfw_1(vision_frame)
# is_nsfw_2 = detect_with_nsfw_2(vision_frame)
# is_nsfw_3 = detect_with_nsfw_3(vision_frame)
# return is_nsfw_1 and is_nsfw_2 or is_nsfw_1 and is_nsfw_3 or is_nsfw_2 and is_nsfw_3
return False # <— ANULACIÓN CLAVE
2. Archivo: core.py
Propósito: Anular la verificación de integridad y los puntos de bloqueo de errores de procesamiento.
2.1. Anulación de la Verificación de Integridad (HASH Check)
Linea 134 Aprox.
Se forzó la condición de éxito al final de la función para ignorar que el hash del archivo content_analyser.py ha cambiado.
# Líneas 131-134 aproximadamente:
content_analyser_content = inspect.getsource(content_analyser).encode()
content_analyser_hash = hash_helper.create_hash(content_analyser_content)
# Se anula la verificación del hash, forzando la condición a True.
# return all(module.pre_check() for module in common_modules) and content_analyser_hash == ‘803b5ec7’
return all(module.pre_check() for module in common_modules) and True # <— ANULACIÓN CLAVE
2.2. Anulación del Bloqueo de Procesamiento (IMAGEN – process_image)
Lineas 393-394
Se comentó la llamada a analyse_image para evitar el primer bloqueo explícito de NSFW.
Lineas 409-414
Se eliminó el if/else de copy_image y se forzó el código a seguir el camino del éxito para ignorar el error de FFmpeg.
# … (código previo)
logger.info(wording.get(‘copying_image’).format(resolution = pack_resolution(temp_image_resolution)), __name__)
# ANULACIÓN: Se llama a la función, pero se ignora su retorno.
copy_image(state_manager.get_item(‘target_path’), temp_image_resolution)
logger.debug(wording.get(‘copying_image_succeeded’), __name__)
# El ‘else’ y el ‘return 1’ de error han sido eliminados.
temp_image_path = get_temp_file_path(state_manager.get_item(‘target_path’))
# … (código posterior)
2.3. Anulación del Bloqueo de Procesamiento (VIDEO – process_video)
Lineas 440-441
Se comentó la llamada a analyse_video para evitar el bloqueo explícito de NSFW.
Lineas 455-463
Se eliminó el if/else de extract_frames y se forzó el código a seguir el camino del éxito para ignorar el error de FFmpeg.
# … (código previo)
logger.info(wording.get(‘extracting_frames’).format(resolution = pack_resolution(temp_video_resolution), fps = temp_video_fps), __name__)
# ANULACIÓN: Se llama a la función, pero se ignora su retorno.
extract_frames(state_manager.get_item(‘target_path’), temp_video_resolution, temp_video_fps, trim_frame_start, trim_frame_end)
if True: # <— FORZAMOS LA CONDICIÓN A ÉXITO
logger.debug(wording.get(‘extracting_frames_succeeded’), __name__)
else:
# Lógica de error original, que ahora nunca se ejecuta.
if is_process_stopping():
return 4
logger.error(wording.get(‘extracting_frames_failed’), __name__)
process_manager.end()
return 1
temp_frame_paths = resolve_temp_frame_paths(state_manager.get_item(‘target_path’))
# … (código posterior)
Con estas modificaciones no deberia haber problemas de inicio de la aplicacion ni de bloqueos al generar imagen y video…Probado y Funcionando….
Disfruten el Sitio