LTX-2.5-diffusers-mini / ltx /example_runtime.py
John6666's picture
Upload 39 files
e8b6587 verified
Raw
History Blame Contribute Delete
4.81 kB
"""Startup example acquisition/localization and attribution rendering."""
from __future__ import annotations
import shutil
from pathlib import Path
from huggingface_hub import hf_hub_download
from space_config import EXAMPLE_SPECS
from . import runtime_utils
from .app_runtime_support import APP_LOGGER, APP_ROOT, HF_TOKEN, RUNTIME_EXAMPLE_DIR, sha256_file
def prepare_examples() -> tuple[list[list[str | None]], dict]:
rows = []
items = []
hub_cache = {}
localized_cache = {}
shutil.rmtree(RUNTIME_EXAMPLE_DIR, ignore_errors=True)
RUNTIME_EXAMPLE_DIR.mkdir(parents=True, exist_ok=True)
def localize(source_path: str, source_name: str) -> tuple[str, str]:
source_path = str(source_path)
if source_path in localized_cache:
return localized_cache[source_path]
digest = sha256_file(source_path)
suffix = Path(source_name).suffix.lower() or Path(source_path).suffix.lower() or ".bin"
target = RUNTIME_EXAMPLE_DIR / f"{digest[:16]}{suffix}"
if not target.exists():
shutil.copy2(source_path, target)
result = (str(target), digest)
localized_cache[source_path] = result
return result
for raw in EXAMPLE_SPECS or []:
if not isinstance(raw, dict):
continue
label = str(raw.get("label") or "Example").strip()
repo_id = str(raw.get("repo_id") or "").strip()
repo_type = str(raw.get("repo_type") or "model").strip().lower()
revision = str(raw.get("revision") or "main").strip() or "main"
start_name = str(raw.get("start_image") or "").strip() or None
end_name = str(raw.get("end_image") or "").strip() or None
prompt = str(raw.get("prompt") or "").strip()
if not repo_id or not start_name or not prompt or repo_type not in {"model", "dataset", "space"}:
APP_LOGGER.info("[EXAMPLES] skipping invalid spec label=%r", label)
continue
try:
def get_file(filename: str | None):
if not filename:
return None
key = (repo_id, repo_type, revision, filename)
if key not in hub_cache:
hub_cache[key] = hf_hub_download(
repo_id=repo_id,
repo_type=None if repo_type == "model" else repo_type,
revision=revision,
filename=filename,
token=HF_TOKEN,
)
return hub_cache[key]
start_source = get_file(start_name)
end_source = get_file(end_name)
resolved = runtime_utils.resolved_revision_from_hub_path(start_source) or revision
start_path, start_sha = localize(start_source, start_name)
if end_source:
end_path, end_sha = localize(end_source, end_name)
else:
end_path, end_sha = None, None
rows.append([start_path, end_path, prompt])
items.append({
"label": label,
"repo_id": repo_id,
"repo_type": repo_type,
"requested_revision": revision,
"resolved_revision": resolved,
"start_image": start_name,
"start_sha256": start_sha,
"end_image": end_name,
"end_sha256": end_sha,
"served_from": str(RUNTIME_EXAMPLE_DIR.relative_to(APP_ROOT)),
"license": str(raw.get("license") or "").strip() or None,
"attribution": str(raw.get("attribution") or "").strip() or None,
})
APP_LOGGER.info(
"[EXAMPLES] ready label=%r source=%s:%s@%s served_from=%s",
label, repo_type, repo_id, resolved, RUNTIME_EXAMPLE_DIR,
)
except Exception as exc:
APP_LOGGER.info("[EXAMPLES] FAILED label=%r: %s: %s", label, type(exc).__name__, exc)
return rows, {"status": "ready", "count": len(rows), "items": items}
def attribution_markdown(state: dict) -> str:
items = state.get("items") or []
if not items:
return "Examples are unavailable in this startup. Generation is unaffected."
groups = []
seen = set()
for item in items:
key = (item.get("repo_type"), item.get("repo_id"), item.get("license"), item.get("attribution"))
if key in seen:
continue
seen.add(key)
repo_type, repo_id, license_id, attribution = key
text = f"`{repo_type}:{repo_id}`"
if attribution:
text += f" · {attribution}"
if license_id:
text += f" · {license_id}"
groups.append(text)
return "Startup-fetched example assets: " + " | ".join(groups)