ArcFlow

ArcFlow: Unleashing 2-Step Text-to-Image Generation via High-Precision Non-Linear Flow Distillation
Zihan Yang1, Shuyuan Tu1, Licheng Zhang1, Qi Dai2, Yu-Gang Jiang1, Zuxuan Wu1
[1Fudan University; 2Microsoft Research Asia]

Usage

Please first install the official code repository.

We provide diffusers pipelines for easy inference. The following code demonstrates how to sample images from the distilled FLUX.2 models.

4-NFE/2-NFE Arc-Qwen (Distilled from Qwen-Image-20B)

import torch
from diffusers import FlowMatchEulerDiscreteScheduler
from lakonlab.pipelines.arcqwen_pipeline import ArcQwenImagePipeline

pipe = ArcQwenImagePipeline.from_pretrained(
    'Qwen/Qwen-Image',
    torch_dtype=torch.bfloat16)
adapter_name = pipe.load_arcflow_adapter(  
    'ymyy307/ArcFlow',
    subfolder='arcflow-qwen-2steps',
    target_module_name='transformer')
pipe.scheduler = FlowMatchEulerDiscreteScheduler.from_config(  # use fixed shift=3.2
    pipe.scheduler.config, shift=3.2, shift_terminal=None, use_dynamic_shifting=False)
pipe = pipe.to('cuda')

nfe = 4
# nfe = 2
out = pipe(
    prompt = 'A semi-realistic fantasy illustration featuring a split composition of two young men in profile, facing away from each other. On the left, a pale man with sharp features and slicked-back black hair wears a dark coat. On the right, a tan man with messy wavy hair wears a blue tunic. The ornate, 3D metallic gold title "Sultan\'s Game" overlays the bottom center. The background is divided into distinct sections: vibrant red abstract shapes in the upper half and deep teal textures in the lower half, creating a sharp color contrast. Painterly brushstrokes.',
    num_images_per_prompt=1,
    width=1024,
    height=1024,
    num_inference_steps=nfe,
    generator=torch.Generator(device="cuda").manual_seed(42),
    timestep_ratio=1.0,
).images[0]
out.save(f'arcqwen_{nfe}nfe.png')

4-NFE/2-NFE Arc-FLUX (Distilled from FLUX.1-dev)

import torch
from diffusers import FlowMatchEulerDiscreteScheduler
from lakonlab.pipelines.arcflux_pipeline import ArcFluxPipeline

pipe = ArcFluxPipeline.from_pretrained(
    'black-forest-labs/FLUX.1-dev',
    torch_dtype=torch.bfloat16)
adapter_name = pipe.load_arcflow_adapter(  # you may later call `pipe.set_adapters([adapter_name, ...])` to combine other adapters (e.g., style LoRAs)
    'ymyy307/ArcFlow',
    subfolder='arcflow-flux-2steps',
    target_module_name='transformer')
pipe.scheduler = FlowMatchEulerDiscreteScheduler.from_config(  # use fixed shift=3.2
    pipe.scheduler.config, shift=3.2, shift_terminal=None, use_dynamic_shifting=False)
pipe = pipe.to('cuda')

nfe = 4
# nfe = 2
out = pipe(
    prompt = 'A portrait photo of a kangaroo wearing an orange hoodie and blue sunglasses standing in front of the Sydney Opera House holding a sign on the chest that says "Welcome Friends"',
    num_images_per_prompt=1,
    width=1024,
    height=1024,
    num_inference_steps=nfe,
    generator=torch.Generator(device="cuda").manual_seed(42),
    timestep_ratio=1.0,
).images[0]
out.save(f'arcflux_{nfe}nfe.png')

Citation

@misc{yang2026arcflowunleashing2steptexttoimage,
      title={ArcFlow: Unleashing 2-Step Text-to-Image Generation via High-Precision Non-Linear Flow Distillation}, 
      author={Zihan Yang and Shuyuan Tu and Licheng Zhang and Qi Dai and Yu-Gang Jiang and Zuxuan Wu},
      year={2026},
      eprint={2602.09014},
      archivePrefix={arXiv},
      primaryClass={cs.CV},
      url={https://arxiv.org/abs/2602.09014}, 
}
Downloads last month
-
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for ymyy307/ArcFlow

Base model

Qwen/Qwen-Image
Finetuned
(64)
this model

Paper for ymyy307/ArcFlow