127 lines
3.5 KiB
Python
127 lines
3.5 KiB
Python
import os
|
||
import json
|
||
import time
|
||
import requests
|
||
from getpass import getpass
|
||
import webbrowser
|
||
from pathlib import Path
|
||
|
||
def setup_github():
|
||
"""一键设置GitHub仓库"""
|
||
print("""
|
||
=== WanAPI GitHub仓库设置向导 ===
|
||
这个向导将帮助您:
|
||
1. 创建GitHub个人访问令牌(Token)
|
||
2. 创建专用的图片仓库
|
||
3. 自动配置WanAPI
|
||
""")
|
||
|
||
# 获取用户输入
|
||
email = input("\n请输入GitHub邮箱: ").strip()
|
||
|
||
# 指导用户创建token
|
||
print("""
|
||
\n=== 创建访问令牌(Token) ===
|
||
1. 正在为您打开GitHub Token创建页面...
|
||
2. 请登录GitHub(如果需要)
|
||
3. 在打开的页面中:
|
||
- 设置Token名称为:WanAPI
|
||
- 设置有效期为:No expiration
|
||
- 勾选 repo 权限
|
||
- 点击最下方的 [Generate token] 按钮
|
||
4. 复制生成的token
|
||
""")
|
||
|
||
# 打开token创建页面
|
||
webbrowser.open('https://github.com/settings/tokens/new')
|
||
token = getpass("\n请粘贴生成的Token: ").strip()
|
||
|
||
if not token:
|
||
print("❌ Token不能为空")
|
||
return
|
||
|
||
# 验证token
|
||
headers = {
|
||
"Authorization": f"token {token}",
|
||
"Accept": "application/vnd.github.v3+json"
|
||
}
|
||
|
||
try:
|
||
# 验证token
|
||
user_response = requests.get(
|
||
"https://api.github.com/user",
|
||
headers=headers
|
||
)
|
||
|
||
if user_response.status_code != 200:
|
||
print("❌ Token无效,请检查是否正确复制")
|
||
return
|
||
|
||
username = user_response.json()['login']
|
||
print(f"\n✅ Token验证成功!欢迎 {username}")
|
||
|
||
# 创建仓库
|
||
repo_name = "wanapi-images"
|
||
repo_data = {
|
||
"name": repo_name,
|
||
"description": "WanAPI图片存储仓库",
|
||
"private": False,
|
||
"auto_init": True
|
||
}
|
||
|
||
print(f"\n正在创建仓库 {repo_name}...")
|
||
|
||
repo_response = requests.post(
|
||
"https://api.github.com/user/repos",
|
||
headers=headers,
|
||
json=repo_data
|
||
)
|
||
|
||
if repo_response.status_code == 201:
|
||
print("✅ 仓库创建成功!")
|
||
elif repo_response.status_code == 422:
|
||
print("ℹ️ 仓库已存在,继续使用")
|
||
else:
|
||
print(f"❌ 仓库创建失败:{repo_response.json().get('message')}")
|
||
return
|
||
|
||
# 更新配置文件
|
||
config_path = Path(__file__).parent / 'config.json'
|
||
try:
|
||
if config_path.exists():
|
||
with open(config_path, 'r', encoding='utf-8') as f:
|
||
config = json.load(f)
|
||
else:
|
||
config = {}
|
||
|
||
config.update({
|
||
"GITHUB_TOKEN": token,
|
||
"GITHUB_REPO": f"{username}/{repo_name}",
|
||
"GITHUB_BRANCH": "main"
|
||
})
|
||
|
||
with open(config_path, 'w', encoding='utf-8') as f:
|
||
json.dump(config, f, indent=4, ensure_ascii=False)
|
||
|
||
print(f"""
|
||
=== 设置完成 ===
|
||
✅ 配置已更新:
|
||
- 仓库:{username}/{repo_name}
|
||
- Token:{token[:4]}...{token[-4:]}
|
||
- 分支:main
|
||
|
||
🎉 现在您可以:
|
||
1. 重启ComfyUI
|
||
2. 使用WanAPI节点上传图片和生成视频了!
|
||
""")
|
||
|
||
except Exception as e:
|
||
print(f"❌ 配置文件更新失败:{str(e)}")
|
||
return
|
||
|
||
except Exception as e:
|
||
print(f"❌ 设置失败:{str(e)}")
|
||
return
|
||
|
||
if __name__ == "__main__":
|
||
setup_github() |