Much upload. Very rewind. Such video. Wow.
An AI-powered creative web app that transforms your modern photos into short nostalgic videos styled in the aesthetic of any internet era from 2010 to 2020. Pick a year, choose a festive greeting card theme, dial in an aesthetic mode β and let Qwen3.5 + Wan2.6-i2v-Flash do the rest.
Powered by Qwen3.5 and Wan2.6-i2v-Flash on Alibaba Cloud Model Studio, hosted on a Simple Application Server (SAS).
Built for the Alibaba Cloud AI Γ Creativity Hackathon 2026.
- Such Upload β drop any photo from your life in 2026
- Very Pick β choose your era (2010β2020), festive theme (CNY / Ramadan / Eid), and aesthetic style (VSCO / Grunge / Meme / Cinemagraph)
- Much Analyze β Qwen3.5 reads the photo and writes an era-appropriate scene description, vibe score, and Wan video direction prompt
- Wow Generate β Wan2.6-i2v-Flash animates your photo with the chosen aesthetic
- Such Result β you receive a short
.mp4+ a Vibe Score (0β100) + the AI's full style prompt
Live demo URL:
https://your-sas-ip-or-domain
Choose which internet year to rewind to:
| Era | Cultural Context |
|---|---|
| 2010 | Hipstamatic filters, early Instagram, flip-phone selfies, early Tumblr |
| 2012 | Earlybird/Hefe/X-Pro II, YOLO, Gangnam Style, Vine launch |
| 2014 | #nofilter, selfie sticks, Ice Bucket Challenge, early VSCO |
| 2016 β | VSCO cams, Doge meme, Harambe, Pokemon Go, dabbing (default) |
| 2018 | Avocado toast, VSCO girl, Drake memes, Instagram Stories |
| 2020 | Lo-fi aesthetic, quarantine lighting, TikTok grain, cottagecore |
Overlay a festive theme on top of the era aesthetic:
| Theme | Vibe |
|---|---|
| β¨ No theme | Pure internet nostalgia |
| π§§ Lunar New Year | Hongbao textures, firecracker bokeh, crimson-gold palette |
| π Ramadan | Fanous lanterns, crescent moon overlays, amber-gold light |
| π Eid | Arabesque patterns, fireworks bokeh, joyful golden glow |
Control the aesthetic mode that shapes the video generation:
| Style | Description |
|---|---|
| Auto | Let Qwen3.5 decide based on the photo |
| VSCO | Warm fade, film grain, golden-hour light, #vscocam |
| Grunge | Low contrast, desaturated, dark moody texture |
| Meme-Heavy | Comic Sans overlays, reaction faces, maximum chaos |
| Cinemagraph | Film grain, anamorphic flare, letterbox feel |
The result page shows:
- Qwen's 2016 Reframe β the scene description the AI wrote
- Wan's Direction β the exact video generation prompt Qwen produced
nostalgia-engine/
βββ frontend/ # Vue.js 3 single-page app
β βββ src/
β β βββ components/ # UploadZone, StatusPoller, VideoResult
β β βββ views/ # Landing, Processing, Result
β β βββ App.vue
β βββ Dockerfile
β
βββ backend/ # Python 3.11 + FastAPI
β βββ main.py # API routes
β βββ models.py # Pydantic request/response models
β βββ job_store.py # In-memory job store
β βββ services/
β β βββ qwen.py # Qwen3.5 dynamic prompt builder
β β βββ wan.py # Wan2.6-i2v-Flash async job handling
β β βββ oss.py # OSS upload + signed URL generation
β βββ requirements.txt
β βββ Dockerfile
β
βββ infra/ # OpenTofu infrastructure-as-code
β βββ main.tf
β βββ variables.tf
β βββ outputs.tf
β βββ terraform.tfvars.example
β βββ modules/
β βββ sas/ # Simple Application Server instance + firewall
β βββ oss/ # Object Storage bucket + CORS + lifecycle
β
βββ docs/
β βββ ARCHITECTURE.md
β βββ screenshot.png
β
βββ docker-compose.yml
βββ .env.example
βββ README.md
User β Vue.js (SAS)
β FastAPI Backend (SAS)
β Qwen3.5 β analyzes photo + era/festivity/style β scene_description, style_prompt, vibe_score
β Wan2.6-i2v-Flash β generates nostalgic video (async, polled every 4s)
β OSS β stores .mp4, returns signed URL
β User sees video + Vibe Score + AI prompt
See docs/ARCHITECTURE.md for the full sequence diagram and component breakdown.
- Docker + Docker Compose
- Alibaba Cloud account with:
- Simple Application Server (SAS) instance (Ubuntu 22.04, 2 vCPU / 4 GB RAM recommended)
- Model Studio API key (access to
qwen-vl-maxandwan2.6-i2v-flash) - OSS bucket created
git clone https://github.com/your-org/nostalgia-engine.git
cd nostalgia-enginecp .env.example .envEdit .env:
# Alibaba Cloud Model Studio
DASHSCOPE_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxx
# Models
QWEN_MODEL=qwen-vl-max
WAN_MODEL=wan2.6-i2v-flash
# OSS
OSS_ACCESS_KEY_ID=your_access_key_id
OSS_ACCESS_KEY_SECRET=your_access_key_secret
OSS_BUCKET_NAME=nostalgia-engine-outputs
OSS_ENDPOINT=oss-cn-hangzhou.aliyuncs.com
OSS_SIGNED_URL_EXPIRY=3600docker compose up -d --build| Service | Port |
|---|---|
| Frontend | http://localhost:80 |
| Backend API | http://localhost:8000 |
| API Docs (Swagger) | http://localhost:8000/docs |
Submit a photo for transformation.
curl -X POST http://localhost:8000/api/generate \
-H "Content-Type: application/json" \
-d '{
"image_base64": "<base64>",
"filename": "photo.jpg",
"era": 2016,
"festivity": "eid",
"style": "vsco"
}'| Field | Type | Required | Values |
|---|---|---|---|
image_base64 |
string | β | Base64-encoded JPEG/PNG/WebP |
filename |
string | β | Original filename |
era |
integer | β | 2010 2012 2014 2016 2018 2020 (default: 2016) |
festivity |
string | β | "cny" "ramadan" "eid" (default: null) |
style |
string | β | "vsco" "grunge" "meme" "cine" (default: null) |
Response 202 Accepted:
{
"job_id": "abc123",
"status": "processing",
"vibe_score": 78,
"scene_description": "A casual outdoor moment remixed into 2016 VSCO aesthetic..."
}Poll for job completion.
curl http://localhost:8000/api/status/abc123Response on success:
{
"job_id": "abc123",
"status": "success",
"video_url": "https://your-bucket.oss-cn-hangzhou.aliyuncs.com/video/abc123.mp4?Expires=...",
"vibe_score": 78,
"scene_description": "A casual outdoor moment...",
"style_prompt": "Slow warm zoom with golden bokeh drift, VSCO A4 fade..."
}| Layer | Technology |
|---|---|
| Frontend | Vue.js 3 |
| Backend | Python 3.11 + FastAPI |
| Vision + Prompt AI | Qwen3.5 (Alibaba Cloud Model Studio) |
| Video Generation | Wan2.6-i2v-Flash (Alibaba Cloud Model Studio) |
| Storage | Alibaba Cloud OSS |
| Hosting | Alibaba Cloud SAS (Docker) |
| Infrastructure as Code | OpenTofu β₯ 1.6 + alicloud provider ~> 1.220 |
| Dev Tooling | Qoder AI |
| Variable | Description | Default |
|---|---|---|
DASHSCOPE_API_KEY |
Model Studio API key | β |
QWEN_MODEL |
Qwen model ID | qwen-vl-max |
WAN_MODEL |
Wan model ID | wan2.6-i2v-flash |
OSS_BUCKET_NAME |
OSS bucket for video output | β |
OSS_ENDPOINT |
OSS regional endpoint | oss-cn-hangzhou.aliyuncs.com |
OSS_SIGNED_URL_EXPIRY |
Signed URL validity in seconds | 3600 |
Backend:
cd backend
python -m venv venv && source venv/Scripts/activate
pip install -r requirements.txt
uvicorn main:app --reload --port 8000Frontend:
cd frontend
npm install
npm run dev # Vite dev server on :5173All cloud resources are declared in infra/ and provisioned with OpenTofu.
cd infra
cp terraform.tfvars.example terraform.tfvars
# fill in access keys, bucket name, SSH key pair
tofu init
tofu plan
tofu applyOpenTofu provisions:
- OSS bucket β private, CORS enabled, 7-day video expiry lifecycle
- SAS instance β Ubuntu 22.04, Docker pre-installed, app auto-started via cloud-init
- Firewall rules β ports 22, 80, 8000
MIT β see LICENSE for details.
- Alibaba Cloud Model Studio β Qwen3.5 & Wan2.6-i2v-Flash
- Alibaba Cloud OSS
- Alibaba Cloud SAS
- Built with Qoder AI agentic coding tools
Alibaba Cloud AI Γ Creativity Hackathon 2026 β Such Nostalgia. Very AI. Wow. π
