Diferència entre revisions de la pàgina «Models locals IA»

De wikijoan
Salta a la navegació Salta a la cerca
m
Línia 509: Línia 509:
  
 
==Model FLUX.1 Kontext [dev]==
 
==Model FLUX.1 Kontext [dev]==
−
- A ComfyUI, ves a Workflow → Browse Templates i busca Flux Kontext Dev (dins l’apartat Flux).
+
-- A ComfyUI, ves a Workflow → Browse Templates i busca Flux Kontext Dev (dins l’apartat Flux).
 
- Quan facis Run et dirà que falta el model. Descarrega flux1-dev-kontext_fp8_scaled.safetensors i mou-lo a models/diffusion_models/, com vas fer ahir. Si et demana algun altre fitxer, mira si ja el tens a text_encoders o vae.
 
- Quan facis Run et dirà que falta el model. Descarrega flux1-dev-kontext_fp8_scaled.safetensors i mou-lo a models/diffusion_models/, com vas fer ahir. Si et demana algun altre fitxer, mira si ja el tens a text_encoders o vae.
 
- Prem R per refrescar.
 
- Prem R per refrescar.

Revisió del 15:52, 15 oct 2026

Generació d'imatges

prompt

amb una targeta RTX 5060 Ti 16GB, puc tenir algun model IA per poder fer imatges artístiques tipus watercolor?

Sí, i força bé: 16 GB de VRAM és la quantitat que importa per a la generació d’imatges en local, i n’hi ha prou per als models bons actuals.

Què pots fer servir

-Flux.1 (dev o schnell): és el model obert de més qualitat i el que segueix millor les instruccions. En versió quantitzada (FP8, o GGUF Q8) cap còmodament en 16 GB.
-Stable Diffusion 3.5 Large: a FP8 baixa d’uns 18 GB a uns 11 GB de VRAM, així que hi cap.
-SDXL: és més antic, però va molt ràpid en la teva targeta i té el catàleg més gran de LoRA d’estil aquarel·la (a Civitai n’hi ha moltes). Per a estils artístics sovint és el més pràctic.

ComfyUI: és l’estàndard ara mateix. Funciona amb nodes, té una mica de corba d’aprenentatge, però hi ha workflows ja fets per a img2img + ControlNet que només has de carregar. Amb ComfUI puc fer servir el model Flux.1 (dev) i provar la generació d'imatges a partir de prompts.

Instal·lació ComfyUI. Model Flux.1

Descarregar ComfyUI i crear el venv, i activar-lo:

git clone https://github.com/comfyanonymous/ComfyUI.git
   cd ComfyUI
python -m venv venv

   source venv/bin/activate

Instal·lar PyTorch amb CUDA 12.8, comprova que detecta la GPU, Instal·lar les dependències de ComfyUI:

pip install --upgrade pip
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128

python -c "import torch; print(torch.cuda.is_available(), torch.cuda.get_device_name(0))"

pip install -r requirements.txt

Descarregar el model Flux:

pip install -U huggingface_hub
hf download Comfy-Org/flux1-dev flux1-dev-fp8.safetensors --local-dir models/checkpoints

(no em demana autenticació)

Finalment ja podem arrencar ComfyUI:

python main.py
...
Obre http://127.0.0.1:8188 al navegador.

Al menú Workflow → Browse Templates hi ha plantilles de Flux ja muntades. Tria-la, comprova que el node Load Checkpoint apunta al fitxer flux1-dev-fp8.safetensors i prem Run.

Primera prova: flux_aquarella.json

Arrosseguem el JSON a l'espai de treball i ens monta tot el flux per crear una imatge a partir d'un prompt:

