Guía para principiantes: crea imágenes estilo Studio Ghibli con ComfyUI

La tendencia de imágenes estilo Studio Ghibli ha inundado las redes desde que OpenAI lanzó GPT-4o.

Mientras el servicio de OpenAI requiere una suscripción Plus de $20 mensuales, hoy aprenderás a crear estas mágicas imágenes de forma totalmente gratuita y sin límites usando ComfyUI. Esta guía está diseñada especialmente para principiantes que parten desde cero.

¿Qué necesitarás para comenzar?

Antes de sumergirnos en el proceso, veamos el equipo básico recomendado:

  • PC con Windows 10/11 (también funciona en Mac/Linux con ajustes)
  • Tarjeta gráfica NVIDIA con al menos 4GB VRAM (GTX 1050 Ti o superior)
  • 8GB de RAM (16GB recomendado)
  • 10GB de espacio libre en disco
  • Conexión a internet para descargar los modelos

¿No tienes una buena GPU? No te preocupes, al final de esta guía te mostraré alternativas online que funcionan en cualquier dispositivo.

Instalación paso a paso de ComfyUI

Paso 1: instalar Python

  1. Visita https://www.python.org/downloads/
  2. Descarga Python 3.10.x (¡importante marcar “Add Python to PATH” durante la instalación!)
  3. Verifica la instalación abriendo Símbolo del sistema (cmd) y escribiendo:
    python --version

Paso 2: instalar Git

  1. Descarga Git desde https://git-scm.com/downloads
  2. Instálalo con las opciones predeterminadas

Paso 3: descargar e instalar ComfyUI

  1. Crea una carpeta donde instalarás ComfyUI (ejemplo: C:\ComfyUI)
  2. Haz clic derecho dentro de esta carpeta y selecciona “Git Bash Here”
  3. En la ventana que se abre, copia y pega este comando:
    git clone https://github.com/comfyanonymous/ComfyUI.git .
  4. Una vez finalizado, escribe este comando para instalar las dependencias:
    pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
  5. Luego:
    pip install -r requirements.txt

Paso 4: instalar ComfyUI Manager (facilitará todo)

  1. Crea una carpeta llamada “custom_nodes” dentro de tu directorio de ComfyUI
  2. Abre Git Bash en esta carpeta nueva
  3. Ejecuta:
    git clone https://github.com/ltdrdata/ComfyUI-Manager.git

Paso 5: iniciar ComfyUI por primera vez

  1. Regresa a la carpeta principal de ComfyUI
  2. Si no encuentras el archivo “run_nvidia_gpu.bat”, crea un nuevo archivo de texto y copia:
    @echo off
    cd /D %~dp0
    set PYTHONPATH=%~dp0
    python main.py --force-fp16
    pause
  3. Guárdalo como “run_nvidia_gpu.bat” (asegúrate de que la extensión sea .bat y no .txt)
  4. Haz doble clic en “run_nvidia_gpu.bat”
  5. Cuando veas “Starting server at http://127.0.0.1:8188”, abre tu navegador y visita esa dirección

Descarga de modelos necesarios para el estilo Ghibli

Para crear imágenes estilo Ghibli, necesitarás estos modelos específicos:

Usando ComfyUI Manager (método recomendado)

  1. En la interfaz de ComfyUI, haz clic en el botón “Manager” (esquina superior derecha)
  2. Si aparece el error “This action is not allowed with this security level configuration”:
    • Localiza el archivo config.ini (generalmente en ComfyUI/custom_nodes/ComfyUI-Manager/)
    • Cambia security_level = normal a security_level = weak
    • Guarda y reinicia ComfyUI
  3. En la pestaña “Models”, descarga:
    • Modelo base: Busca “flux” y descarga “Flux FP8” (versión compacta recomendada)
    • LoRA Ghibli: Busca específicamente “flux-chatgpt-ghibli-lora” o “Studio_Ghibli_Flux.safetensors”
    • VAE: Busca y descarga “vae-ft-mse-840000-ema-pruned”
  4. En la pestaña “Custom Nodes”, instala:
    • “ComfyUI’s ControlNet Auxiliary Preprocessing”
    • “Image Caption”
    • “Saturation” (para post-procesamiento)
    • “ImageNoiseGaussian” (para efectos)
  5. Si algunos nodos no aparecen automáticamente, instálalos manualmente:
    • UnetLoaderGGUF: git clone https://github.com/city96/ComfyUI-GGUF.git
    • DualCLIPLoaderGGUF: Incluido en el mismo repositorio anterior
    • ImageNoiseGaussian: Descargar desde este Gist
    • Saturation: Descargar desde este Gist

