11 novembre 2026 · Team VRAMfarm
ComfyUI su una GPU a noleggio: modelli tuoi, LoRA, custom node e la pagina 502
Hai cliccato Apri ComfyUI un minuto dopo l’avvio e ti sei trovato davanti un errore 502 o una pagina bianca. Non c’è niente di rotto: su un server nuovo ComfyUI prima si installa (circa 5 minuti al primo avvio), poi un’app pronta scarica in background da 7 a 70 GB di modelli. La dashboard ti dice quando è davvero pronto; nel frattempo, un paio di comandi nel terminale ti mostrano a che punto è.
App pronta o ComfyUI vuoto
Sono gratis tutti e due; paghi solo il tempo GPU, da 0,59 € all’ora su una RTX 4090, e il traffico di ciò che il server scarica. La differenza è cosa viene scaricato al posto tuo.
| Scelta all’avvio | Cosa si scarica da solo | Dimensione | VRAM minima |
|---|---|---|---|
| ComfyUI vuoto | ComfyUI più un piccolo checkpoint SD 1.5 per fare prove | ~2 GB | 6–8 GB |
| SDXL | SDXL base 1.0 | ~7 GB | 12 GB |
| Flux | Flux.1 schnell, fp8 | ~17 GB | 16 GB |
| HiDream | HiDream-O1 dev, fp8, con il suo text encoder | ~18 GB | 24 GB |
| Qwen-Image | Qwen-Image, text encoder, VAE, LoRA a 4 step | ~32 GB | 24 GB |
| Qwen Image Edit | Qwen-Image-Edit, text encoder, VAE, LoRA a 4 step | ~33 GB | 24 GB |
| Video Wan 2.2 5B | Wan 2.2 TI2V 5B, text encoder, VAE | ~17 GB | 24 GB |
| Video Wan 2.2 14B | Coppie testo-in-video e immagine-in-video, LoRA a 4 step | ~70 GB | 48 GB |
Scegli un’app pronta quando il tuo modello è nella lista: i file finiscono nelle cartelle giuste e il workflow integrato corrispondente parte subito. Scegli ComfyUI vuoto quando porti il tuo stack, per esempio un checkpoint SD 1.5 o Pony da Civitai. Se il checkpoint è basato su SDXL (Pony, Illustrious e la maggior parte dei fine-tune SDXL), anche l’app SDXL è un buon punto di partenza, perché VAE e workflow di base sono già lì.
Per un confronto tra schede, vedi quale GPU scegliere per Flux, SDXL e ComfyUI o la pagina del template ComfyUI.
Quando è pronto ComfyUI? 502, pagina bianca e modelli mancanti
Un avvio passa per tre fasi, e ognuna ha il suo sintomo se apri la pagina troppo presto.
- La macchina si avvia (di solito 2–5 minuti). Si attivano SSH e Jupyter. L’indirizzo di ComfyUI ancora non risponde.
- ComfyUI si installa e parte (qualche minuto in più). L’indirizzo restituisce 502 o una pagina bianca finché il processo di ComfyUI non è in ascolto.
- I modelli si scaricano, un file alla volta. L’interfaccia funziona già e i modelli compaiono negli elenchi man mano che arrivano. Se lanci un workflow adesso ottieni “missing model”, “Value not in list” o un elenco di problemi, perché il file non c’è ancora. Il più lento è Wan 2.2 14B: circa 70 GB, fino a 10–15 minuti.
La dashboard mostra quando l’app è pronta e ti manda una notifica, quindi la cosa più semplice è aspettarla. Se vuoi vedere con i tuoi occhi, apri Jupyter → File → New → Terminal e lancia:
tail -n 20 /workspace/comfyui.log # "To see the GUI go to: http://0.0.0.0:8188" significa che l'interfaccia è su
find /workspace/ComfyUI/models -name "*.part" # i file ancora in download finiscono in .part
du -sh /workspace/ComfyUI/models # confronta con la dimensione dell'app nella tabella sopra
tail -n 30 /workspace/gf-install.log # errori di installazione, se ComfyUI non parte mai
Se il log finisce con un errore Python invece che con la riga “To see the GUI”, ComfyUI non è partito: manda all’assistenza le ultime righe di entrambi i log. Se il log mostra la riga della GUI ma la pagina dice ancora 502, ComfyUI si è appena avviato: aspetta un minuto e ricarica.
L’attesa costa, quindi vale la pena sapere quanto. La fase 1 è gratis: l’addebito parte quando il server è pronto, quindi l’installazione e il download dei modelli delle fasi 2 e 3 si pagano al minuto. Un’attesa di 15 minuti per Wan 14B su una RTX A6000 costa circa 0,18 €, più il traffico per 70 GB di modelli alla tariffa della macchina.
Parti da un template di workflow integrato
In ComfyUI apri Workflow → Browse Templates. I template sono raggruppati per attività: testo in immagine, modifica di immagini, video, upscaling e altro. Con un’app pronta, il template di quel modello (Flux schnell, SDXL, Qwen-Image, Wan 2.2 e così via) usa esattamente i file che abbiamo scaricato, quindi puoi premere Run appena il download finisce.
Altri template possono richiedere modelli che non hai. ComfyUI allora mostra una finestra con ogni file mancante e la cartella in cui va messo. Nella versione da browser, il pulsante di download di quella finestra salva il file sul tuo computer, non sul server. Copia invece il link e scaricalo sul server, come spiegato nella prossima sezione.
I workflow che salvi nella barra laterale sinistra finiscono in /workspace/ComfyUI/user/default/workflows, quindi viaggiano con la cartella salvata.
Aggiungi checkpoint e LoRA tuoi
Tutto sta sotto /workspace/ComfyUI/models/. È la cartella a decidere quale nodo vede il file:
| Cartella | Cosa ci va | Caricato da |
|---|---|---|
checkpoints |
File di modello tutto-in-uno (SD 1.5, SDXL, Pony) | Load Checkpoint |
diffusion_models |
Pesi del modello senza encoder (Flux dev, Wan, Qwen-Image) | Load Diffusion Model |
text_encoders |
Encoder CLIP, T5, UMT5, Qwen-VL | Load CLIP, DualCLIPLoader |
vae |
File VAE | Load VAE |
loras |
LoRA | LoraLoader |
controlnet |
Modelli ControlNet | Load ControlNet Model |
upscale_models |
ESRGAN e upscaler simili | Load Upscale Model |
embeddings |
Textual inversion | usate nel prompt come embedding:name |
Scarica direttamente sul server dal terminale di Jupyter. Su Hugging Face copia il link resolve del file, non il link blob: il link blob è una pagina web, e wget salverebbe 50 KB di HTML con un nome .safetensors.
cd /workspace/ComfyUI/models/loras
wget -O my-style.safetensors "https://huggingface.co/<user>/<repo>/resolve/main/<file>.safetensors"
Per interi repository o modelli ad accesso riservato è più comodo lo strumento da riga di comando di Hugging Face:
pip install -U huggingface_hub
hf download <user>/<repo> <file>.safetensors --local-dir /workspace/ComfyUI/models/checkpoints
# modelli ad accesso riservato (Flux dev e altri): prima accetta la licenza sul sito, poi
export HF_TOKEN=<your read token>
I link di Civitai di solito vogliono il tuo token API in fondo all’URL (?token=...) e un nome di file, perché l’URL di download non ne ha: wget -O model.safetensors "https://civitai.com/api/download/models/<id>?token=<token>".
I file dal tuo portatile li carichi con il pulsante di upload di Jupyter o con scp, usando host e porta del comando SSH in I miei server (guida alla chiave SSH). Per file da diversi gigabyte, scaricare dalla fonte è di solito molto più veloce che caricarli da casa.
Quando il file è al suo posto, premi R in ComfyUI o ricarica la pagina, e compare nel menu a tendina del nodo. I download contano come traffico alla tariffa per GB della macchina indicata prima dell’avvio.
Custom node senza ComfyUI Manager preinstallato
Sui nostri server ComfyUI Manager non è installato. Puoi aggiungerlo tu in un minuto, oppure farne a meno e installare i nodi direttamente. In entrambi i casi si lavora nel terminale di Jupyter.
Installare ComfyUI Manager:
cd /workspace/ComfyUI/custom_nodes
git clone https://github.com/Comfy-Org/ComfyUI-Manager comfyui-manager
pip install -r comfyui-manager/requirements.txt
Oppure installare direttamente un singolo nodo:
cd /workspace/ComfyUI/custom_nodes
git clone https://github.com/<author>/<node-repo>
pip install -r <node-repo>/requirements.txt # se il repo ne ha uno
ComfyUI carica i nuovi nodi solo all’avvio, quindi riavvialo:
pkill -f "main.py --listen"
cd /workspace/ComfyUI && nohup python main.py --listen 0.0.0.0 --port 8188 > /workspace/comfyui.log 2>&1 &
Ricarica la scheda del browser dopo una trentina di secondi. Con il Manager installato compare un pulsante Manager; la sua voce Install Missing Custom Nodes è la soluzione più rapida quando il workflow di qualcun altro si apre con dei nodi rossi. Il Manager ha dei livelli di sicurezza e, siccome qui ComfyUI è in ascolto sulla rete, può rifiutare alcune azioni più rischiose, come l’installazione da un URL Git qualsiasi. L’installazione dalla sua lista funziona; per tutto il resto usa git clone come sopra.
Le versioni recenti di ComfyUI includono anche un manager integrato che si attiva con un flag di avvio. Se in /workspace/ComfyUI vedi manager_requirements.txt, puoi lanciare pip install -r manager_requirements.txt e aggiungere --enable-manager al comando di avvio invece di clonare.
Un avvertimento: un custom node è normale codice Python con accesso completo al server, compresi i tuoi modelli e i tuoi output. Installa nodi da repository di cui ti fidi, e preferisci quelli noti e aggiornati di recente.
Conserva modelli, LoRA e nodi tra una sessione e l’altra
Il disco del server viene cancellato quando il server si ferma. Per tenere il tuo lavoro usa Salva e ferma in I miei server. Salva /workspace: i tuoi checkpoint e le tue LoRA, custom_nodes, i workflow salvati e la cartella output. Al prossimo avvio la cartella viene ripristinata prima che ComfyUI parta, anche su un’altra scheda, quindi i tuoi modelli sono subito negli elenchi. Lo storage costa 0,03 € per GB al mese; una cartella da 20 GB di LoRA e checkpoint costa venti volte tanto, ben meno di un euro.
Tre cose da sapere:
- I modelli base di un’app pronta non vengono conservati. Si riscaricano da soli al prossimo avvio, così non paghi lo storage per 17–70 GB di pesi pubblici.
- I pacchetti Python non stanno in
/workspace. Le cartelle dei custom node tornano, ma le librerie che hai installato per loro conpipno. Dopo un ripristino, reinstallale e riavvia ComfyUI:
for d in /workspace/ComfyUI/custom_nodes/*/; do [ -f "$d/requirements.txt" ] && pip install -r "$d/requirements.txt"; done
- Il ripristino è un download. La cartella salvata arriva sulla nuova macchina come traffico alla tariffa di quella macchina. Ti fa risparmiare tempo e protegge i tuoi file, non il traffico.
Se fermi senza salvare, i file sono persi. Un server inattivo (2 ore senza SSH, Jupyter o carico sulla GPU, poi un’email, poi un’altra ora) salva la cartella prima di fermarsi. Altri dettagli in cosa succede ai tuoi file quando fermi una GPU.
Generazione in batch tramite l’API di ComfyUI
Per 200 foto prodotto o una lista di prompt non devi cliccare Run 200 volte. Ogni ComfyUI accetta job via HTTP.
- Costruisci e prova il workflow nel browser.
- Salvalo con Workflow → Export (API) e carica
workflow_api.jsonin/workspace. - Apri il JSON e annota gli ID dei nodi che vuoi cambiare, per esempio il nodo
CLIPTextEncodecon il tuo prompt e ilKSamplercon il seed. - Metti un prompt per riga in
/workspace/prompts.txte lancia questo sul server:
import json, random, time, urllib.request
URL = "http://127.0.0.1:8188"
PROMPT_NODE, SAMPLER_NODE = "6", "3" # gli ID del tuo export
wf = json.load(open("/workspace/workflow_api.json"))
def call(path, data=None):
req = urllib.request.Request(URL + path, data=data, headers={"Content-Type": "application/json"})
return json.load(urllib.request.urlopen(req))
for text in [l.strip() for l in open("/workspace/prompts.txt") if l.strip()]:
wf[PROMPT_NODE]["inputs"]["text"] = text
wf[SAMPLER_NODE]["inputs"]["seed"] = random.randint(0, 2**32 - 1)
pid = call("/prompt", json.dumps({"prompt": wf}).encode())["prompt_id"]
print("queued", pid, text[:50])
while call("/queue")["queue_running"] or call("/queue")["queue_pending"]:
time.sleep(10)
print("done, images are in /workspace/ComfyUI/output")
Avvialo con nohup python batch.py > batch.log 2>&1 &, così continua a girare anche quando chiudi il browser. ComfyUI mette i job in coda e li esegue uno per uno; i risultati finiscono in /workspace/ComfyUI/output, che puoi comprimere in zip e scaricare da Jupyter.
Un budget indicativo: con la coda piena, Flux schnell (4 step) genera un’immagine 1024×1024 in circa 2,5–5 secondi su una RTX 4090, a seconda del workflow. Duecento immagini da circa 4 secondi l’una sono meno di 15 minuti di lavoro; con il download del modello e la preparazione dello script, conta mezz’ora, circa 0,30 € di tempo GPU.
Puoi anche mandare le stesse richieste dal tuo computer all’indirizzo di ComfyUI indicato in I miei server. Per avviare un server per il batch e fermarlo alla fine da uno script, usa l’API di VRAMfarm: è fermarlo nel momento in cui la coda si svuota che tiene basso il costo di un batch.