# ComfyUI + FLUX.1-dev en tu Mac

Setup para generar imágenes con **FLUX.1-dev** (la versión estándar de Black Forest Labs)
en un Mac con Apple Silicon. Tu M4 con 128 GB lo mueve de sobra en máxima calidad (fp16).

## Qué hay en esta carpeta

- `setup.sh` — instala ComfyUI y descarga todos los modelos (ejecútalo una sola vez).
- `run.sh` — arranca ComfyUI cada vez que quieras usarlo.
- `flux_dev_workflow.json` — workflow listo para importar (texto → imagen).

## Antes de empezar (importante)

FLUX.1-dev está protegido en Hugging Face, así que necesitas:

1. Una cuenta en https://huggingface.co
2. Aceptar la licencia aquí: https://huggingface.co/black-forest-labs/FLUX.1-dev
   (botón "Agree and access repository")
3. Un token de acceso: Settings → Access Tokens → New token (tipo "Read").

El script te pedirá ese token durante la instalación.

## Instalación (una vez)

Abre la app **Terminal** y pega:

```bash
cd ~/Desktop/Flux2
chmod +x setup.sh run.sh
./setup.sh
```

El script va a:
- clonar ComfyUI dentro de `Flux2/ComfyUI`
- crear un entorno de Python aislado (venv)
- instalar PyTorch con soporte de la GPU de Apple (MPS)
- pedirte el token de Hugging Face
- descargar el modelo, el VAE y los text encoders (son varios GB, ten paciencia)

## Usarlo (cada vez)

```bash
cd ~/Desktop/Flux2
./run.sh
```

Cuando veas que arranca, abre en el navegador: **http://127.0.0.1:8188**

Para parar ComfyUI, vuelve a la Terminal y pulsa `Ctrl + C`.

## Cargar el workflow

1. En la interfaz de ComfyUI, arrastra el archivo `flux_dev_workflow.json`
   a la ventana del navegador (o menú **Workflow → Open**).
2. Escribe lo que quieras en el cuadro de texto del prompt (el de arriba).
3. Pulsa **Queue Prompt** y espera. La primera imagen tarda más porque carga el modelo en memoria.

### Ajustes útiles del workflow

- **Resolución**: en el nodo *EmptySD3LatentImage* (1024×1024 por defecto). Flux va bien hasta 1024–1536.
- **Pasos (steps)**: 20 va bien; sube a 25–30 para más detalle.
- **Guidance**: nodo *FluxGuidance*, 3.5 es buen punto de partida (más alto = se ciñe más al prompt).
- **Seed**: en el *KSampler*; ponlo en "fixed" si quieres repetir exactamente una imagen.

## Combinar 2 imágenes con texto (FLUX.1 Kontext)

Si quieres subir **dos imágenes** y que el modelo las junte y las edite según una
instrucción de texto (p. ej. "pon a la persona de la imagen 1 en el paisaje de la
imagen 2"), usa el modelo **FLUX.1 Kontext-dev**. Reutiliza el VAE y los text
encoders que ya tienes; solo hay que bajar el modelo Kontext.

### Instalación (una vez)

1. Acepta la licencia de Kontext (es un repo distinto):
   https://huggingface.co/black-forest-labs/FLUX.1-Kontext-dev → "Agree and access repository".
2. En la Terminal:

   ```bash
   cd ~/Desktop/Flux2
   chmod +x setup_kontext.sh
   ./setup_kontext.sh
   ```

   Descarga el modelo (~24 GB) y deja el workflow listo.

### Uso

1. Arranca ComfyUI: `./run.sh` → abre http://127.0.0.1:8188
2. Carga el workflow **`flux_kontext_2img_workflow.json`** (arrástralo a la ventana).
3. En los dos nodos **Load Image**, sube tu imagen 1 y tu imagen 2.
4. En el cuadro de texto escribe la instrucción **en inglés** (Kontext entiende mejor
   el inglés). Sé claro y directo, p. ej.:
   - "Place the person from the first image into the scene of the second image"
   - "Combine both images into one cohesive photo, matching the lighting"
   - "Put the product from image 1 onto the table in image 2"
5. **Queue Prompt**.

### Ajustes (Kontext)

- **Guidance**: nodo *FluxGuidance*, ~2.5 va bien para edición (distinto del 3.5 del modelo base).
- **Orientación al unir**: en el nodo *Image Stitch*, `direction` controla si pega las
  imágenes en horizontal ("right") o vertical ("down").
- Si un nodo (Image Stitch, FluxKontextImageScale, ReferenceLatent) apareciera en rojo
  por versión antigua, actualiza ComfyUI (`git -C ~/Desktop/Flux2/ComfyUI pull`) o usa la
  plantilla integrada: **Workflow → Browse Templates → Flux → Flux Kontext Dev**.

## Notas

- FLUX.1-dev y FLUX.1-Kontext-dev tienen licencia de **uso no comercial**.
- Si la descarga se corta, vuelve a ejecutar `./setup.sh`: reanuda lo que falte.
- ¿Quieres ir más rápido y con menos calidad? Existe **FLUX.1-schnell** (4 pasos, sin token gated).
  Dímelo y te adapto el script.
