Spaces:
Running
Running
from __future__ import annotations | |
import pathlib | |
def find_exp_dirs(ignore_repo: bool = False) -> list[str]: | |
repo_dir = pathlib.Path(__file__).parent | |
exp_root_dir = repo_dir / 'experiments' | |
if not exp_root_dir.exists(): | |
return [] | |
exp_dirs = sorted(exp_root_dir.glob('*')) | |
exp_dirs = [ | |
exp_dir for exp_dir in exp_dirs | |
if (exp_dir / 'pytorch_lora_weights.bin').exists() | |
] | |
if ignore_repo: | |
exp_dirs = [ | |
exp_dir for exp_dir in exp_dirs if not (exp_dir / '.git').exists() | |
] | |
return [path.relative_to(repo_dir).as_posix() for path in exp_dirs] | |
def save_model_card( | |
save_dir: pathlib.Path, | |
base_model: str, | |
instance_prompt: str, | |
test_prompt: str = '', | |
test_image_dir: str = '', | |
) -> None: | |
image_str = '' | |
if test_prompt and test_image_dir: | |
image_paths = sorted((save_dir / test_image_dir).glob('*')) | |
if image_paths: | |
image_str = f'Test prompt: {test_prompt}\n' | |
for image_path in image_paths: | |
rel_path = image_path.relative_to(save_dir) | |
image_str += f'![{image_path.stem}]({rel_path})\n' | |
model_card = f'''--- | |
license: creativeml-openrail-m | |
base_model: {base_model} | |
instance_prompt: {instance_prompt} | |
tags: | |
- stable-diffusion | |
- stable-diffusion-diffusers | |
- text-to-image | |
- diffusers | |
- lora | |
inference: true | |
--- | |
# LoRA DreamBooth - {save_dir.name} | |
These are LoRA adaption weights for [{base_model}](https://huggingface.co./{base_model}). The weights were trained on the instance prompt "{instance_prompt}" using [DreamBooth](https://dreambooth.github.io/). You can find some example images in the following. | |
{image_str} | |
''' | |
with open(save_dir / 'README.md', 'w') as f: | |
f.write(model_card) | |