Nodes/ComfyUI_Step1X-Edit/Step1X-Edit Model Loader
ComfyUI Node

Step1X-Edit Model Loader

Three model files and one GPU's worth of patience

By raykindle·Created about a year ago·Updated about a year ago· 50
Step1X-Edit Model Loader
    • model
    diffusion_modelstep1x-edit-i1258-FP8.safetensors
    vaevae.safetensors
    text_encoderQwen2.5-VL-7B-Instruct
    dtypebfloat16
    quantizedtrue
    offloadfalse

    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 - the Qwen2.5-VL-7B-Instruct folder in models/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.

    CategoryStep1X-Edit

    Inputs (6)

    NameTypeDefaultDescription
    diffusion_modelCOMBOstep1x-edit-i1258-FP8.safetensors0 options:
    vaeCOMBOvae.safetensors0 options:
    text_encoderCOMBOQwen2.5-VL-7B-Instruct1 options: put_text_encoder_files_here
    dtypeCOMBObfloat163 options: bfloat16, float16, float32
    quantizedBOOLEANtrue
    offloadBOOLEANfalse

    Outputs (1)

    NameTypeDescription
    modelMODEL