尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Genshin Impact Theme Daily Task Wallpaper Generator
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗GenshinWallCraft generates task-overlay wallpapers from the artwork in source/ and lets you use them in two modes:
It also includes Pixel Studio, a separate workspace for drawing pixel art, animating modular characters, and building backgrounds and seamless tilesets. Open Create Pixel Art on the home page, Pixel Studio in the wallpaper editor, or go directly to /#pixel-studio. Pixel projects work without an account.
The stack is designed to run with Docker Compose only. No manual database setup and no separate MinIO install are required.
frontend - React app served by Nginx on http://localhost:5155backend - FastAPI app on http://localhost:8009minio - local object storage on http://localhost:9000 with console on http://localhost:9001Generated wallpapers and app data are stored in Docker volumes, so they survive container restarts.
cp -n .env.example .env
docker compose up -d --build
The first run can take a few minutes because Docker needs to build both images and install Python and Node dependencies.
http://localhost:5155http://localhost:9001MinIO uses these default credentials in the compose file:
wallcraftwallcraft123docker compose down
Anonymous users can generate and download without registering. Authenticated users can register, log in, save task state, and download the latest stored wallpaper.
Library → Browse library includes 24 human characters, 16 layered scenes, 15 props and sprites, and five original character bases. Search or filter by Fantasy, Cozy, School life, and Romcom to find a cast and setting. Open a starter project, use a character, add scene layers, or stamp a prop; every action supports undo.
Your current pixel project is autosaved in this browser's IndexedDB. Sign in to also autosave the editable project and current PNG result to your account after a short pause. Saved projects lets you reopen your work on another device, download its PNG, or remove older copies. Save failures are shown in the editor; temporary connection failures retry automatically, and revision conflicts offer recovery or Save as new copy.
Save project downloads an editable .pixel.json backup; Open project restores it on any device. Guests should download a backup before replacing their current browser project. On phones, the bottom bar opens Tools, Colors, Layers, Frames, Rig, and Library. Use Fit to size the canvas and Move to pan without drawing; choose Secondary in Colors or Erase terrain in Tools for actions otherwise available by right-click.
Drawing, project files, PNGs, sprite sheets, palettes, and tileset exports run in the browser. Animated GIF, APNG, and lossless WebP exports use the backend's anonymous /api/pixel/export endpoint. See Pixel Studio's feature and export guide for details and limits.
cd frontend
npm ci
npm test
npm run lint
npm run build
The pixel engine tests use Node's built-in test runner. To test animated exports and account autosave, install backend/requirements-dev.txt in your Python environment, then run from the repository root:
python -m unittest discover -s backend/tests -v
These backend tests exercise real codecs, authenticated project storage, ownership, revisions, limits, migrations, and database bootstrap using isolated test databases. They do not start the wallpaper scheduler or MinIO.
The compose file already wires the local services together. You normally do not need to edit anything for a self-hosted run.
Useful values to know:
/app/data/wallcraft.db in the persistent backend-data volume, including accounts, editable pixel projects, and their PNG results. Container rebuilds retain this volume; docker compose down -v deletes it.DATABASE_URL configures both the app and Alembic. Direct Python development defaults to backend/wallcraft.db; Docker runs migrations automatically at startup.wallpapers bucketbackend/.envIf you want to customize storage, credentials, or the WhatsApp scheduler later, edit docker-compose.yml and the backend environment values there.
Older versions kept SQLite in the container's /app/backend/wallcraft.db, outside the data volume. Before rebuilding an existing installation, pause editing and copy that live database into the volume. This command uses SQLite's backup API and refuses to replace an existing destination:
docker compose exec backend python -c 'from pathlib import Path; import sqlite3; target = Path("/app/data/wallcraft.db"); target.parent.mkdir(parents=True, exist_ok=True); assert not target.exists(), "Persistent database already exists; no copy made"; source = sqlite3.connect("file:/app/backend/wallcraft.db?mode=ro", uri=True); destination = sqlite3.connect(target); source.backup(destination); destination.close(); source.close()'
docker compose up -d --build
Fresh volumes are initialized once from the bundled database. Existing persistent databases are never replaced during startup. Back up the data volume along with MinIO when moving installations.
.
├── backend/
├── frontend/
├── source/
├── docker-compose.yml
└── README.md
/api path in the Nginx config.GenshinWallGen is an unofficial fan-made project and is not affiliated with or endorsed by Cognosphere / miHoYo. All Genshin Impact assets and trademarks belong to their respective owners.