ไธไธช็ซฏๅฐ็ซฏ็ AI ่ง้ข็ๆๅนณๅฐ๏ผ่พๅ ฅๆ ไบๆๆฌ๏ผ่ชๅจ็ๆๅ้ใๅพ็ใ้ ้ณ๏ผๆ็ปๅๆๅฎๆด่ง้ขใ
- ้กน็ฎ็ฎไป
- ็ณป็ปๆถๆ
- ๅ่ฝ็นๆง
- ็ฎๅฝ็ปๆ
- ๅฟซ้ๅผๅง
- ่ฏฆ็ป้จ็ฝฒๆๅ
- API ๆๆกฃ
- ๆๆฏๆ
- ๅธธ่ง้ฎ้ข
- ่ดก็ฎๆๅ
StoryToVideo ๆฏไธไธชๅฐๆๆฌๆ ไบ่ชๅจ่ฝฌๅไธบ่ง้ข็ AI ๅไฝๅทฅๅ ทใ็จๆทๅช้่พๅ ฅไธๆฎตๆ ไบๆๆฌ๏ผ็ณป็ปๅฐ่ชๅจ๏ผ
- ๅ้็ๆ - ๅฉ็จ LLM ๅฐๆ ไบๆ่งฃไธบ็ปๆๅๅ้่ๆฌ
- ๅพๅ็ๆ - ไฝฟ็จ Stable Diffusion ไธบๆฏไธชๅ้็ๆๅ ณ้ฎๅธง
- ่ฏญ้ณๅๆ - ้่ฟ TTS ๆจกๅ็ๆ้ ้ณๆ็ฝ
- ่ง้ขๅๆ - ๅฐๆๆ็ด ๆๆผๆฅไธบๅฎๆด MP4 ่ง้ข
| ็นๆง | ่ฏดๆ |
|---|---|
| ๐ ็ซฏๅฐ็ซฏ่ชๅจๅ | ไปๆๆฌๅฐ่ง้ข๏ผๅ จๆต็จ AI ้ฉฑๅจ |
| ๐จ ๅค้ฃๆ ผๆฏๆ | ็ตๅฝฑ้ฃใไบๆฌกๅ ใๅๅฎ็ญๅค็ง้ข่ฎพ้ฃๆ ผ |
| โ๏ธ ๅฏ็ผ่พๅ้ | ๆฏๆๆๅจ่ฐๆด Promptใๆ็ฝใ่ฝฌๅบๆๆ |
| ๐ป ่ทจๅนณๅฐๅฎขๆท็ซฏ | ๅบไบ Qt/QML ็ๆก้ขๅบ็จ๏ผๆฏๆ Windows/macOS |
| ๐ง ๆจกๅๅๆถๆ | ๅๅ็ซฏๅ็ฆป๏ผๆจกๅๆๅกๅฏ็ฌ็ซ้จ็ฝฒ |
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ็จๆทๅฑ โ
โ PC ๅฎขๆท็ซฏ (Qt 6.5 / QML / C++) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ REST API / WebSocket
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๅๆบ้จ็ฝฒ (Linux + NVIDIA GPU, Docker Compose) โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Go Server โ โ Gateway โ โ Model Node (FastAPI) โ โ
โ โ Gin :8080 โ โ FastAPI :8000โ โ LLM/txt2img/img2vid/TTS โ โ
โ โโโโโโโฌโโโโโโโโ โโโโโโโโฌโโโโโโโโ โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโ โ
โ โ โ โ โ
โ โโโ MySQL โ โโโ Ollama(host) โ
โ โโโ Redis + Asynq โ โ :11434 โ
โ โโโ MinIO โ โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
็จๆท่พๅ
ฅๆ
ไบ โ LLM ็ๆๅ้ โ SD ็ๆๅพ็ โ TTS ็ๆ้
้ณ โ FFmpeg ๅๆ่ง้ข โ ๅฏผๅบ MP4
| ๅ่ฝ | ๆ่ฟฐ |
|---|---|
| ๆฐๅปบๆ ไบ | ่พๅ ฅๆๆฌ(โค500ๅญ)๏ผ้ๆฉ้ฃๆ ผ๏ผไธ้ฎ็ๆๅ้ |
| ๅ้็ๆฟ | ๆจชๅๅก็ๆตๅฑ็คบ๏ผ็ถๆๅฏ่งๅ๏ผ็ญๅพ /็ๆไธญ/ๅฎๆ/ๅคฑ่ดฅ๏ผ |
| ๅ้็ผ่พ | ็ผ่พ Promptใๆ็ฝๆๆฌใ้ๆฉ่ฝฌๅบๆๆ |
| ๅพ็็ๆ | ๅบไบ SD Turbo ็ๅฟซ้ๆ็ๅพ |
| ่ง้ข้ข่ง | ๅ ็ฝฎๆญๆพๅจ๏ผๆฏๆๆญๆพ/ๆๅ/่ฟๅบฆๆงๅถ |
| ่ง้ขๅฏผๅบ | ๅฏผๅบไธบ MP4 ๆไปถ |
| ้กน็ฎ็ฎก็ | ๅๅฒ้กน็ฎๆฅ็ใๅ ้ค |
- ๅพ็่ง้ข (SVD Img2Vid๏ผๅฏๅ ณ้ญๅนถ่ชๅจ้็บง้ๆ่ง้ข)
- ่ๆฏ้ณไนๅๆ
- ๅค่ฏญ่จ TTS
- ๆน้ๅฏผๅบ
- ไบ็ซฏ้กน็ฎๅๆญฅ
StoryToVideo/
โโโ ๐ client/ # ๆก้ขๅฎขๆท็ซฏ (Qt 6.5 / QML / C++)
โ โโโ ๐ 12.2StoryToVideo/ # Qt/QML ไธป้กน็ฎ (qmake)
โ โโโ src/ # C++ ๆบ็ /ๅคดๆไปถ
โ โโโ qml/ # QML ้กต้ข
โ โโโ scripts/ # ๆๅปบ/่ฟ่ก่ๆฌ๏ผmacOS๏ผ
โ โโโ StoryToVideoGenerator.pro
โ โโโ qml.qrc
โ
โโโ ๐ ios/ # iOS ๅฎขๆท็ซฏ (Swift / SwiftUI)
โ โโโ ๐ StoryToVideo/ # ไธป้กน็ฎไปฃ็
โ โโโ project.yml # XcodeGen ้
็ฝฎ
โ
โโโ ๐ server/ # ๅ็ซฏๆๅก (Go 1.21 / Gin)
โ โโโ ๐ cmd/ # ๆๅกๅ
ฅๅฃ
โ โโโ ๐ config/ # ้
็ฝฎๆไปถ
โ โโโ ๐ internal/ # ไธๅก้ป่พ
โ โโโ Dockerfile # ๅฎนๅจๅ้
็ฝฎ
โ
โโโ ๐ gateway/ # ๆจกๅ็ฝๅ
ณ (Python / FastAPI)
โ โโโ main.py # ่ๅ LLM/SD/TTS ่ฐ็จ
โ โโโ ๐ routers/ # API ่ทฏ็ฑ
โ โโโ ๐ services/ # ๆๅกๅฐ่ฃ
โ
โโโ ๐ model/ # ๆจกๅๆๅก (Python)
โ โโโ ๐ services/ # ๅๆจกๅๆๅก
โ โโโ llm.py # LLM ๅ้็ๆ (Qwen2.5)
โ โโโ txt2img.py # ๆ็ๅพ (SD Turbo)
โ โโโ img2vid.py # ๅพ็่ง้ข (SVD)
โ โโโ tts.py # ่ฏญ้ณๅๆ (CosyVoice)
โ
โโโ ๐ docs/ # ้กน็ฎๆๆกฃ
โ โโโ ARCHITECTURE.md # ๆถๆ่ฎพ่ฎก
โ โโโ apis.md # API ๆๆกฃ
โ โโโ deploy.md # ้จ็ฝฒๆๅ
โ โโโ releases/ # ๅๅธๅฝๆกฃ
โ โโโ ... # ๅ
ถไปๆๆกฃ
โ
โโโ ๐ docker-compose.yml # ๅๆบ Docker ็ผๆ้
็ฝฎ
โโโ ๐ deploy-server.sh # Docker ้จ็ฝฒ่ๆฌ
โโโ ๐ environment.yml # Conda ็ฏๅข้
็ฝฎ
โโโ ๐ start.sh # ๅฟซ้ๅฏๅจ่ๆฌ
โโโ ๐ CHANGELOG.md # ็ๆฌๅๆด่ฎฐๅฝ
โโโ ๐ README.md # ๆฌๆไปถ
| ็ปไปถ | ็ๆฌ่ฆๆฑ |
|---|---|
| ๆไฝ็ณป็ป | Windows 10+ / macOS 12+ / Ubuntu 20.04+ |
| Qt | 6.5+ (with Qt Quick) |
| Go | 1.21+ |
| Python | 3.10+ |
| CUDA | 12.x (GPU ๆจ็) |
| GPU ๆพๅญ | โฅ 8GB (ๆจ่ 16GB+) |
# 0. ๅฎฟไธปๆบๅฏๅจ Ollama๏ผๅนถๆๅๆจกๅ๏ผ
ollama serve
ollama pull qwen2.5:0.5b
# 1. ๅ
้ไปๅบ
git clone https://github.com/JadeSnow7/StoryToVideo.git
cd StoryToVideo
# 2. ้
็ฝฎ็ฏๅขๅ้๏ผๅฏ้๏ผSVD_ENABLED=0 ๅ
ณ้ญๅพ็่ง้ข๏ผ่ชๅจ้็บง้ๆ่ง้ข๏ผ
cp .env.cloud.example .env
# 3. ๅฏๅจๅ
จๆ
./deploy-server.sh up
# 4. ๅฅๅบทๆฃๆฅ
curl -fsS http://127.0.0.1:8000/health
curl -fsS http://127.0.0.1:8080/v1/api/healthๅ็ฝฎๆกไปถ๏ผ
- Docker +
docker compose - NVIDIA Driver + NVIDIA Container Toolkit
- ๅฎฟไธปๆบ Ollama ๅทฒ่ฟ่ก๏ผ้ป่ฎค
11434๏ผ
cp .env.cloud.example .env
./deploy-server.sh upๆๅกๅ ฅๅฃ๏ผ
- Gateway:
http://127.0.0.1:8000 - Go Server:
http://127.0.0.1:8080 - MinIO Console:
http://127.0.0.1:9001
SVD ๅพ็่ง้ข๏ผ
- ้ป่ฎคๅผๅฏ๏ผ
SVD_ENABLED=1๏ผ๏ผ่ฎพ็ฝฎSVD_ENABLED=0ๅฐ่ชๅจ้็บงไธบ้ๆ่ง้ข็ๆฎตๅนถ็ปง็ปญๆต็จใ
- Compose๏ผ
docker-compose.yml - Server ้
็ฝฎ๏ผ
server/config/config.docker.yaml๏ผๅฎนๅจๅ ๆ่ฝฝไธบ/app/config/config.yaml๏ผ - ไบงๅบ็ฎๅฝ๏ผDocker ๅท
data_sharedๆ่ฝฝๅฐๅฎนๅจ/data
cd client/12.2StoryToVideo
# ๆจ่๏ผQt Creator ๆๅผ StoryToVideoGenerator.pro ็ดๆฅๆๅปบ่ฟ่ก
# ๅฝไปค่ก๏ผqmake๏ผ
qmake StoryToVideoGenerator.pro
make -j
# macOS ๆๅ
/่ฟ่ก๏ผHomebrew Qt๏ผ
./scripts/deploy.sh
./scripts/run.sh| ๆนๆณ | ่ทฏๅพ | ่ฏดๆ |
|---|---|---|
POST |
/v1/api/projects |
ๅๅปบ้กน็ฎๅนถ็ๆๅ้ |
GET |
/v1/api/projects/:id |
่ทๅ้กน็ฎ่ฏฆๆ |
GET |
/v1/api/projects/:id/shots |
่ทๅๅ้ๅ่กจ |
POST |
/v1/api/projects/:id/shots/:shot_id |
ๆดๆฐๅ้ |
POST |
/v1/api/projects/:id/video |
่งฆๅ่ง้ขๅๆ |
GET |
/v1/api/tasks/:task_id |
ๆฅ่ฏขไปปๅก็ถๆ |
DELETE |
/v1/api/projects/:id |
ๅ ้ค้กน็ฎ |
ๅๅปบ้กน็ฎ๏ผ
curl -X POST "http://localhost:8080/v1/api/projects?Title=ๆต่ฏๆ
ไบ&StoryText=ไปๅๆไธๅชๅฐ็ซ&Style=cinematic&ShotCount=4"ๅๅบ๏ผ
{
"project_id": "proj-xxxxx",
"text_task_id": "task-text-xxxxx",
"shot_task_ids": ["task-shot-001", "task-shot-002", "task-shot-003", "task-shot-004"]
}ๆฅ่ฏขไปปๅก็ถๆ๏ผ
curl "http://localhost:8080/v1/api/tasks/task-text-xxxxx"ๅๅบ๏ผ
{
"task": {
"id": "task-text-xxxxx",
"status": "finished",
"progress": 100,
"result": {
"resource_type": "storyboard",
"resource_url": "https://minio.xxx/storyboards/xxx.json"
}
}
}| ๅฑ็บง | ๆๆฏ | ่ฏดๆ |
|---|---|---|
| ๅฎขๆท็ซฏ | Qt 6.5+ / QML / C++ | ่ทจๅนณๅฐๆก้ขๅบ็จ |
| ๆๅก็ซฏ | Go 1.21+ / Gin | RESTful API ๆๅก |
| ๆฐๆฎๅบ | MySQL | ๅ ณ็ณปๅๆฐๆฎๅญๅจ |
| ไปปๅก้ๅ | Redis + Asynq | ๅผๆญฅไปปๅกๅค็ |
| ๅฏน่ฑกๅญๅจ | MinIO | ๅพ็/่ง้ข่ตๆบๅญๅจ |
| ๆจกๅ็ฝๅ ณ | Python / FastAPI | AI ๆจกๅ็ผๆ |
| LLM | Qwen2.5-0.5B (Ollama) | ๅ้่ๆฌ็ๆ |
| ๆ็ๅพ | SD Turbo (diffusers) | ๅฟซ้ๅพๅ็ๆ |
| TTS | CosyVoice | ่ฏญ้ณๅๆ |
A: ๆฃๆฅไปฅไธๅ ็น๏ผ
- ็กฎ่ฎค MinIO ๆๅกๆญฃๅธธ่ฟ่ก
- ๆฃๆฅ
image_pathๆฏๅฆไธบๅฎๆด URL๏ผMinIO ่ฟๅ็ๆฏ็ญพๅ URL๏ผ - ๅฎขๆท็ซฏ็ฝ็ปๆฏๅฆ่ฝ่ฎฟ้ฎ MinIO ๅฐๅ
A:
- ๆฃๆฅ Redis ๆๅกๆฏๅฆๆญฃๅธธ
- ๆฅ็ server ๆฅๅฟๆฏๅฆๆไปปๅกๅ ฅ้
- ็กฎ่ฎค Gateway ๆๅกๅฏ่ฎฟ้ฎ
A:
- ๆฃๆฅ GPU ๆพๅญๆฏๅฆๅ ่ถณ๏ผๅปบ่ฎฎ 8GB+๏ผ
- ็กฎ่ฎค SD Turbo ๆจกๅๅทฒไธ่ฝฝ
- ๆฅ็ txt2img ๆๅกๆฅๅฟ
A: ่ฎพ็ฝฎ็ฏๅขๅ้ STORYTOVIDEO_API_BASE_URL๏ผ้ป่ฎค http://127.0.0.1:8080๏ผ๏ผ
export STORYTOVIDEO_API_BASE_URL=http://your-server:8080๏ผ่ฏปๅ้ป่พ่ง client/12.2StoryToVideo/src/ApiConfig.h๏ผ
ๆฌข่ฟๆไบค Issue ๅ Pull Request๏ผ
- Fork ๆฌไปๅบ
- ๅๅปบ็นๆงๅๆฏ (
git checkout -b feature/AmazingFeature) - ๆไบคๆดๆน (
git commit -m 'Add some AmazingFeature') - ๆจ้ๅฐๅๆฏ (
git push origin feature/AmazingFeature) - ๆไบค Pull Request
ๆฌ้กน็ฎ้็จ MIT ๅ่ฎฎๅผๆบ๏ผ่ฏฆ่ง LICENSE ๆไปถใ
| ่ง่ฒ | ่่ดฃ |
|---|---|
| ๅฎขๆท็ซฏๅผๅ | Qt/QML ็้ขใ็ฝ็ปๅฐ่ฃ ใๆฌๅฐๅญๅจ |
| ๆๅก็ซฏๅผๅ | Go APIใไปปๅก้ๅใๆฐๆฎๅบ่ฎพ่ฎก |
| AI ๅทฅ็จๅธ | ๆจกๅ้จ็ฝฒใPrompt ไผๅใๆๆ่ฐไผ |
- GitHub Issues: ๆไบค้ฎ้ข
- GitHub Discussions: ่ฎจ่ฎบๅบ
๐ ๆๅๆดๆฐ๏ผ 2026.01.19 | ็ๆฌ๏ผ v1.0.0