heheyas/Qwen-Image-SP

Model

0

stars

20

commits

1

linked in READMEs

Aug 7, 2026

updated

context-scaling
diffusers
diffusion
structured-prompt
text-to-image

README

Qwen-Image-SP

This model is described in the paper Scaling Properties of Text Conditioning in Visual Generation.

QwenImage DiT + text-encoder fine-tuned on Structured-Prompt data (context-scaling project). EMA weights, bf16, 55 GB total.

Sharded across 14 safetensors files (each ~4.5 GB, well under HF LFS per-file limits):

  • dit_model-*.safetensors (10 shards) → transformer state dict
  • text_encoder-*.safetensors (4 shards) → Qwen2.5-VL text-encoder

Module prefix already stripped inside each shard, so:

import torch, glob
from safetensors.torch import load_file
from diffusers import QwenImagePipeline
from huggingface_hub import hf_hub_download, snapshot_download

pipe = QwenImagePipeline.from_pretrained("Qwen/Qwen-Image", torch_dtype=torch.bfloat16)
local = snapshot_download("heheyas/Qwen-Image-SP")

for shard in sorted(glob.glob(f"{local}/dit_model-*.safetensors")):
    pipe.transformer.load_state_dict(load_file(shard), strict=False)
for shard in sorted(glob.glob(f"{local}/text_encoder-*.safetensors")):
    pipe.text_encoder.load_state_dict(load_file(shard), strict=False)

VAE, tokenizer, scheduler are inherited from Qwen/Qwen-Image at load time and not shipped here.

Contributors

heheyas

19 commits

nielsr

1 commits

heheyas/Qwen-Image-SP

Model

0

stars

20

commits

1

linked in READMEs

Aug 7, 2026

updated

context-scaling
diffusers
diffusion
structured-prompt
text-to-image

README

Qwen-Image-SP

This model is described in the paper Scaling Properties of Text Conditioning in Visual Generation.

QwenImage DiT + text-encoder fine-tuned on Structured-Prompt data (context-scaling project). EMA weights, bf16, 55 GB total.

Sharded across 14 safetensors files (each ~4.5 GB, well under HF LFS per-file limits):

  • dit_model-*.safetensors (10 shards) → transformer state dict
  • text_encoder-*.safetensors (4 shards) → Qwen2.5-VL text-encoder

Module prefix already stripped inside each shard, so:

import torch, glob
from safetensors.torch import load_file
from diffusers import QwenImagePipeline
from huggingface_hub import hf_hub_download, snapshot_download

pipe = QwenImagePipeline.from_pretrained("Qwen/Qwen-Image", torch_dtype=torch.bfloat16)
local = snapshot_download("heheyas/Qwen-Image-SP")

for shard in sorted(glob.glob(f"{local}/dit_model-*.safetensors")):
    pipe.transformer.load_state_dict(load_file(shard), strict=False)
for shard in sorted(glob.glob(f"{local}/text_encoder-*.safetensors")):
    pipe.text_encoder.load_state_dict(load_file(shard), strict=False)

VAE, tokenizer, scheduler are inherited from Qwen/Qwen-Image at load time and not shipped here.

Contributors

heheyas

19 commits

nielsr

1 commits