#5.2 from huggingface_hub.constants import HF_HUB_CACHE from transformers import T5EncoderModel, T5TokenizerFast, CLIPTokenizer, CLIPTextModel import torch import torch._dynamo import gc import os from diffusers import FluxPipeline, AutoencoderKL from PIL.Image import Image from pipelines.models import TextToImageRequest from torch import Generator from diffusers import FluxTransformer2DModel, DiffusionPipeline from para_attn.first_block_cache.diffusers_adapters import apply_cache_on_pipe os.environ['PYTORCH_CUDA_ALLOC_CONF']="expandable_segments:True" os.environ["TOKENIZERS_PARALLELISM"] = "True" torch._dynamo.config.suppress_errors = True Pipeline = None ids = "slobers/Flux.1.Schnella" Revision = "e34d670e44cecbbc90e4962e7aada2ac5ce8b55b" def load_pipeline() -> Pipeline: path = os.path.join(HF_HUB_CACHE, "models--slobers--Flux.1.Schnella/snapshots/e34d670e44cecbbc90e4962e7aada2ac5ce8b55b/transformer") transformer = FluxTransformer2DModel.from_pretrained(path, torch_dtype=torch.bfloat16, use_safetensors=False) vae = AutoencoderKL.from_pretrained("black-forest-labs/FLUX.1-schnell", revision="741f7c3ce8b383c54771c7003378a50191e9efe9", subfolder="vae", torch_dtype=torch.bfloat16) pipeline = FluxPipeline.from_pretrained(ids, revision=Revision, transformer=transformer, vae=vae, local_files_only=True, torch_dtype=torch.bfloat16) pipeline.to("cuda") pipeline = apply_cache_on_pipe(pipeline, residual_diff_threshold=0.768) pipeline("") return pipeline @torch.no_grad() def infer(request: TextToImageRequest, pipeline: Pipeline) -> Image: generator = Generator(pipeline.device).manual_seed(request.seed) return pipeline( request.prompt, generator=generator, guidance_scale=0.0, num_inference_steps=4, max_sequence_length=256, height=request.height, width=request.width, ).images[0]