# torch/torchvision are pinned as a matching pair. The first Space build left them to the resolver, # which (a) picked a torch version outside the range ZeroGPU supports and (b) never installed # torchvision at all, because nothing else in this list depends on it. transformers 5's Qwen3VLProcessor # always builds a Qwen3VLVideoProcessor, which hard-requires torchvision, so QwenImage21Pipeline # .from_pretrained died with "Qwen3VLVideoProcessor requires the Torchvision library". 2.9.1/0.24.1 # is the pair this pipeline was validated on and 2.9.1 is on the ZeroGPU supported list. # gradio is not pinned here: `sdk_version` in README.md owns the Gradio version on Spaces. torch==2.9.1 torchvision==0.24.1 # QwenImage21Pipeline is not in any released diffusers (0.40.0 on PyPI has no qwenimage21 files), # so install from upstream main at the commit used by the two live Qwen-Image-2.1 Spaces # (newer than the commit in the Pruna model card, both proven to build and run on ZeroGPU). git+https://github.com/huggingface/diffusers.git@80c7ed262aeffbeb43ef13ae04baeb9b84515a69 # Qwen3-VL text encoder + the RMSNorm hidden-state behaviour the pipeline works around. transformers==5.17.0 # peft is the LoRA runtime `load_lora_weights` attaches the adapter with. Pinned to 0.20.0: the # Pruna adapters were saved with peft 0.20.0 and their safetensors metadata carries the # 0.20 LoraConfig keys (lora_ga_config, monteclora_config, ...); peft 0.18.0 rejects them with # "LoraConfig.__init__() got an unexpected keyword argument 'lora_ga_config'" and load_lora_weights # dies. accelerate is needed by from_pretrained device placement. accelerate==1.15.0 peft==0.20.0 safetensors pillow