File size: 2,998 Bytes
2935b6d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#!/usr/bin/env python3
"""
打包DreamRenderer应用用于部署到Hugging Face Spaces
"""

import os
import shutil
import zipfile
from datetime import datetime

def create_deployment_package():
    """创建部署包"""
    
    # 需要打包的文件
    files_to_package = [
        'README.md',
        'requirements.txt', 
        'app.py',
        'dream_renderer.py',
        'bbox_component.html'
    ]
    
    # 创建部署目录
    deploy_dir = 'dreamrenderer_deploy'
    if os.path.exists(deploy_dir):
        shutil.rmtree(deploy_dir)
    os.makedirs(deploy_dir)
    
    print("📦 正在打包DreamRenderer应用...")
    
    # 复制文件
    for file in files_to_package:
        if os.path.exists(file):
            shutil.copy2(file, deploy_dir)
            print(f"✅ 已复制: {file}")
        else:
            print(f"❌ 文件不存在: {file}")
            return False
    
    # 创建ZIP包
    timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
    zip_filename = f'dreamrenderer_{timestamp}.zip'
    
    with zipfile.ZipFile(zip_filename, 'w', zipfile.ZIP_DEFLATED) as zipf:
        for file in files_to_package:
            if os.path.exists(os.path.join(deploy_dir, file)):
                zipf.write(os.path.join(deploy_dir, file), file)
    
    print(f"\n🎉 部署包创建成功!")
    print(f"📁 文件夹: {deploy_dir}/")
    print(f"📦 ZIP包: {zip_filename}")
    
    # 显示部署说明
    print("\n" + "="*60)
    print("📋 部署说明:")
    print("="*60)
    print("1. 访问: https://huggingface.co/spaces")
    print("2. 点击 'Create new Space'")
    print("3. 配置:")
    print("   - Space name: dreamrenderer")
    print("   - SDK: Gradio")
    print("   - Hardware: ZeroGPU ⚠️")
    print("4. 上传以下文件(按顺序):")
    for i, file in enumerate(files_to_package, 1):
        print(f"   {i}. {file}")
    print("5. 等待构建完成")
    print("="*60)
    
    return True

def create_git_commands():
    """生成git命令"""
    print("\n🔧 Git部署命令:")
    print("="*40)
    print("# 如果你选择使用Git方式部署,运行以下命令:")
    print("git clone https://huggingface.co/spaces/YOUR_USERNAME/dreamrenderer")
    print("cd dreamrenderer")
    print("")
    print("# 复制文件")
    current_path = os.getcwd()
    files = ['README.md', 'requirements.txt', 'app.py', 'dream_renderer.py', 'bbox_component.html']
    for file in files:
        print(f"cp {current_path}/{file} .")
    print("")
    print("# 提交")
    print("git add .")
    print('git commit -m "Initial DreamRenderer implementation"')
    print("git push")
    print("="*40)

if __name__ == "__main__":
    print("🚀 DreamRenderer 部署打包工具")
    print("="*50)
    
    if create_deployment_package():
        create_git_commands()
        print("\n✨ 准备完毕!现在你可以部署到Hugging Face Spaces了!")
    else:
        print("\n❌ 打包失败,请检查文件完整性")