Step1X-Edit Model Loader
Three model files and one GPU's worth of patience
- model
This is where all the weight lives. Step1X-Edit isn't a checkpoint you drop into the stock loaders - it's a three-piece stack: a Flux-sized flow-matching DiT, its VAE, and a Qwen2.5-VL-7B multimodal LLM acting as the text encoder. The Model Loader assembles all three into a bundle and hands you a single model wire for the Step1X-Edit Generate node. Every install horror story in this pack starts or ends here, so this is also the article that explains the setup.
How it works
The node reads from ComfyUI's standard model folders - models/diffusion_models, models/vae, and models/text_encoders - and builds a Step1XEditModelBundle in one shot. Nothing is auto-downloaded: the dropdowns only list what you've already placed there, and if your text_encoders folder is empty you'll literally see the placeholder put_text_encoder_files_here in the text encoder dropdown. A subtle point that trips people up: the text encoder must be a folder named Qwen2.5-VL-7B-Instruct, not a single file.
Note the distinction between dtype and quantized. The diffusion model ships as FP8 weights, and the README's recommended setup is quantized on - load those 8-bit weights as-is. That's the half-the-VRAM default that the KB's fp8 panel calls settled community consensus for Flux-class models; quality cost is near-invisible. dtype (bfloat16 / float16 / float32) governs the non-quantized path and the LLM encoder. If it fits, and it's the difference between OOM and not, run quantized.
The inputs
diffusion_model-step1x-edit-i1258-FP8.safetensors(download from meimeilook/Step1X-Edit-FP8 on HuggingFace).vae-vae.safetensors, same HF repo.text_encoder- theQwen2.5-VL-7B-Instructfolder inmodels/text_encoders/.quantized- default true. Leave it on; this model is too big to be picky.offload- default false. On consumer cards this is your lifeline (see below).dtype- bfloat16 default.
Output is a single model wire, typed MODEL, into the Generate node.
Installing - the real way
cd ComfyUI/custom_nodes
git clone https://github.com/raykindle/ComfyUI_Step1X-Edit.git
cd ComfyUI_Step1X-Edit
pip install -r requirements.txt
ComfyUI Manager also finds it if you search "Step1X-Edit". Then the gotcha that isn't in requirements.txt: flash-attn. The requirements file lists liger-kernel, einops, transformers, qwen_vl_utils and friends - but not flash-attn, and the DiT's attention is hardcoded to call it, so a bare pip install -r requirements.txt leaves you with an import-time crash. The README's helper generates a wheel filename for your CUDA/torch:
python utils/get_flash_attn.py
then grab that exact wheel from Dao-AILab's (Linux) or kingbri1's (Windows) flash-attn releases and pip install it. It's a long install; budget the time.
Then the models (paths from the README):
ComfyUI/models/diffusion_models/step1x-edit-i1258-FP8.safetensors
ComfyUI/models/vae/vae.safetensors
ComfyUI/models/text_encoders/Qwen2.5-VL-7B-Instruct/
Troubleshooting
The peak-memory table in the README is the real headline: 768px, FP8, no offload → 31.5GB. That's H20 territory. On a 24GB 4090 people hit OOM immediately and only got through by turning on both quantized and offload - and even then one community guide needed the NVIDIA sysmem fallback setting plus 64GB of system RAM. The levers, in order: offload on, quantized on, lower resolution in the Generate node, close the browser.
Second gotcha, straight from the community install logs: if pip chokes on liger_kernel, it's usually a conflicting triton (triton-windows is the usual culprit) - uninstall it, install a matching older triton wheel, and retry. And an outdated safetensors can silently fail the model load; bump it to 0.5.x. When in doubt, the failure mode is always the same RuntimeError about paths and dependencies - check the three folders, then check flash-attn.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| diffusion_model | COMBO | step1x-edit-i1258-FP8.safetensors | 0 options: |
| vae | COMBO | vae.safetensors | 0 options: |
| text_encoder | COMBO | Qwen2.5-VL-7B-Instruct | 1 options: put_text_encoder_files_here |
| dtype | COMBO | bfloat16 | 3 options: bfloat16, float16, float32 |
| quantized | BOOLEAN | true | — |
| offload | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |