视频项目(ZWQ): - 演员工作台保存后「我的演员」仍 0 个:保存时加入资产库(in_library=True) - 资产详情「应用当前角色」自动送审(不再要手动点灰盾) - 「我的演员」卡 + 待生成 seed 卡补删除入口(垃圾桶,两步确认) - 新增场景未生成就刷新会丢:sceneDrafts 按项目持久化 localStorage - 场景 AI 生成强制叠加「无真人」约束,避免出真人致视频被火山拒 - 进入项目默认落到当前阶段(不再恒显第 1 阶段) - 视频已出但进度卡 3/4:submit/poll/adopt 幂等补推 current_stage→VIDEO, 否则 settle_video_completion 因阶段守卫直接返回、永不收口 completed 图片工作台(PMC): - 生图走 action 全局单飞锁致并发重跑/多平台套图被拒成「失败/少出图」: action 加 concurrent 选项,生图不占单飞锁 - 切模块再切回状态丢/数量少:每批各自落盘 pendingIds(onSubmitted 回传), 切回时全部批次各自续轮询 附:含一处早前未提交的图片创作改动(选火山+传参考图强制切 gpt-image-2 + gen 气泡溢出 CSS)。 新增/通过测试:AttachOfficialModel、商品图删除、视频卡阶段收口、参考图强切模型。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
AirShelf Backend
All backend code lives under AirShelf/core/backend by project decision.
Local bootstrap
cd /Users/maidong/Desktop/zyc/qiyuan_gitea/AirShelf/core/backend
python3.12 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
python manage.py migrate
python manage.py runserver 0.0.0.0:8000
Start workers in separate terminals:
cd /Users/maidong/Desktop/zyc/qiyuan_gitea/AirShelf/core/backend
source .venv/bin/activate
celery -A airshelf worker -l info -P threads -c 4 # 线程池 4 并发(出图/视频可并行;勿用 -P solo 串行)
ffmpeg must be available on PATH for Stage5 export jobs.
Runtime layout
- Django project:
airshelf - Domain apps:
apps/* - Settings module:
airshelf.settings.development - Celery app:
airshelf.celery
Secrets must be supplied by environment variables or .env; never commit values from account.md.
Useful commands
python manage.py check
python manage.py makemigrations --check --dry-run
python manage.py migrate
python manage.py bootstrap_volcano_models
python manage.py test apps.accounts apps.projects apps.billing