A modern AI-powered app to redesign interior spaces. Upload a room image or generate from scratch, pick a style, and get a high-quality interior concept in seconds.
- π¨ Clean, modern UI with animation and glassmorphism effects
- πΌοΈ Upload-and-transform flow for existing room photos
- π§ Generate-new flow for fresh room concepts
- π·οΈ Multiple styles: Modern, Vintage, Minimalist, Professional
- π Multiple room presets: Living Room, Dining Room, Bedroom, Bathroom, Office
- π± Responsive layout for desktop and mobile
- π₯ Download generated images directly from the app
- π Built-in model and endpoint fallback logic for reliable generation
This project uses a multi-provider fallback chain:
- AI Horde (primary)
- Cloudflare AI (fallback)
- Hugging Face (fallback)
- Required env variable: AI_HORDE_API_KEY
- Optional fallback env variables: CLOUDFLARE_API_TOKEN, CLOUDFLARE_ACCOUNT_ID, HUGGINGFACE_API_KEY
- Generation first attempts AI Horde, then Cloudflare AI, then Hugging Face
- Node.js 18+
- npm
- AI Horde API key
- (Optional) Cloudflare Workers AI token + account ID for fallback
- (Optional) Hugging Face token with inference permissions for fallback
git clone https://github.com/bikram73/Interior_Designer_Using_AI.git
cd Interior_Designer_Using_AInpm installCreate .env.local in project root:
AI_HORDE_API_KEY=ah_your_token_here
CLOUDFLARE_API_TOKEN=cfut_your_token_here
CLOUDFLARE_ACCOUNT_ID=your_account_id_here
HUGGINGFACE_API_KEY=hf_your_token_hereYou can also copy from .env.example and replace the token value.
npm run devOpen:
If port 3000 is busy, Next.js automatically runs on another port (typically 3001).
- Upload a room image
- Select style and room type
- Click the generate button
- Preview and download result
- Do not upload any image
- Select style and room type
- Click generate to create a new room concept
Image transformation endpoint (path retained for frontend compatibility).
Request body example:
{
"image": "data:image/jpeg;base64,...",
"theme": "Modern",
"room": "Living Room",
"provider": "auto"
}Generate a new styled room concept without image upload.
Request body example:
{
"theme": "Modern",
"room": "Living Room",
"provider": "auto"
}Provider values:
- auto (fallback chain)
- ai-horde
- cloudflare-ai
- hugging-face
Disabled endpoint (returns HTTP 410) and not used in current provider setup.
interior-designer-ai-main/
βββ app/
β βββ api/
β β βββ check-horde/
β β β βββ route.ts
β β βββ generate-new/
β β β βββ route.ts
β β βββ replicate/
β β βββ route.ts
β βββ components/
β β βββ page-components.tsx
β βββ desktop-sidebar.tsx
β βββ favicon.ico
β βββ globals.css
β βββ header.tsx
β βββ layout.tsx
β βββ manifest.ts
β βββ mobile-sidebar.tsx
β βββ page.tsx
β βββ selectmenu.tsx
β βββ sidebar.tsx
βββ common/
β βββ index.ts
βββ public/
β βββ app-screenshot.png
β βββ see-running-app.png
βββ types/
β βββ index.ts
βββ utils/
β βββ index.ts
βββ .env.example
βββ .env.local
βββ LICENSE
βββ next.config.js
βββ package.json
βββ postcss.config.js
βββ tailwind.config.js
βββ tsconfig.json
npm run dev
npm run build
npm run start
npm run lintIf you get EINVAL/readlink issues on Windows, clear cache and restart:
if (Test-Path .next) { attrib -R -S -H .next /S /D; Remove-Item -LiteralPath .next -Recurse -Force -ErrorAction SilentlyContinue }
if (Test-Path .next) { cmd /c "rd /s /q .next" }
npm run devCheck these quickly:
- AI_HORDE_API_KEY exists in .env.local
- Key is valid and active
- AI Horde queue may be busy; retry after a short wait
- Terminal logs for AI Horde submit/check/status errors
If AI Horde fails, the app automatically tries Hugging Face.
Check these quickly:
- CLOUDFLARE_API_TOKEN exists in .env.local
- CLOUDFLARE_ACCOUNT_ID matches your Cloudflare account
- Token has Account -> Workers AI -> Edit permission
- Workers AI is enabled for your account
- Terminal logs for Cloudflare status/body details
If Cloudflare fails in auto mode, the app falls back to Hugging Face.
Check these quickly:
- HUGGINGFACE_API_KEY exists in .env.local
- Token has Inference permission
- Hugging Face quota/rate limits are available
- Terminal logs for endpoint/model fallback details
If Hugging Face also fails, verify token/credits and retry.
- Do not commit real API tokens
- Rotate any token that was shared in chat, screenshots, or logs
Licensed under MIT. See LICENSE.