Construcción del workflow estilo Ghibli

Una vez instalados todos los componentes, vamos a crear el workflow:

Carga de imagen original

  1. Haz clic derecho en un espacio vacío → “Add Node” → “Image” → “Load Image”
  2. Haz clic en el nodo y sube la foto que quieres transformar

Preprocesamiento para mantener estructura

  1. Añade un nodo “AIO_Preprocessor”
  2. Conecta la salida “IMAGE” de “Load Image” a la entrada “image” de “AIO_Preprocessor”
  3. Configúralo para usar “DepthAnythingV2Preprocessor” con tamaño 1024

Configuración del modelo principal

  1. Añade los nodos principales:
    • “UnetLoaderGGUF” (selecciona el modelo Flux)
    • “DualCLIPLoaderGGUF” (selecciona los archivos correspondientes)
    • “VaeGGUF” (selecciona el VAE descargado)
    • “ControlNetLoader” (selecciona “Flux_ControlNet-Union-Pro.safetensors”)
  2. Añade un nodo “LoraLoader”:
    • Conecta las salidas de los modelos anteriores
    • Selecciona “Studio_Ghibli_Flux.safetensors”
    • Establece el “strength” en 0.85

Configuración del prompt

  1. Añade un nodo “CLIPTextEncode” para el prompt positivo:
    • Conéctalo a la salida “CLIP” del “LoraLoader”
    • Escribe un prompt que incluya “ghibli style” (ejemplo: “beautiful landscape, ghibli style, soft colors, detailed, whimsical”)
  2. Añade otro “CLIPTextEncode” para el prompt negativo:
    • Conéctalo también a la salida “CLIP”
    • Escribe “blurry, bad quality, deformed”

Aplicación del ControlNet

  1. Añade “ControlNetApplyAdvanced”
  2. Conecta:
    • Prompt positivo a “positive”
    • Prompt negativo a “negative”
    • ControlNet a “control_net”
    • Imagen procesada a “image”
    • VAE a “vae”

Configuración de la generación

  1. Añade “EmptySD3LatentImage” (tamaño recomendado: 768×768)
  2. Añade “KSampler”
  3. Conecta todos los elementos:
    • Modelo → KSampler
    • Condicionamiento positivo/negativo → KSampler
    • Latent Image → KSampler
  4. Configura el KSampler:
    • Seed: cualquier número fijo para resultados consistentes
    • Steps: 20
    • CFG: 7.5
    • Sampler: DPM++ SDE Karras
    • Denoise: 0.75

Visualización y post-procesamiento

  1. Añade “VAEDecode” conectado a la salida del KSampler
  2. Añade “ImageNoiseGaussian”:
    • Configura nivel de ruido: 0.15
    • Activa “monocromático”
  3. Añade “> Saturation”:
    • Establece valor: 1.2
  4. Finaliza con “PreviewImage” conectado a la última salida

Solución de problemas comunes

Problema Solución
Error “CUDA out of memory” Reduce el tamaño de imagen a 512×512 o usa la versión FP8/FP16
No se ve estilo Ghibli Verifica que “ghibli” esté en el prompt y el LoRA bien conectado
Errores en nodos Comprueba que todos los nodos personalizados estén instalados correctamente
Resultados poco detallados Aumenta el número de steps o ajusta CFG entre 7-8

Alternativas online para crear imágenes estilo Ghibli

Si prefieres no instalar nada, estas opciones te permiten crear imágenes Ghibli directamente desde tu navegador:

Google Colab con Stable Diffusion

Hugging Face Spaces

Replicate.com

Workflow JSON para implementación directa

Para quienes prefieran importar directamente el workflow, aquí está el código JSON completo optimizado para el estilo Ghibli con mínimos requisitos:


