from __future__ import annotations import pathlib def find_exp_dirs() -> 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 / "model_index.json").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, training_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("*.gif")) if image_paths: image_path = image_paths[-1] rel_path = image_path.relative_to(save_dir) image_str = f"""## Samples Test prompt: {test_prompt} ![{image_path.stem}]({rel_path})""" model_card = f"""--- license: creativeml-openrail-m base_model: {base_model} training_prompt: {training_prompt} tags: - stable-diffusion - stable-diffusion-diffusers - text-to-image - diffusers - text-to-video - tune-a-video inference: false --- # Tune-A-Video - {save_dir.name} ## Model description - Base model: [{base_model}](https://huggingface.co/{base_model}) - Training prompt: {training_prompt} {image_str} ## Related papers: - [Tune-A-Video](https://arxiv.org/abs/2212.11565): One-Shot Tuning of Image Diffusion Models for Text-to-Video Generation - [Stable-Diffusion](https://arxiv.org/abs/2112.10752): High-Resolution Image Synthesis with Latent Diffusion Models """ with open(save_dir / "README.md", "w") as f: f.write(model_card)