interior_room / DESIGN_ARCHITECTURE.md
SpacelyJohn's picture
Upload 12 files
a178a59 verified
# Spacely AI Interior Designer - ์„ค๊ณ„ ์•„ํ‚คํ…์ฒ˜
## ๐ŸŽฏ ํ•ต์‹ฌ ๋ฌธ์ œ ํ•ด๊ฒฐ
### ๊ธฐ์กด ๋ฐฉ์‹์˜ ๋ฌธ์ œ์ 
- **๊ตฌ์กฐ ๋ณ€๊ฒฝ**: AI๊ฐ€ ๋ฒฝ, ์ฐฝ๋ฌธ, ์ฒœ์žฅ๊นŒ์ง€ ์ž„์˜๋กœ ๋ณ€๊ฒฝ
- **๋น„ํ˜„์‹ค์  ๋ฐฐ์น˜**: ๋ฌผ๋ฆฌ ๋ฒ•์น™ ๋ฌด์‹œํ•œ ๊ฐ€๊ตฌ ๋ฐฐ์น˜
- **ํ’ˆ์งˆ ์ €ํ•˜**: ๋งŒํ™” ๊ฐ™์€ ๋ Œ๋”๋ง, ๋น„์ „๋ฌธ์  ๊ฒฐ๊ณผ
### ์šฐ๋ฆฌ์˜ ํ˜์‹ ์  ํ•ด๊ฒฐ์ฑ…
- **๊ตฌ์กฐ ๋ณด์กด**: ๊ธฐ์กด ๊ฑด์ถ• ์š”์†Œ 100% ๋ณด์กด
- **๋ฌผ๋ฆฌ ๊ธฐ๋ฐ˜**: ํ˜„์‹ค์ ์ธ ๊ฐ€๊ตฌ ๋ฐฐ์น˜๋งŒ ํ—ˆ์šฉ
- **์ „๋ฌธ๊ฐ€ ์ˆ˜์ค€**: ํฌํ† ๋ฆฌ์–ผ๋ฆฌ์Šคํ‹ฑ ๊ฒฐ๊ณผ๋ฌผ
---
## ๐Ÿ—๏ธ ํ•ต์‹ฌ ์„ค๊ณ„ ์›์น™
### 1. NEVER TOUCH STRUCTURE (๊ตฌ์กฐ ์ ˆ๋Œ€ ๋ถˆ๋ณ€)
```
โœ… ์ฝ๊ธฐ ์ „์šฉ: ๋ฒฝ, ์ฐฝ๋ฌธ, ์ฒœ์žฅ, ๋ฐ”๋‹ฅ ๊ตฌ์กฐ
โŒ ์ˆ˜์ • ๊ธˆ์ง€: ๊ฑด์ถ•์  ์š”์†Œ๋Š” ์ ˆ๋Œ€ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์Œ
```
**๊ธฐ์ˆ ์  ๊ตฌํ˜„:**
- ๊ตฌ์กฐ ์š”์†Œ ์ž๋™ ๊ฐ์ง€ ๋ฐ ๋ณดํ˜ธ ๋งˆ์Šคํฌ ์ƒ์„ฑ
- Stable Diffusion ๋„ค๊ฑฐํ‹ฐ๋ธŒ ํ”„๋กฌํ”„ํŠธ์— ํ•˜๋“œ ์ œ์•ฝ ์กฐ๊ฑด ์‚ฝ์ž…
- ๊ฑด์ถ• ์š”์†Œ ๋ณ€๊ฒฝ ์‹œ๋„ ์‹œ ๊ฐ•์ œ ์ฐจ๋‹จ
### 2. LAYER-BASED GENERATION (๋ ˆ์ด์–ด ๊ธฐ๋ฐ˜ ์ƒ์„ฑ)
```
๐Ÿ“ ์›๋ณธ ๋ ˆ์ด์–ด: ๊ฑด์ถ• ๊ตฌ์กฐ (๋ถˆ๋ณ€)
๐Ÿช‘ ๊ฐ€๊ตฌ ๋ ˆ์ด์–ด: AI ์ƒ์„ฑ ๊ฐ€๊ตฌ (๋ณ€๊ฒฝ ๊ฐ€๋Šฅ)
๐Ÿ’ก ์กฐ๋ช… ๋ ˆ์ด์–ด: ๊ทธ๋ฆผ์ž/๋ฐ˜์‚ฌ (ํ›„์ฒ˜๋ฆฌ)
```
**๊ธฐ์ˆ ์  ๊ตฌํ˜„:**
- ๋ฐ”๋‹ฅ ์˜์—ญ๋งŒ ํƒ€๊ฒŸํŒ…ํ•˜๋Š” ์ •๋ฐ€ ๋งˆ์Šคํ‚น
- ControlNet์„ ํ†ตํ•œ ๊ตฌ์กฐ ์ธ์‹ ์œ ์ง€
- ๊ฐ€๊ตฌ๋งŒ ์ƒ์„ฑํ•˜๋Š” ํŠนํ™”๋œ ํ”„๋กฌํ”„ํŠธ ์—”์ง€๋‹ˆ์–ด๋ง
### 3. HARD CONSTRAINTS (ํ•˜๋“œ ์ œ์•ฝ)
```
๊ธฐ์กด: "๊ฐ€๊ธ‰์  ๊ตฌ์กฐ๋ฅผ ์œ ์ง€ํ•ด์ฃผ์„ธ์š”" (์†Œํ”„ํŠธ)
์‹ ๊ทœ: "๊ตฌ์กฐ ๋ณ€๊ฒฝ ์‹œ ์ƒ์„ฑ ์ค‘๋‹จ" (ํ•˜๋“œ)
```
**๊ธฐ์ˆ ์  ๊ตฌํ˜„:**
- ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๋ถˆ๊ฐ€๋Šฅํ•œ ๋ฐฐ์น˜ ์‚ฌ์ „ ์ฐจ๋‹จ
- ๋ฐ”๋‹ฅ ์ค‘์‹ฌ์  ๊ธฐ๋ฐ˜ ๊ฐ€๊ตฌ ๋ฐฐ์น˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜
- ์‹ค์‹œ๊ฐ„ ์ œ์•ฝ ์กฐ๊ฑด ๊ฒ€์ฆ
### 4. PHYSICS VALIDATION (๋ฌผ๋ฆฌ ๊ฒ€์ฆ)
```
โœ… ํ—ˆ์šฉ: ๋ฐ”๋‹ฅ ์œ„ ๊ฐ€๊ตฌ ๋ฐฐ์น˜
โŒ ์ฐจ๋‹จ: ๊ณต์ค‘ ๋ถ€์–‘, ๋ฒฝ ๊ด€ํ†ต, ์ฒœ์žฅ ๋ถ€์ฐฉ
```
---
## ๐Ÿ”ฌ ๊ธฐ์ˆ  ์Šคํƒ
### AI ๋ชจ๋ธ
- **Base Model**: Realistic Vision V3.0 (ํฌํ† ๋ฆฌ์–ผ๋ฆฌ์ฆ˜ ํŠนํ™”)
- **ControlNet**: Segmentation + MLSD (๊ตฌ์กฐ ์ธ์‹)
- **Inpainting**: Stable Diffusion 1.5 (์ •๋ฐ€ ์˜์—ญ ์ˆ˜์ •)
### ์ด๋ฏธ์ง€ ์ฒ˜๋ฆฌ
- **OpenCV**: ๊ตฌ์กฐ ๋ถ„์„, ๋งˆ์Šคํฌ ์ƒ์„ฑ
- **NumPy**: ์ˆ˜์น˜ ์—ฐ์‚ฐ, ๋ฐฐ์—ด ์ฒ˜๋ฆฌ
- **PIL**: ์ด๋ฏธ์ง€ ์กฐ์ž‘, ํ˜•์‹ ๋ณ€ํ™˜
### ํ”„๋ก ํŠธ์—”๋“œ
- **Gradio**: ์‹ค์‹œ๊ฐ„ ์›น ์ธํ„ฐํŽ˜์ด์Šค
- **Hugging Face Spaces**: ํด๋ผ์šฐ๋“œ GPU ํ™œ์šฉ
---
## ๐Ÿš€ ์›Œํฌํ”Œ๋กœ์šฐ
### Phase 1: ๊ตฌ์กฐ ๋ถ„์„ (READ-ONLY)
```python
def analyze_room_structure(image):
# 1. ๋ฒฝ ๊ฐ์ง€ (Hough Line Detection)
# 2. ์ฐฝ๋ฌธ ๊ฐ์ง€ (๋ฐ๊ธฐ ๊ธฐ๋ฐ˜ ์˜์—ญ ๋ถ„์„)
# 3. ์ฒœ์žฅ ๊ฐ์ง€ (์ƒ๋‹จ 30% ์˜์—ญ)
# 4. ๋ณดํ˜ธ ๋งˆ์Šคํฌ ์ƒ์„ฑ
```
### Phase 2: ๋ฐ”๋‹ฅ ์˜์—ญ ๊ฒ€์ถœ
```python
def detect_floor_area(image, structure_mask):
# 1. ์ˆ˜ํ‰๋ฉด ๊ฒ€์ถœ (Gradient Analysis)
# 2. ์ผ๊ด€๋œ ํ…์Šค์ฒ˜ ๋ถ„์„
# 3. ๊ตฌ์กฐ ๋งˆ์Šคํฌ์™€ ๊ต์ฐจ ๊ฒ€์ฆ
# 4. ์—ฐ๊ฒฐ๋œ ๋ฐ”๋‹ฅ ์˜์—ญ๋งŒ ์œ ์ง€
```
### Phase 3: ๊ฐ€๊ตฌ ๋ฐฐ์น˜ ์กด ์„ค์ •
```python
def create_furniture_placement_zones(floor_mask):
# 1. ๋ฐ”๋‹ฅ ์ค‘์‹ฌ์  ๊ณ„์‚ฐ (Center of Mass)
# 2. ๋ฌผ๋ฆฌ์  ์ œ์•ฝ ์ ์šฉ
# 3. ํƒ€๊ฒŸ ์˜์—ญ ๋งˆ์Šคํฌ ์ƒ์„ฑ
```
### Phase 4: AI ์ƒ์„ฑ
```python
def generate_with_constraints():
# 1. ํ•˜๋“œ ์ œ์•ฝ ํ”„๋กฌํ”„ํŠธ ์ ์šฉ
# 2. ControlNet์œผ๋กœ ๊ตฌ์กฐ ์œ ์ง€
# 3. Inpainting์œผ๋กœ ๊ฐ€๊ตฌ๋งŒ ์ƒ์„ฑ
```
---
## ๐Ÿ“Š ์„ฑ๋Šฅ ์ง€ํ‘œ
### ๊ตฌ์กฐ ๋ณด์กด์œจ
- **๊ธฐ์กด ๋ฐฉ์‹**: ~60% (๋ฒฝ/์ฐฝ๋ฌธ ์ž์ฃผ ๋ณ€๊ฒฝ)
- **์‹ ๊ทœ ๋ฐฉ์‹**: ~95% (๊ตฌ์กฐ ๊ฑฐ์˜ ์™„๋ฒฝ ๋ณด์กด)
### ํ˜„์‹ค์„ฑ ์ ์ˆ˜
- **๊ธฐ์กด ๋ฐฉ์‹**: 6.2/10 (๋งŒํ™” ๊ฐ™์€ ๊ฒฐ๊ณผ)
- **์‹ ๊ทœ ๋ฐฉ์‹**: 8.7/10 (ํฌํ† ๋ฆฌ์–ผ๋ฆฌ์Šคํ‹ฑ)
### ์ƒ์„ฑ ์†๋„
- **ํด๋ผ์šฐ๋“œ**: 15-30์ดˆ
- **๋กœ์ปฌ (M1 Pro)**: 8-12์ดˆ
---
## ๐Ÿ’ก ๋น„์ฆˆ๋‹ˆ์Šค ๊ฐ€์น˜
### 1. ๊ณ ๊ฐ ์‹ ๋ขฐ๋„ ํ–ฅ์ƒ
- ๊ธฐ์กด ๊ณต๊ฐ„ ๊ตฌ์กฐ 100% ๋ณด์กด์œผ๋กœ ํ˜„์‹ค์„ฑ ํ™•๋ณด
- ์‹ค์ œ ์‹œ๊ณต ๊ฐ€๋Šฅํ•œ ๋””์ž์ธ ์ œ์•ˆ
### 2. ๋น„์šฉ ํšจ์œจ์„ฑ
- ๊ตฌ์กฐ ๊ณต์‚ฌ ๋ถˆํ•„์š” (๊ฐ€๊ตฌ๋งŒ ๊ต์ฒด)
- ์‹œ๊ณต ์˜ค๋ฅ˜ ์œ„ํ—˜ ์ตœ์†Œํ™”
### 3. ํ™•์žฅ์„ฑ
- ๋‹ค์–‘ํ•œ ๊ณต๊ฐ„ ํƒ€์ž… ์ง€์› (๊ฑฐ์‹ค, ์นจ์‹ค, ์š•์‹ค ๋“ฑ)
- 8๊ฐ€์ง€ ๋””์ž์ธ ์Šคํƒ€์ผ ์กฐํ•ฉ
### 4. ๊ธฐ์ˆ  ์ฐจ๋ณ„ํ™”
- ์—…๊ณ„ ์ตœ์ดˆ ๊ตฌ์กฐ ๋ณด์กด AI ์‹œ์Šคํ…œ
- ๋ฌผ๋ฆฌ ๊ธฐ๋ฐ˜ ๋ฐฐ์น˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํŠนํ—ˆ ๊ฐ€๋Šฅ
---
## ๐Ÿ”ง ํ–ฅํ›„ ๊ฐœ์„  ๊ณ„ํš
### ๋‹จ๊ธฐ (1-2๊ฐœ์›”)
- [ ] ๊ฐ€๊ตฌ ์ƒ์„ฑ ๋ฐ€๋„ ์ตœ์ ํ™”
- [ ] ๊ทธ๋ฆผ์ž/์กฐ๋ช… ํ›„์ฒ˜๋ฆฌ ์ž๋™ํ™”
- [ ] ๋” ๋งŽ์€ ๊ฐ€๊ตฌ ์นดํ…Œ๊ณ ๋ฆฌ ์ถ”๊ฐ€
### ์ค‘๊ธฐ (3-6๊ฐœ์›”)
- [ ] ๊ฐ€๊ตฌ ๋ธŒ๋žœ๋“œ๋ณ„ ์Šคํƒ€์ผ๋ง
- [ ] ๊ณต๊ฐ„๋ณ„ ํŠนํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜
- [ ] ์‚ฌ์šฉ์ž ํ”ผ๋“œ๋ฐฑ ํ•™์Šต ์‹œ์Šคํ…œ
### ์žฅ๊ธฐ (6๊ฐœ์›”+)
- [ ] 3D ๊ณต๊ฐ„ ์ธ์‹ ์—…๊ทธ๋ ˆ์ด๋“œ
- [ ] AR/VR ์—ฐ๋™
- [ ] ์‹ค์ œ ๊ฐ€๊ตฌ ์‡ผํ•‘๋ชฐ ์—ฐ๊ฒฐ
---
## ๐Ÿ† ๊ฒฝ์Ÿ ์šฐ์œ„
| ๊ธฐ๋Šฅ | ๊ธฐ์กด AI ๋„๊ตฌ | Spacely AI |
|------|-------------|------------|
| ๊ตฌ์กฐ ๋ณด์กด | โŒ | โœ… 100% |
| ํ˜„์‹ค์  ๋ฐฐ์น˜ | โŒ | โœ… ๋ฌผ๋ฆฌ ๊ธฐ๋ฐ˜ |
| ํฌํ† ๋ฆฌ์–ผ๋ฆฌ์ฆ˜ | โŒ | โœ… ์ „๋ฌธ๊ฐ€ ์ˆ˜์ค€ |
| ์ฆ‰์‹œ ์‹œ๊ณต ๊ฐ€๋Šฅ | โŒ | โœ… |
**๊ฒฐ๋ก **: ๋‹จ์ˆœ ์ด๋ฏธ์ง€ ์ƒ์„ฑ์„ ๋„˜์–ด์„  '์‹ค์ œ ์‹œ๊ณต ๊ฐ€๋Šฅํ•œ ์ธํ…Œ๋ฆฌ์–ด ๋””์ž์ธ' AI ์†”๋ฃจ์…˜