{
"id": "ghibli-style-minimal-workflow",
"revision": 0,
"last_node_id": 15,
"last_link_id": 20,
"nodes": [
{
"id": 1,
"type": "LoadImage",
"pos": [-600, -300],
"size": [315, 314],
"inputs": [],
"outputs": [
{"name": "IMAGE", "type": "IMAGE", "links": [1]},
{"name": "MASK", "type": "MASK", "links": null}
],
"widgets_values": ["input_image.png", "image", ""]
},
{
"id": 2,
"type": "UnetLoaderGGUF",
"pos": [-600, 100],
"size": [315, 58],
"inputs": [],
"outputs": [
{"name": "MODEL", "type": "MODEL", "links": [2]}
],
"widgets_values": ["Flux1/flux-hyp8-Q8_0.gguf"]
},
{
"id": 3,
"type": "DualCLIPLoaderGGUF",
"pos": [-600, 200],
"size": [310, 110],
"inputs": [],
"outputs": [
{"name": "CLIP", "type": "CLIP", "links": [3]}
],
"widgets_values": ["Flux.1/ViT-L-14-TEXT-detail-improved-hiT-GmP-TE-only-HF.safetensors", "Flux.1/t5-v1_1-xxl-encoder-Q8_0.gguf", "flux"]
},
{
"id": 4,
"type": "VaeGGUF",
"pos": [-600, 350],
"size": [315, 58],
"inputs": [],
"outputs": [
{"name": "VAE", "type": "VAE", "links": [4]}
],
"widgets_values": ["Flux.1_ae.sft"]
},
{
"id": 5,
"type": "LoraLoader",
"pos": [-250, 200],
"size": [315, 130],
"inputs": [
{"name": "model", "type": "MODEL", "link": 2},
{"name": "clip", "type": "CLIP", "link": 3}
],
"outputs": [
{"name": "MODEL", "type": "MODEL", "links": [5]},
{"name": "CLIP", "type": "CLIP", "links": [6]}
],
"widgets_values": ["Flux.1/Studio_Ghibli_Flux.safetensors", 0.85, 0.85]
},
{
"id": 6,
"type": "AIO_Preprocessor",
"pos": [-250, -300],
"size": [410, 82],
"inputs": [
{"name": "image", "type": "IMAGE", "link": 1}
],
"outputs": [
{"name": "IMAGE", "type": "IMAGE", "links": [7]}
],
"widgets_values": ["DepthAnythingV2Preprocessor", 1024]
},
{
"id": 7,
"type": "ControlNetLoader",
"pos": [-250, -200],
"size": [440, 58],
"inputs": [],
"outputs": [
{"name": "CONTROL_NET", "type": "CONTROL_NET", "links": [8]}
],
"widgets_values": ["Flux.1/Shakker-Labs-ControlNet-Union-Pro/Flux_ControlNet-Union-Pro.safetensors"]
},
{
"id": 8,
"type": "CLIPTextEncode",
"pos": [100, 200],
"size": [315, 58],
"inputs": [
{"name": "clip", "type": "CLIP", "link": 6},
{"name": "text", "type": "STRING", "link": null}
],
"outputs": [
{"name": "CONDITIONING", "type": "CONDITIONING", "links": [9]}
],
"widgets_values": ["beautiful landscape, ghibli style, soft colors, detailed, whimsical"]
},
{
"id": 9,
"type": "CLIPTextEncode",
"pos": [100, 300],
"size": [315, 58],
"inputs": [
{"name": "clip", "type": "CLIP", "link": 6},
{"name": "text", "type": "STRING", "link": null}
],
"outputs": [
{"name": "CONDITIONING", "type": "CONDITIONING", "links": [10]}
],
"widgets_values": ["blurry, bad quality, deformed"]
},
{
"id": 10,
"type": "ControlNetApplyAdvanced",
"pos": [100, -200],
"size": [315, 186],
"inputs": [
{"name": "positive", "type": "CONDITIONING", "link": 9},
{"name": "negative", "type": "CONDITIONING", "link": 10},
{"name": "control_net", "type": "CONTROL_NET", "link": 8},
{"name": "image", "type": "IMAGE", "link": 7},
{"name": "vae", "type": "VAE", "link": 4}
],
"outputs": [
{"name": "positive", "type": "CONDITIONING", "links": [11]},
{"name": "negative", "type": "CONDITIONING", "links": [12]}
],
"widgets_values": [1, 0, 1]
},
{
"id": 11,
"type": "EmptySD3LatentImage",
"pos": [100, 400],
"size": [320, 110],
"inputs": [],
"outputs": [
{"name": "LATENT", "type": "LATENT", "links": [13]}
],
"widgets_values": [768, 768, 1]
},
{
"id": 12,
"type": "KSampler",
"pos": [450, 100],
"size": [315, 450],
"inputs": [
{"name": "model", "type": "MODEL", "link": 5},
{"name": "positive", "type": "CONDITIONING", "link": 11},
{"name": "negative", "type": "CONDITIONING", "link": 12},
{"name": "latent_image", "type": "LATENT", "link": 13}
],
"outputs": [
{"name": "LATENT", "type": "LATENT", "links": [14]}
],
"widgets_values": [42, "fixed", 20, 7.5, "euler", "normal", 1]
},
{
"id": 13,
"type": "VAEDecode",
"pos": [800, 100],
"size": [210, 50],
"inputs": [
{"name": "samples", "type": "LATENT", "link": 14},
{"name": "vae", "type": "VAE", "link": 4}
],
"outputs": [
{"name": "IMAGE", "type": "IMAGE", "links": [15]}
],
"widgets_values": []
},
{
"id": 14,
"type": "ImageNoiseGaussian",
"pos": [800, 200],
"size": [315, 130],
"inputs": [
{"name": "images", "type": "IMAGE", "link": 15}
],
"outputs": [
{"name": "IMAGE", "type": "IMAGE", "links": [16]}
],
"widgets_values": [0.15, "true", "false", "rgb"]
},
{
"id": 15,
"type": "> Saturation",
"pos": [800, 350],
"size": [315, 78],
"inputs": [
{"name": "image", "type": "IMAGE", "link": 16},
{"name": "mask_opt", "type": "MASK", "link": null}
],
"outputs": [
{"name": "image", "type": "IMAGE", "links": [17]}
],
"widgets_values": [1.2]
},
{
"id": 16,
"type": "PreviewImage",
"pos": [1150, 100],
"size": [500, 500],
"inputs": [
{"name": "images", "type": "IMAGE", "link": 17}
],
"outputs": [],
"widgets_values": []
}
],
"links": [
[1, 1, 0, 6, 0, "IMAGE"],
[2, 2, 0, 5, 0, "MODEL"],
[3, 3, 0, 5, 1, "CLIP"],
[4, 4, 0, 10, 4, "VAE"],
[5, 5, 0, 12, 0, "MODEL"],
[6, 5, 1, 8, 0, "CLIP"],
[6, 5, 1, 9, 0, "CLIP"],
[7, 6, 0, 10, 3, "IMAGE"],
[8, 7, 0, 10, 2, "CONTROL_NET"],
[9, 8, 0, 10, 0, "CONDITIONING"],
[10, 9, 0, 10, 1, "CONDITIONING"],
[11, 10, 0, 12, 1, "CONDITIONING"],
[12, 10, 1, 12, 2, "CONDITIONING"],
[13, 11, 0, 12, 3, "LATENT"],
[14, 12, 0, 13, 0, "LATENT"],
[15, 13, 0, 14, 0, "IMAGE"],
[16, 14, 0, 15, 0, "IMAGE"],
[17, 15, 0, 16, 0, "IMAGE"]
],
"groups": [
{
"id": 1,
"title": "Ghibli Style Workflow",
"bounding": [-650, -350, 2350, 950],
"color": "#3f789e"
}
]
}

