Spaces:
Running on Zero
Running on Zero
File size: 1,803 Bytes
ee22178 2aa1001 ee22178 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | """Space entry point. Load both Hub models before serving GPU requests."""
import argparse
import logging
import os
import spaces # Initialize ZeroGPU before importing PyTorch or Diffusers.
from gradio_app import (
DEFAULT_MODEL, EXAMPLES, MODEL_IDS, UI_ASSETS,
ModelRunner, build_app, load_pipeline,
)
def main():
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument("--preview", action="store_true", help="Preview UI without downloading weights")
parser.add_argument("--port", type=int, default=7860)
args = parser.parse_args()
logging.basicConfig(level=logging.INFO)
model = os.environ.get("MOSS_MODEL_ID", DEFAULT_MODEL)
if model not in MODEL_IDS:
parser.error("MOSS_MODEL_ID must be OpenMOSS-Team/MOSS-Image-Base or OpenMOSS-Team/MOSS-Image-SFT")
runner = ModelRunner("outputs/gradio")
if not args.preview:
shared_pipe = load_pipeline(model)
runner.pipelines[model] = shared_pipe
for repo in MODEL_IDS:
if repo != model:
runner.pipelines[repo] = load_pipeline(repo, shared_pipe=shared_pipe)
if os.environ.get("MOSS_AOTI", "1") == "1":
from aoti import prepare_aoti
prepare_aoti(runner.pipelines.values())
demo = build_app(model=model, runner=runner)
generate_fn = next(fn for fn in demo.fns.values() if fn.api_name == "generate")
logging.info(
"Generation queue: SPACES_ZERO_GPU=%r, concurrency_limit=%s",
os.environ.get("SPACES_ZERO_GPU"), generate_fn.concurrency_limit,
)
demo.launch(
server_name="0.0.0.0", server_port=args.port, share=False,
allowed_paths=[str(runner.output_dir), str(EXAMPLES.resolve()), str(UI_ASSETS.resolve())],
)
if __name__ == "__main__":
main()
|