ComfyUI-SeFiImage
ComfyUI nodes for SeFi-Image (Semantic-First Diffusion) text-to-image.
ComfyUI-SeFiImage
ComfyUI custom nodes for SeFi-Image — a Semantic-First Diffusion text-to-image model family from Liu et al. (released July 2026). SeFi separates the latent into a semantic stream and a texture stream and denoises semantic structure slightly ahead of texture detail, giving the texture stream a cleaner structural anchor. The result is strong prompt following, text rendering and bilingual generation at a fraction of the usual training cost.
This pack wraps SeFi's official sefi inference package as two ComfyUI nodes so
you can generate directly on the graph.
- Project page: https://jmliu206.github.io/sefi-web/
- Model + inference code: https://github.com/jmliu206/SeFi-Image
- Paper overview: https://www.alphaxiv.org/overview/2606.22568v2
Features
- Two simple nodes: a Loader and a Sampler — wire Loader → Sampler → SaveImage.
- Supports every published checkpoint: 1B / 2B / 5B in Base, RL and Turbo flavours.
- Weights download automatically from Hugging Face on first use.
- No manual setup of the upstream package: the pack fetches the
sefisource itself (stdlib tarball download — no git required on the host) and adds it tosys.pathon first use. - The loaded pipeline is cached across executions, so repeated generations don't reload the model.
Installation
Via ComfyUI-Manager (recommended)
Use Install via Git URL in ComfyUI-Manager with:
https://github.com/AMXELA-Official/ComfyUI-SeFiImage
Then restart ComfyUI.
Manual
cd ComfyUI/custom_nodes
git clone https://github.com/AMXELA-Official/ComfyUI-SeFiImage
cd ComfyUI-SeFiImage
pip install -r requirements.txt
Restart ComfyUI.
Dependencies
Installed from requirements.txt (most already ship with ComfyUI):
diffusers, transformers, accelerate, safetensors, huggingface_hub,
omegaconf, pillow. PyTorch is provided by your ComfyUI install.
The upstream
sefipackage itself is not listed here because it is not pip-installable (it ships no packaging metadata). The pack downloads its source automatically — see How the sefi source is fetched.
Nodes
SeFi-Image Loader
Loads a SeFi inference pipeline. On first use it downloads the selected
checkpoint from Hugging Face into SeFi's cache
(outputs/model_weights/sefi_inference).
| Input | Type | Notes |
|-------|------|-------|
| checkpoint | choice | HF checkpoint id (see Models). |
| dtype | choice | auto (let SeFi decide) / bfloat16 / float16 / float32. |
| device | choice | auto / cuda / cpu. |
| Output | Type |
|--------|------|
| sefi_pipe | SEFI_PIPE |
SeFi-Image Sampler
Generates one image from a text prompt.
| Input | Type | Default | Notes |
|-------|------|---------|-------|
| sefi_pipe | SEFI_PIPE | — | From the Loader. |
| prompt | string | — | Text prompt (multiline). |
| steps | int | 4 | ~4 for Turbo; raise (e.g. 20–30) for Base/RL. |
| guidance_scale | float | 1.0 | ~1.0 for Turbo; higher for Base/RL. |
| width | int | 1024 | |
| height | int | 1024 | |
| seed | int | 0 | |
| Output | Type |
|--------|------|
| IMAGE | standard ComfyUI image (feed to SaveImage/PreviewImage). |
SeFi's inference API does not expose a negative prompt or batch-per-prompt, so those widgets are intentionally absent.
Models
Checkpoints are published under the SeFi-Image Hugging Face organization:
| Family | Sizes | HF id pattern | Suggested steps / guidance |
|--------|-------|---------------|-----------------------------|
| Turbo | 1B, 2B, 5B | SeFi-Image/SeFi-Image-{1,2,5}B-turbo | ~4 steps, guidance 1.0 |
| Base | 1B, 2B, 5B | SeFi-Image/SeFi-Image-{1,2,5}B-Base | ~20–30 steps, higher guidance |
| RL | 5B | SeFi-Image/SeFi-Image-5B-RL | as Base |
Recommended starting point: SeFi-Image-2B-turbo — fast and a good quality
/ VRAM balance.
VRAM
The upstream pipeline has no CPU-offload / low-VRAM path. Rough guidance:
| Model | Approx. VRAM (1024²) | |-------|----------------------| | 1B | comfortable on 8–12 GB | | 2B | fits ~12 GB | | 5B | likely OOM on 12 GB; needs more headroom |
If you OOM, drop to a smaller variant or reduce width/height.
Usage
- Add SeFi-Image Loader, pick
SeFi-Image/SeFi-Image-2B-turbo, leavedtype/deviceonauto. - Add SeFi-Image Sampler, connect
sefi_pipe, type a prompt, keepsteps=4,guidance_scale=1.0. - Connect the Sampler's
IMAGEoutput to a SaveImage (or PreviewImage). - Queue. The first run downloads the checkpoint (several GB) — subsequent runs reuse the cached model.
How the sefi source is fetched
sefi is MIT-licensed but not published as a pip package. On first node
execution (and, best-effort, at install time via install.py) the pack:
- Downloads
https://codeload.github.com/jmliu206/SeFi-Image/tar.gz/refs/heads/mainusing Python's standard library (urllib+tarfile) — nogitbinary needed. - Extracts it to
SeFi-Image/inside this pack directory. - Adds that directory to
sys.pathsoimport sefiworks.
This is done lazily so a network hiccup can never block ComfyUI startup — it
simply retries on the next run. The fetched SeFi-Image/ folder is gitignored.
Troubleshooting
ModuleNotFoundError: sefi— the source fetch failed (no network on first run). Re-queue once you have connectivity, or manuallygit clonethe SeFi repo into this pack'sSeFi-Image/subfolder.- CUDA out of memory — use a smaller checkpoint (2B or 1B), lower the resolution, or free VRAM before running.
- Slow first run — expected: it's downloading multi-GB weights from Hugging Face. Later runs are fast.
- Wrong-looking output on Base/RL — raise
stepsandguidance_scale; the defaults are tuned for Turbo.
Credits & License
- Wrapper (this repo): MIT.
- SeFi-Image model &
sefiinference package: © the SeFi-Image authors (jmliu206/SeFi-Image), MIT. All model weights and inference logic belong to them; this repo only adds a thin ComfyUI node layer.
If you use SeFi-Image in your work, please cite the original authors.