{
 "last_node_id": 8,
 "last_link_id": 10,
 "nodes": [
  {
   "id": 1,
   "type": "CheckpointLoaderSimple",
   "pos": [
    40,
    200
   ],
   "size": [
    320,
    100
   ],
   "flags": {},
   "order": 0,
   "mode": 0,
   "inputs": [],
   "outputs": [
    {
     "name": "MODEL",
     "type": "MODEL",
     "links": [
      1
     ],
     "slot_index": 0
    },
    {
     "name": "CLIP",
     "type": "CLIP",
     "links": [
      2,
      3
     ],
     "slot_index": 1
    },
    {
     "name": "VAE",
     "type": "VAE",
     "links": [
      9
     ],
     "slot_index": 2
    }
   ],
   "properties": {
    "Node name for S&R": "CheckpointLoaderSimple"
   },
   "widgets_values": [
    "flux1-dev-fp8.safetensors"
   ]
  },
  {
   "id": 2,
   "type": "CLIPTextEncode",
   "pos": [
    420,
    60
   ],
   "size": [
    420,
    180
   ],
   "flags": {},
   "order": 1,
   "mode": 0,
   "inputs": [
    {
     "name": "clip",
     "type": "CLIP",
     "link": 2
    }
   ],
   "outputs": [
    {
     "name": "CONDITIONING",
     "type": "CONDITIONING",
     "links": [
      4
     ],
     "slot_index": 0
    }
   ],
   "properties": {
    "Node name for S&R": "CLIPTextEncode"
   },
   "widgets_values": [
    "loose watercolor portrait of an elderly man with grey hair, deep in thought, wet-on-wet technique, soft pigment blooms, visible paper texture, warm ochre and indigo washes, white paper background, expressive brushstrokes"
   ]
  },
  {
   "id": 3,
   "type": "FluxGuidance",
   "pos": [
    880,
    60
   ],
   "size": [
    260,
    60
   ],
   "flags": {},
   "order": 3,
   "mode": 0,
   "inputs": [
    {
     "name": "conditioning",
     "type": "CONDITIONING",
     "link": 4
    }
   ],
   "outputs": [
    {
     "name": "CONDITIONING",
     "type": "CONDITIONING",
     "links": [
      5
     ],
     "slot_index": 0
    }
   ],
   "properties": {
    "Node name for S&R": "FluxGuidance"
   },
   "widgets_values": [
    3.5
   ]
  },
  {
   "id": 4,
   "type": "CLIPTextEncode",
   "pos": [
    420,
    290
   ],
   "size": [
    420,
    90
   ],
   "flags": {},
   "order": 2,
   "mode": 0,
   "inputs": [
    {
     "name": "clip",
     "type": "CLIP",
     "link": 3
    }
   ],
   "outputs": [
    {
     "name": "CONDITIONING",
     "type": "CONDITIONING",
     "links": [
      6
     ],
     "slot_index": 0
    }
   ],
   "properties": {
    "Node name for S&R": "CLIPTextEncode"
   },
   "widgets_values": [
    ""
   ]
  },
  {
   "id": 5,
   "type": "EmptySD3LatentImage",
   "pos": [
    420,
    430
   ],
   "size": [
    320,
    110
   ],
   "flags": {},
   "order": 0,
   "mode": 0,
   "inputs": [],
   "outputs": [
    {
     "name": "LATENT",
     "type": "LATENT",
     "links": [
      7
     ],
     "slot_index": 0
    }
   ],
   "properties": {
    "Node name for S&R": "EmptySD3LatentImage"
   },
   "widgets_values": [
    1024,
    1024,
    1
   ]
  },
  {
   "id": 6,
   "type": "KSampler",
   "pos": [
    1180,
    180
   ],
   "size": [
    320,
    260
   ],
   "flags": {},
   "order": 4,
   "mode": 0,
   "inputs": [
    {
     "name": "model",
     "type": "MODEL",
     "link": 1
    },
    {
     "name": "positive",
     "type": "CONDITIONING",
     "link": 5
    },
    {
     "name": "negative",
     "type": "CONDITIONING",
     "link": 6
    },
    {
     "name": "latent_image",
     "type": "LATENT",
     "link": 7
    }
   ],
   "outputs": [
    {
     "name": "LATENT",
     "type": "LATENT",
     "links": [
      8
     ],
     "slot_index": 0
    }
   ],
   "properties": {
    "Node name for S&R": "KSampler"
   },
   "widgets_values": [
    0,
    "randomize",
    20,
    1.0,
    "euler",
    "simple",
    1.0
   ]
  },
  {
   "id": 7,
   "type": "VAEDecode",
   "pos": [
    1540,
    180
   ],
   "size": [
    200,
    50
   ],
   "flags": {},
   "order": 5,
   "mode": 0,
   "inputs": [
    {
     "name": "samples",
     "type": "LATENT",
     "link": 8
    },
    {
     "name": "vae",
     "type": "VAE",
     "link": 9
    }
   ],
   "outputs": [
    {
     "name": "IMAGE",
     "type": "IMAGE",
     "links": [
      10
     ],
     "slot_index": 0
    }
   ],
   "properties": {
    "Node name for S&R": "VAEDecode"
   },
   "widgets_values": []
  },
  {
   "id": 8,
   "type": "SaveImage",
   "pos": [
    1780,
    180
   ],
   "size": [
    520,
    560
   ],
   "flags": {},
   "order": 6,
   "mode": 0,
   "inputs": [
    {
     "name": "images",
     "type": "IMAGE",
     "link": 10
    }
   ],
   "outputs": [],
   "properties": {
    "Node name for S&R": "SaveImage"
   },
   "widgets_values": [
    "Flux_aquarella"
   ]
  }
 ],
 "links": [
  [
   1,
   1,
   0,
   6,
   0,
   "MODEL"
  ],
  [
   2,
   1,
   1,
   2,
   0,
   "CLIP"
  ],
  [
   3,
   1,
   1,
   4,
   0,
   "CLIP"
  ],
  [
   4,
   2,
   0,
   3,
   0,
   "CONDITIONING"
  ],
  [
   5,
   3,
   0,
   6,
   1,
   "CONDITIONING"
  ],
  [
   6,
   4,
   0,
   6,
   2,
   "CONDITIONING"
  ],
  [
   7,
   5,
   0,
   6,
   3,
   "LATENT"
  ],
  [
   8,
   6,
   0,
   7,
   0,
   "LATENT"
  ],
  [
   9,
   1,
   2,
   7,
   1,
   "VAE"
  ],
  [
   10,
   7,
   0,
   8,
   0,
   "IMAGE"
  ]
 ],
 "groups": [],
 "config": {},
 "extra": {},
 "version": 0.4
}

