在 CNB H20 GPU 桌面空间里运行官方 LTX Desktop Linux 版,并把程序、Python runtime 和最小可用模型集预置进工作区镜像。
这个仓库现在分成两条明确的链路:
workspace-fat 镜像,开发空间直接使用这份预制镜像cncoka 仓库H20 GPU 空间里直接试 LTX Desktop.deb、runtime、模型下载/workspace 做持久化cnb:arch:amd64:gpu:H20LTX Desktop 1.0.2docker.cnb.cool/cncoka/ltx-desktop-cnb-final/workspace-fat:latestdocker.cnb.cool/cncoka/ltx-desktop-cnb-runtime/workspace-runtime:latestdocker.cnb.cool/cncoka/ltx-desktop-cnb-ltx23/workspace-ltx23:latestLTX Desktop 安装包完成安装LTX-2.3 distilled + x2 upscalerGemma 3 12B text encoderZ-Image-Turbo 轻量占位目录/opt/ltx-desktop-cnb/data/workspace/LTXDesktop/outputs/workspace/LTXDesktop/imports这样做的目的很直接:
/workspace,避免结果丢失10002 端口。workspace-fat:latest 已由手动镜像构建成功,新空间就会直接拉这份镜像。.deb、runtime 和模型。LTX Desktop (CNB),默认会先把运行目录与镜像内置 Python runtime / 模型对齐,并预写首启状态;视频工作流会额外放一个轻量 Z-Image-Turbo 占位目录,尽量直接跳过许可证和模型目录初始化页面。/workspace/LTXDesktop/outputs。私有空间默认把 noVNC/VNC 控制台改成免密码,并直接使用自动连接页面;同时会给 websockify 打开心跳,尽量避免浏览器空闲后被网关断开。若连接真的掉了,重新打开同一个端口也会自动重连当前桌面。若你确实想恢复密码认证,可以在启动前显式设置 VNC_AUTH_MODE=vncauth,并配合 VNC_PASSWORD 使用。
如果你刚更新过仓库脚本,但还没手动重跑一次镜像构建,工作区仍会继续使用上一次成功构建的镜像版本。
如果桌面图标没有正常启动,也可以在终端里手动执行同一条“先预热、再启动”的入口:
/workspace/scripts/open-ltx-desktop.sh
如果想重新安装官方包:
sudo bash /workspace/scripts/install-ltx-desktop.sh
如果想手动重新预热应用运行时:
bash /workspace/scripts/prewarm-ltx-desktop.sh
如果你想在已经开好的空间里手动重拉一次 CNB 模型仓的最小模型集,可以执行:
bash /workspace/scripts/fetch-cnb-fast-models.sh
然后跑一条最小 smoke test:
bash /workspace/scripts/generate-smoke-test.sh
这套预拉逻辑当前默认会:
https://cnb.cool/ai-models/Lightricks/LTX-2.3 拉 distilled checkpoint + x2 upscalerhttps://cnb.cool/ai-models/google/gemma-3-12b-it 拉本地 text encoderLTX Desktop 默认 models/ 目录540p / 8fps / 9 帧 的小视频到 /workspace/LTXDesktop/outputs现在不再用“一条流水线串完全部镜像”的方式,而是拆成 3 次手动构建:
runtime
用 .docker/workspace-runtime.dockerfile 直接从更轻的 nvidia/cuda:12.6.2-cudnn-runtime-ubuntu24.04 构建最小桌面底座,只补 openbox + tigervnc + noVNC + websockify 这类运行 LTX Desktop 必需组件,并在其上安装 LTX Desktop + Python runtime,产出 cncoka/ltx-desktop-cnb-runtime 里的 workspace-runtime:latestltx23
用 .docker/workspace-base.dockerfile 叠上 LTX-2.3 distilled + x2 upscaler,产出 cncoka/ltx-desktop-cnb-ltx23 里的 workspace-ltx23:latestfinal
用 .docker/workspace-fat.dockerfile 再叠 Gemma 3 12B,生成并推送 cncoka/ltx-desktop-cnb-final 里的 workspace-fat:latest镜像里把大资源拆成了 3 个可单独 push 的镜像层:
LTX Desktop 程序 + Python runtimeLTX-2.3 distilled + x2 upscalerGemma 3 12B这次不再继承 desktop:main,也不再依赖 CNB 预装桌面镜像;而是直接从更轻的 CUDA runtime 底座补最小桌面组件,避免上游桌面基底自身就把 Docker 制品推送体积拉得过大。
这样做是为了同时避开 CNB Docker registry 64 layers 限制、desktop:main 继承链过重导致的推送失败,以及单个构建总时长约 1h 的执行上限。
另外 docker build / docker push 外层还包了一层心跳脚本,避免在 exporting layers 这类长时间静默阶段被 CNB 以“10 分钟无输出”强杀。
推荐的手动构建顺序:
pwsh ./scripts/ensure-cnb-image-repos.ps1
然后执行:
pwsh ./scripts/start-cnb-image-build.ps1 -Target runtime pwsh ./scripts/start-cnb-image-build.ps1 -Target ltx23 pwsh ./scripts/start-cnb-image-build.ps1 -Target final
如果你确认某个旧镜像包可以先删再重建,可以加 -PurgePackage:
pwsh ./scripts/start-cnb-image-build.ps1 -Target ltx23 -PurgePackage
注意:
runtime 成功后,后续 ltx23 才能正常构建ltx23 成功后,后续 final 才能正常构建/workspace/LTXDesktop/imports
放你想长期保留的输入素材/workspace/LTXDesktop/outputs
放生成结果/opt/ltx-desktop-cnb/data
镜像内置的应用数据、Python runtime、模型和日志/opt/ltx-desktop-cnb/fetch
镜像内置的模型原始落盘目录LTX Desktop 上游默认会把 models、outputs 等目录都放在应用数据目录里。这个仓库会继续把 outputs 单独软链到 /workspace,其余大文件留在镜像内置目录。
LTX_DESKTOP_VERSION
默认 1.0.2LTX_DESKTOP_DEB_NAME
覆盖安装包文件名,默认 LTX-Desktop-amd64.debLTX_DESKTOP_REPO_PACKAGE_DIR
覆盖代码仓内置 .deb 包目录,默认 /workspace/vendor/ltx-desktop/v${LTX_DESKTOP_VERSION}LTX_DESKTOP_DATA_HOME
覆盖应用数据根目录;镜像版默认 /opt/ltx-desktop-cnb/dataLTX_DESKTOP_RUN_AS
user 或 root,默认 userLTX_DESKTOP_PREFETCH_MODELS
是否在初始化阶段阻塞式预拉 CNB 模型仓,镜像版默认 0VNC_AUTH_MODE
控制桌面认证方式,默认 none;设置成 vncauth 时恢复 VNC 密码认证VNC_PASSWORD
仅当 VNC_AUTH_MODE=vncauth 时生效,默认 123qwe=LTX_CNB_FETCH_ROOT
从 CNB 模型仓下载后的落盘目录,镜像版默认 /opt/ltx-desktop-cnb/fetchLTX_CNB_FETCH_TARGETS
控制 fetch-cnb-fast-models.sh 只拉 ltx23、只拉 gemma 或两者都拉,默认 ltx23,gemmaLTX_APP_MODELS_DIR
覆盖 LTX Desktop 的模型目录,默认 ${LTX_APP_DATA_DIR}/modelsLTX_SMOKE_PROMPT
覆盖 smoke test 的提示词LTX_DESKTOP_DEB_URLS
安装 .deb 时尝试的下载地址列表,空格分隔;仅在代码仓里没有内置安装包时才会走这里的兜底地址LTX_DESKTOP_RELEASE_BASE_URLS
预热 Python runtime 时尝试的 release 基础地址列表,空格分隔;镜像构建时通常不会走到这里,主要保留给手动恢复场景LTX_DESKTOP_PYTHON_URLS
预热 Python runtime 的直接归档地址列表,主要用于兼容旧版本;默认留空scripts/install-ltx-desktop.shscripts/launch-ltx-desktop.sh如何打开桌面.md云原生桌面使用说明.md