The lmedz ips-model-weights Space is a blank Gradio project on Hugging Face. No app is running, and that’s intentional. It’s a starter you clone, drop an app.py into, and push to go live. First time I opened one of these I kept looking for a bug because the page looked finished. It isn’t. It’s empty by design.
What you see when you open the Space
Go to https://huggingface.co/spaces/lmedz/ips-model-weights. The header says Ips Model Weights - a Hugging Face Space by lmedz. The App tab reads No application file. Under it, the page shows a rocket banner that says Get started with your gradio Space! Below that, a short note tells you the Space was created and lists the steps to get started, with a link to the full docs.
That banner is the checklist. Clone, create app.py, handle deps, tweak README, push. The page is minimal on purpose. I always open Files first just to confirm it’s really empty. Sometimes a leftover README shows up, but here it’s clean.
Clone it with a token
The page lists HTTPS and SSH. HTTPS is easiest for a first run.
It tells you to use an access token as git password/credential. The warning is explicit: when prompted for a password, use an access token with write permissions. You can generate one at https://huggingface.co/settings/tokens.
The clone command shown is:
git clone https://huggingface.co/spaces/lmedz/ips-model-weights
Username is your Hugging Face username, password is the token. SSH works too if you’ve set up keys. I prefer HTTPS for quick tests because rotating a token is faster than fiddling with keys.
If you don’t want a git repo, the HF CLI works:
curl -LsSf https://hf.co/cli/install.sh | bash
hf download lmedz/ips-model-weights --repo-type=space
I use the CLI when I just want a local snapshot. For anything I’ll push back, git clone wins.
The minimal app.py that makes it run
Create app.py at the repo root. The Space ships this example:
import gradio as gr
def greet(name):
return "Hello " + name + "!!"
demo = gr.Interface(fn=greet, inputs="text", outputs="text")
demo.launch()
It’s a placeholder. A function takes a name, returns a greeting, and the Interface connects a text box to a text output. You’ll swap greet for whatever you need to do with IPS model weights.
The page notes you can create app.py in the browser. That works for a one-line fix. Local editing gives you a real editor, linting, and git history. I only touch it in-browser when I’m fixing a typo at 2am.
Put the file exactly as app.py in the root. Gradio Spaces look for that name by default. Changing the entry point means editing README metadata, which is unnecessary friction for a template.
Push and let Hugging Face build
Add, commit, push:
$ git add app.py
$ git commit -m "Add application file"
$ git push
After the push the Space rebuilds automatically. The first build takes a couple minutes while the container spins up and installs. Refresh the App tab and the Gradio UI appears.
If nothing shows, open the build logs in Files. Common issues are a syntax error in app.py or a missing package. The logs are straightforward enough to pinpoint it quickly.
Dependencies without the usual mess
The page covers dependencies next. You can add requirements.txt at the root for Python packages. You can also add packages.txt for Debian system packages.
Gradio is pre-installed. Its version is set in the sdk_version field in README.md. You don’t need to pin Gradio unless you need a specific feature.
requirements.txt covers Python imports beyond Gradio. packages.txt covers OS libraries like image processing tools. My rule is simple: check sdk_version, add requirements.txt only for non-standard imports, use packages.txt for system libs. That avoids the classic “works locally, dies in Space” problem.
If you’re loading IPS weights you’ll probably need torch, safetensors, or transformers in requirements.txt. List them explicitly. The build installs exactly what you list, and fails fast if something is missing.
Make it look like yours
Personalize the Space by editing metadata in README.md. That file controls the emoji next to the title, the color accent, and the description shown with the Gradio UI.
A clear emoji and a short two-sentence description help people understand the Space before they click. It’s a tiny change that improves discoverability. I usually write what it does, then how to use it, and keep it under 200 characters.
sdk_version lives in the same file. Change it if you need a different Gradio version, then push. The Space rebuilds with the new SDK. The default is fine unless you have a reason to move.
The real workflow
Clone with a token, create app.py, add requirements.txt and packages.txt if needed, edit README.md for metadata, commit and push. The lmedz ips-model-weights Space shows that loop with nothing extra.
It’s a blank canvas, not a broken demo. The onboarding steps are plain on the Space page, and after one run the process feels automatic. The hard part starts after hello world: replace the demo function with model inference code and wire up the weights. The scaffolding is already correct.