ModelScope ofrece un entorno de computación en la nube optimizado para inteligencia artificial que permite ejecutar modelos complejos como Stable Diffusion. Para habilitar una interfaz gráfica accesible desde cualquier navegador externo, es necesario realizar el despliegue del proyecto y configurar un túnel de red (network tunneling).
- Preparación del Entorno y Obtención del Código
Una vez iniciada la instancia con GPU en ModelScope, el primer paso consiste en clonar el repositorio principal y preparar la estructura de directorios necesaria para los pesos del modelo.
# Clonar el repositorio oficial de Stable Diffusion WebUI
!git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
# Acceder al directorio de modelos y descargar los pesos v1.5
%cd stable-diffusion-webui/models/Stable-diffusion
!git clone https://www.modelscope.cn/zhiheng/v1-5-pruned-emaonly.safetensors.git
# Configuración de los componentes CLIP necesarios para el procesamiento de prompts
%cd ../..
!mkdir -p openai
%cd openai
!git clone https://www.modelscope.cn/AI-ModelScope/clip-vit-large-patch14.git
- Ajustes de Configuración para Entornos de Servidor
Debido a que ModelScope opera bajo el usuario root, se deben modificar los scripts de inicio para permitir la ejecución y evitar validaciones de hardware innecesarias durante la instalación inicial.
Modificación de permisos de ejecución
Es necesario editar el archivo webui.sh. Localice la sección que valida el usuario root y coméntela para omitir la restricción de seguridad:
# Ejemplo de modificación lógica en el script webui.sh
# Localizar y comentar las líneas que impiden la ejecución como root
# sed -i 's/can_run_as_root=0/can_run_as_root=1/g' webui.sh
Configuración de variables de entorno
Edite el archivo webui-user.sh para añadir parámetros de compatibilidad:
# En webui-user.sh, establecer los argumentos de ejecución
export COMMANDLINE_ARGS="--skip-torch-cuda-test --precision full --no-half"
- Ejecución del Servicio
Desde la terminal del notebook, ejecute el script principal. Esto creará el entorno virtual de Python e instalará las dependencias de Torch y Gradio requeridas.
# Iniciar el proceso de despliegue
./webui.sh
Al finalizar, el sistema indicará que el servicio se está ejecutando localmente en el puerto 7860.
- Implementación de Acceso Remoto con Cpolar
Dado que la instancia de ModelScope no tiene una IP pública expuesta, utilizaremos cpolar para crear un túnel seguro que redirija el tráfico de una URL pública a nuestro puerto local.
Instalación y Autenticación
Descargue el binario de cpolar para Linux y configure su token de acceso (disponible en el panel de control de cpolar):
# Descargar y descomprimir la herramienta de túnel
!wget https://static.cpolar.com/downloads/releases/3.3.12/cpolar-stable-linux-amd64.zip
!unzip cpolar-stable-linux-amd64.zip
# Vincular la cuenta mediante el authtoken
!./cpolar authtoken [SU_TOKEN_AQUI]
Activación del Túnel HTTP
Abra una nueva terminal en el entorno y ejecute el siguiente comando para exponer el puerto del WebUI:
# Crear el túnel hacia el puerto local 7860
./cpolar http 7860
La terminal mostrará una direccción URL con prefijo http:// o https://. Al copiar y pegar esta dirección en su navegador local, podrá interactuar con la interfaz de Stable Diffusion de forma remota, permitiendo la generación de imágenes utilizando la potencia de la GPU de ModelScope.