File size: 2,637 Bytes
ce45d75
 
 
ea83dff
 
ce45d75
 
 
 
ea83dff
ce45d75
 
ea83dff
ce45d75
ea83dff
ce45d75
ea83dff
ce45d75
ea83dff
ce45d75
ea83dff
 
 
 
 
 
 
ce45d75
ea83dff
ce45d75
ea83dff
ce45d75
ea83dff
 
 
ce45d75
ea83dff
ce45d75
 
 
ea83dff
ce45d75
 
 
ea83dff
ce45d75
 
 
 
ea83dff
ce45d75
 
 
 
 
 
ea83dff
 
 
 
 
 
 
ce45d75
ea83dff
ce45d75
ea83dff
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
---
title: LTX 2.3 CPU
emoji: 🎬
colorFrom: purple
colorTo: red
sdk: docker
app_port: 7860
pinned: false
license: other
short_description: 22B video diffusion on free CPU via GGUF + ComfyUI
---

# LTX 2.3 CPU

**[LTX 2.3](https://huggingface.co/Lightricks/LTX-2.3) CPU**, `cond_safe` distill 1.1 + Sulphur-2 merge = [10Eros](https://huggingface.co/TenStrip/LTX2.3-10Eros).

## How it works

ComfyUI runs headless with `--cpu --force-fp32 --cache-none`. Models are GGUF (mmap'd from disk, per-layer dequant). Workflow matches RuneXX's proven LTX 2.3 GGUF pattern: `DualCLIPLoaderGGUF` + `SamplerCustomAdvanced` + `CFGGuider`.

| Component | Source | Size | Format |
|---|---|---|---|
| DiT | `unsloth/LTX-2.3-GGUF` distilled-1.1 | 13.4 GB | UD-Q3_K_M GGUF (Unsloth Dynamic 2.0) |
| Text encoder | `unsloth/gemma-3-12b-it-GGUF` | ~6 GB | Q3_K_M GGUF |
| Text projection | `Kijai/LTX2.3_comfy` | 2.2 GB | bf16 safetensors |
| VAE | `Kijai/LTX2.3_comfy` (TaeL tiny VAE) | 22 MB | safetensors |
| LoRA | `TenStrip/LTX2.3_Distilled_Lora_1.1_Experiments` cond_safe | 662 MB | safetensors |

## Performance

First call downloads ~20 GB of models (cached on 50 GB ephemeral disk). Verified benchmark:

| Resolution | Duration | Steps | Time | Hardware |
|---|---|---|---|---|
| 512x320 | 2 sec | 8 (distilled-1.1) | **74 min** | free CPU (2 vCPU) |

## Curl test

```bash
TOKEN="hf_xxx"
SPACE="https://werecooking-ltx-2-3-cpu.hf.space"

EVT=$(curl -s -X POST "$SPACE/gradio_api/call/generate" \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"data":["A woman walking through a neon-lit Tokyo alley", 2.0, 8, -1]}' \
  | python -c "import sys,json;print(json.load(sys.stdin)['event_id'])")
curl -sN "$SPACE/gradio_api/call/generate/$EVT" -H "Authorization: Bearer $TOKEN"
```

## Logs

```bash
curl -N -H "Authorization: Bearer $TOKEN" "https://huggingface.co/api/spaces/WeReCooking/ltx-2.3-cpu/logs/build"
curl -N -H "Authorization: Bearer $TOKEN" "https://huggingface.co/api/spaces/WeReCooking/ltx-2.3-cpu/logs/run"
```

## Credits

- [Lightricks/LTX-2.3](https://huggingface.co/Lightricks/LTX-2.3) -- base model
- [Kijai/LTX2.3_comfy](https://huggingface.co/Kijai/LTX2.3_comfy) -- comfy weights + tiny VAE
- [city96/ComfyUI-GGUF](https://github.com/city96/ComfyUI-GGUF) -- GGUF loader with per-layer dequant
- [TenStrip](https://huggingface.co/TenStrip/LTX2.3_Distilled_Lora_1.1_Experiments) -- cond_safe distill LoRA
- [unsloth](https://huggingface.co/unsloth/LTX-2.3-GGUF) -- GGUF quantization

## License

Same as upstream [LTX-2 Community License](https://github.com/Lightricks/LTX-2/blob/main/LICENSE).