Una alternativa equivalent és anar a Workflow → Browse Templates i obrir la plantilla de Flux Dev, que també ve ja connectada.

Model Flux.1 Dev (text to image) (template)

prompt:

vull provar el model Flux.1 dev (text to image), que és una plantilla. I veig que per fer-lo funcionar em falta descarregar 4 models (quan faig Run em diu que falten aquests 4 models i em dóna l'opció de descarregar-los). Els he descarregat, però crec que només s'han descarregat, no s'han instal·lat. No sé què s'ha de fer ara.

He descarregat aquests models:

  • flux1-dev.safetensors (o flux1-dev-fp8...) 11–23 GB el model que genera la imatge
  • t5xxl_fp16.safetensors (o t5xxl_fp8...) 5–10 GB codificador de text principal
  • clip_l.safetensors 250 MB codificador de text secundari
  • ae.safetensors 330 MB el VAE (converteix el resultat en píxels)

S'ha de moure aquests fitxers a la carpeta que els correspon.

  • flux1-dev... → models/diffusion_models/
  • t5xxl... i clip_l... → models/text_encoders/
  • ae.safetensors → models/vae/

Prem la tecla R a la finestra de ComfyUI per refrescar la llista de models, o bé atura’l (Ctrl+C) i torna a executar python main.py.

Comprova els desplegables de la plantilla

  • Load Diffusion Model: flux1-dev...
  • DualCLIPLoader: clip_l i t5xxl, amb el tipus flux
  • Load VAE: ae.safetensors

I ara Run. És a dir, n'hi ha prou en moure els fitxers descarregats a la carpeta adequada.

NOTA: Si el model és la versió de 23 GB (fp16), no cap sencer en els 16 GB de la targeta. Funcionarà igualment, perquè ComfyUI en passa una part a la RAM, però anirà més lent. Al node Load Diffusion Model posa weight_dtype a fp8_e4m3fn i anirà molt més fluid. Si tens poca RAM (menys de 32 GB), millor descarregar també la versió fp8 del T5 (t5xxl_fp8_e4m3fn.safetensors).

NOTA: Si abans ja vas descarregar el flux1-dev-fp8.safetensors tot-en-un de les meves instruccions, ja tens tot el necessari i aquests 4 fitxers no et calen. El workflow flux_aquarella.json que et vaig passar fa servir aquell fitxer únic. Pots fer servir un camí o l’altre; el resultat és pràcticament el mateix.

Model FLUX.1 Kontext [dev]

-- A ComfyUI, ves a Workflow → Browse Templates i busca Flux Kontext Dev (dins l’apartat Flux). - Quan facis Run et dirà que falta el model. Descarrega flux1-dev-kontext_fp8_scaled.safetensors i mou-lo a models/diffusion_models/, com vas fer ahir. Si et demana algun altre fitxer, mira si ja el tens a text_encoders o vae. - Prem R per refrescar. - Al node Load Image, clica choose file to upload i tria la teva foto. - Escriu la instrucció en anglès al quadre de text i prem Run.


creat per Joan Quintana Compte, octubre 2026