Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FLUX LoRA Inference Support #33

Open
4 tasks
atiorh opened this issue Sep 10, 2024 · 3 comments
Open
4 tasks

FLUX LoRA Inference Support #33

atiorh opened this issue Sep 10, 2024 · 3 comments

Comments

@atiorh
Copy link
Contributor

atiorh commented Sep 10, 2024

This should:

  • Define a canonical LoRA format (checkpoint structure)
  • Implement LoRA checkpoint adapters for top-2 "source" LoRA formats into DiffusionKit's "target" (canonical) LoRA format
  • Allow for fusing LoRA weights into base weights as an optional argument
  • Document the process for adding checkpoint adapters for additional source implementations

The top-2 most used implementations is subjective. We can take the most downloaded LoRAs on Hugging Face as proxy. For example: [sorted by downloads]:

Screenshot 2024-09-10 at 11 17 37 AM
@atiorh
Copy link
Contributor Author

atiorh commented Sep 10, 2024

Exploration kickstarter code:

from huggingface_hub import hf_hub_download
from safetensors import safe_open

def load_model(path):
    tensors = {}
    with safe_open(path, framework="pt", device="cpu") as f:
        for key in f.keys():
            tensors[key] = f.get_tensor(key)
    return tensors

TESTED_LORAS = [
    {"repo": "XLabs-AI/flux-RealismLora", "rel_path": "lora.safetensors"},
    {"repo": "ByteDance/Hyper-SD", "rel_path": "Hyper-FLUX.1-dev-16steps-lora.safetensors"},
]

for lora in TESTED_LORAS:
    ckpt_path = hf_hub_download(repo_id=lora["repo"], filename=lora["rel_path"])
    ckpt = load_model(ckpt_path)
    print(len(ckpt), {k:v.shape for k,v in ckpt.items()})

@atiorh
Copy link
Contributor Author

atiorh commented Sep 10, 2024

cc: @raoulritter who expressed interest in this earlier

@atiorh
Copy link
Contributor Author

atiorh commented Sep 10, 2024

Additional resource: This issue is a great resource for the challenges of dealing with many source implementations with helpful pointers.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant