Instructions to use vidfom/Wan-T2V_14B with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Diffusers
How to use vidfom/Wan-T2V_14B with Diffusers:
pip install -U diffusers transformers accelerate
import torch from diffusers import DiffusionPipeline # switch to "mps" for apple devices pipe = DiffusionPipeline.from_pretrained("vidfom/Wan-T2V_14B", dtype=torch.bfloat16, device_map="cuda") prompt = "Astronaut in a jungle, cold color palette, muted colors, detailed, 8k" image = pipe(prompt).images[0] - Notebooks
- Google Colab
- Kaggle
Download DiffSynth-Studio/examples/train/stable_diffusion/train_sd_lora.py from vidfom/Wan-T2V_14B: direct link, hf CLI and curl.
- Browser
- Download file 2.5 kB
-
https://huggingface.co/vidfom/Wan-T2V_14B/resolve/main/DiffSynth-Studio/examples/train/stable_diffusion/train_sd_lora.py
- Command line
-
hf download hf://vidfom/Wan-T2V_14B/DiffSynth-Studio/examples/train/stable_diffusion/train_sd_lora.py
-
curl -L -o train_sd_lora.py https://huggingface.co/vidfom/Wan-T2V_14B/resolve/main/DiffSynth-Studio/examples/train/stable_diffusion/train_sd_lora.py
2.5 kB
| from diffsynth import ModelManager, SDImagePipeline | |
| from diffsynth.trainers.text_to_image import LightningModelForT2ILoRA, add_general_parsers, launch_training_task | |
| import torch, os, argparse | |
| os.environ["TOKENIZERS_PARALLELISM"] = "True" | |
| class LightningModel(LightningModelForT2ILoRA): | |
| def __init__( | |
| self, | |
| torch_dtype=torch.float16, pretrained_weights=[], | |
| learning_rate=1e-4, use_gradient_checkpointing=True, | |
| lora_rank=4, lora_alpha=4, lora_target_modules="to_q,to_k,to_v,to_out", init_lora_weights="gaussian", pretrained_lora_path=None, | |
| ): | |
| super().__init__(learning_rate=learning_rate, use_gradient_checkpointing=use_gradient_checkpointing) | |
| # Load models | |
| model_manager = ModelManager(torch_dtype=torch_dtype, device=self.device) | |
| model_manager.load_models(pretrained_weights) | |
| self.pipe = SDImagePipeline.from_model_manager(model_manager) | |
| self.pipe.scheduler.set_timesteps(1000) | |
| self.freeze_parameters() | |
| self.add_lora_to_model( | |
| self.pipe.denoising_model(), | |
| lora_rank=lora_rank, | |
| lora_alpha=lora_alpha, | |
| lora_target_modules=lora_target_modules, | |
| init_lora_weights=init_lora_weights, | |
| pretrained_lora_path=pretrained_lora_path, | |
| ) | |
| def parse_args(): | |
| parser = argparse.ArgumentParser(description="Simple example of a training script.") | |
| parser.add_argument( | |
| "--pretrained_path", | |
| type=str, | |
| default=None, | |
| required=True, | |
| help="Path to pretrained model. For example, `models/stable_diffusion/v1-5-pruned-emaonly.safetensors`.", | |
| ) | |
| parser.add_argument( | |
| "--lora_target_modules", | |
| type=str, | |
| default="to_q,to_k,to_v,to_out", | |
| help="Layers with LoRA modules.", | |
| ) | |
| parser = add_general_parsers(parser) | |
| args = parser.parse_args() | |
| return args | |
| if __name__ == '__main__': | |
| args = parse_args() | |
| model = LightningModel( | |
| torch_dtype=torch.float32 if args.precision == "32" else torch.float16, | |
| pretrained_weights=[args.pretrained_path], | |
| learning_rate=args.learning_rate, | |
| use_gradient_checkpointing=args.use_gradient_checkpointing, | |
| lora_rank=args.lora_rank, | |
| lora_alpha=args.lora_alpha, | |
| init_lora_weights=args.init_lora_weights, | |
| pretrained_lora_path=args.pretrained_lora_path, | |
| lora_target_modules=args.lora_target_modules | |
| ) | |
| launch_training_task(model, args) | |