Prompts recomendados para resultados óptimos

Para aprovechar al máximo el estilo Ghibli, prueba estos prompts probados:

  • Para paisajes: “Paisaje montañoso con río y bosque, estilo ghibli, atardecer cálido, inspirado en Mi Vecino Totoro, cielo detallado, nubes esponjosas”
  • Para retratos: “Retrato de joven mujer con cabello largo, estilo ghibli, iluminación suave, inspirado en El Viaje de Chihiro, expresión serena”
  • Para escenas urbanas: “Calle de pueblo pequeño con tiendas tradicionales, estilo ghibli, atardecer, farolas encendidas, inspirado en El Castillo Ambulante”

Conclusión

El encanto de Studio Ghibli ya no está limitado a quienes pueden pagar una suscripción premium. Con ComfyUI, cualquier persona con conocimientos técnicos básicos puede transformar sus fotografías en arte inspirado en las películas de Miyazaki.

Aunque la curva de aprendizaje inicial puede parecer empinada, los resultados valen absolutamente el esfuerzo. Las imágenes producidas capturan perfectamente la esencia del estilo Ghibli: colores suaves, líneas delicadas y ese aire mágico tan característico.

¿Te animas a probar esta técnica? Comparte tus creaciones y descubre cómo tus fotografías cotidianas pueden transformarse en escenas salidas directamente de un mundo de fantasía.

Total
0
Shares
Previous Post
Revisión: The Unholy Priest – Un simulador de terror sobrenatural con gestión funeraria

Revisión: The Unholy Priest – Un simulador de terror sobrenatural con gestión funeraria

Next Post
Podcast ONE: 4 de abril de 2025

Podcast ONE: 4 de abril de 2025

Related Posts