Skip to content

MFarizalA/nostalgia-engine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

11 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ• Such Nostalgia. Very AI. Wow.

A Doge-Approved Time Machine β€” Powered by Alibaba Cloud AI

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.


πŸ• What It Does

  1. Such Upload β€” drop any photo from your life in 2026
  2. Very Pick β€” choose your era (2010–2020), festive theme (CNY / Ramadan / Eid), and aesthetic style (VSCO / Grunge / Meme / Cinemagraph)
  3. Much Analyze β€” Qwen3.5 reads the photo and writes an era-appropriate scene description, vibe score, and Wan video direction prompt
  4. Wow Generate β€” Wan2.6-i2v-Flash animates your photo with the chosen aesthetic
  5. Such Result β€” you receive a short .mp4 + a Vibe Score (0–100) + the AI's full style prompt

πŸ–₯️ Demo

Live demo URL: https://your-sas-ip-or-domain

App Screenshot


✨ Feature Highlights

πŸ“… Era Selector

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

🎊 Festivity Selector (Greeting Card Mode)

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

🎞️ Style Picker

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

πŸ€– AI Transparency

The result page shows:

  • Qwen's 2016 Reframe β€” the scene description the AI wrote
  • Wan's Direction β€” the exact video generation prompt Qwen produced

πŸ—‚οΈ Project Structure

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

🧠 Architecture

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.


πŸš€ Getting Started

Prerequisites

  • 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-max and wan2.6-i2v-flash)
    • OSS bucket created

1. Clone the repository

git clone https://github.com/your-org/nostalgia-engine.git
cd nostalgia-engine

2. Configure environment variables

cp .env.example .env

Edit .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=3600

3. Build and run

docker compose up -d --build
Service Port
Frontend http://localhost:80
Backend API http://localhost:8000
API Docs (Swagger) http://localhost:8000/docs

πŸ”Œ API Endpoints

POST /api/generate

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..."
}

GET /api/status/{job_id}

Poll for job completion.

curl http://localhost:8000/api/status/abc123

Response 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..."
}

πŸ› οΈ Tech Stack

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

βš™οΈ Configuration Reference

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

πŸ§ͺ Local Development (without Docker)

Backend:

cd backend
python -m venv venv && source venv/Scripts/activate
pip install -r requirements.txt
uvicorn main:app --reload --port 8000

Frontend:

cd frontend
npm install
npm run dev        # Vite dev server on :5173

πŸ“¦ Deploying Infrastructure with OpenTofu

All 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 apply

OpenTofu 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

πŸͺͺ License

MIT β€” see LICENSE for details.


πŸ™Œ Acknowledgements


Alibaba Cloud AI Γ— Creativity Hackathon 2026 β€” Such Nostalgia. Very AI. Wow. πŸ•

About

πŸ• Such Nostalgia. Very 2016. Wow. β€” AI-powered image-to-video time machine built on Alibaba Cloud (Qwen3.5-Vision + Wan2.6-i2v-Flash + SAS + OSS)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors