Spaces:
Running on Zero
Running on Zero
| # External Setup | |
| ## Purpose | |
| This document lists the external actions needed after the local initial-stage build is ready. | |
| These actions change external account state and should only be run after explicit confirmation. | |
| ## GitHub Repository | |
| Local `origin` is already configured: | |
| ```text | |
| https://github.com/qqyule/Objectverse-Diary.git | |
| ``` | |
| Use this section to confirm the remote target and branch before pushing. Do not create a second repository unless the target changes. | |
| Originally suggested repository name: | |
| ```text | |
| objectverse-diary | |
| ``` | |
| Suggested description: | |
| ```text | |
| Small-model AI toy that turns everyday objects into secret diary characters. | |
| ``` | |
| If a new repository is ever needed after confirmation: | |
| ```bash | |
| gh repo create objectverse-diary --public --description "Small-model AI toy that turns everyday objects into secret diary characters." --source . --remote origin | |
| ``` | |
| Do not push until the user confirms the remote target and branch. | |
| ## Hugging Face Space | |
| Created Space: | |
| ```text | |
| https://huggingface.co/spaces/build-small-hackathon/ObjectverseDiary | |
| ``` | |
| SDK: | |
| ```text | |
| gradio | |
| ``` | |
| Required Space README header: | |
| ```yaml | |
| --- | |
| title: Objectverse Diary | |
| emoji: 🗝️ | |
| colorFrom: amber | |
| colorTo: gray | |
| sdk: gradio | |
| python_version: '3.10' | |
| app_file: app.py | |
| pinned: false | |
| --- | |
| ``` | |
| Recommended runtime setup: | |
| - stable public demo: keep `OBJECTVERSE_VISION_BACKEND=mock` and `OBJECTVERSE_TEXT_BACKEND=mock` | |
| - optional MiniCPM-V validation: temporarily set `OBJECTVERSE_VISION_BACKEND=minicpm-v` | |
| - optional MiniCPM-V validation: set `VISION_MODEL_ID=openbmb/MiniCPM-V-2_6` | |
| - optional MiniCPM-V validation: keep `OBJECTVERSE_TEXT_BACKEND=mock` | |
| - optional MiniCPM-V validation: use ZeroGPU `zero-a10g` first; paid L4 previously returned `402 Payment Required` | |
| - always roll back to mock-safe settings after validation unless the hosted VLM path passes reliably | |
| Automated validation command after confirmation: | |
| ```bash | |
| .venv/bin/python -B scripts/check_space_vlm.py \ | |
| --configure-space \ | |
| --hardware zero-a10g \ | |
| --rollback-to-mock \ | |
| --space-url https://huggingface.co/spaces/build-small-hackathon/ObjectverseDiary \ | |
| --output docs/SPACE_VLM_REPORT.md \ | |
| --json-output docs/SPACE_VLM_REPORT.json \ | |
| --trace-output-dir data/traces/space-vlm \ | |
| --failure-notes-output docs/FAILURES.md \ | |
| --timeout-seconds 1200 | |
| ``` | |
| The validation command now calls the hidden `/vision_runtime_probe` endpoint before mug/keyboard/shoe generation. The probe output is written into the markdown/JSON report and must remain free of token markers, `.env` paths, and private local paths. | |
| Optional rollback to mock-safe settings: | |
| ```bash | |
| .venv/bin/python -B scripts/check_space_vlm.py \ | |
| --space-url https://huggingface.co/spaces/build-small-hackathon/ObjectverseDiary \ | |
| --skip-validation \ | |
| --rollback-to-mock | |
| ``` | |
| The validation script must not print Hugging Face tokens. It uses three temporary public Wikimedia Commons images and does not commit downloaded assets. | |
| ## Optional GGUF Smoke Test | |
| This is a local-only model evidence step. It should be run only after confirming optional dependency installation and GGUF download. | |
| Recommended model: | |
| ```text | |
| repo: Qwen/Qwen2.5-1.5B-Instruct-GGUF | |
| file: qwen2.5-1.5b-instruct-q4_k_m.gguf | |
| local path: models/qwen2.5-1.5b-instruct-q4_k_m.gguf | |
| ``` | |
| Do not commit the downloaded GGUF. After the file is present and optional `llama-cpp-python` is installed: | |
| ```bash | |
| .venv/bin/python -B scripts/check_llama_cpp_smoke.py \ | |
| --model-path models/qwen2.5-1.5b-instruct-q4_k_m.gguf | |
| ``` | |
| Passing evidence requires `llama-cpp text generation` and no `text-fallback-to-mock` marker for generation or chat. | |
| 2026-06-06 validation attempt: | |
| - `--configure-space` was run for `l4x1`. | |
| - Hugging Face returned `402 Payment Required` for paid hardware on the `build-small-hackathon` organization. | |
| - Mock-safe rollback was run afterward. | |
| - ZeroGPU compatibility was added and uploaded to the Space. | |
| - `--configure-space --hardware zero-a10g` reached `RUNNING`, and `/config` was reachable, but the validation request did not return within the practical waiting window. | |
| - `spaces>=0.30` and a hidden `/zero_gpu_probe` endpoint were added. | |
| - The ZeroGPU probe succeeded through the direct `hf.space` URL with CUDA available on an NVIDIA RTX PRO 6000 Blackwell MIG device. | |
| 2026-06-08 validation attempt: | |
| - `--configure-space --hardware zero-a10g --rollback-to-mock` reached the app through the direct `hf.space` client path. | |
| - Mug, keyboard, and shoe checks all returned schema-valid traces, but every trace included `vision-fallback-to-mock`. | |
| - Evidence is saved in `docs/SPACE_VLM_REPORT.md`, `docs/SPACE_VLM_REPORT.json`, and `data/traces/space-vlm/`. | |
| - The report records rollback to `cpu-basic` with `OBJECTVERSE_VISION_BACKEND=mock` and `OBJECTVERSE_TEXT_BACKEND=mock`. | |
| - Next model unblock step: inspect Space runtime logs or add non-secret MiniCPM-V diagnostics before rerunning validation. | |
| ## Safety Notes | |
| - Do not commit `.env`. | |
| - Do not expose tokens, credit codes, private paths, or model credentials. | |
| - Do not push large model files. | |
| - Keep real model files under ignored `/models/` unless explicitly publishing them. | |