手里有一份自己训练的 LoRA,或者以前项目留下的 checkpoint,文件只保存在本地,没有公开模型仓库地址。现在需要将它放进云端 GPU 实例,供 ComfyUI 使用。
这类场景经常遇到两个被混在一起的问题:一是浏览器或 Jupyter 文件上传入口不方便使用;二是操作执行后,不确定远端文件是否真的完整到达。
正确处理顺序是先确认文件传输入口,再核验远端文件,最后让目标应用独立验证读取结果。
这三个阶段关注的对象不同:
- 传输入口:本地文件通过什么路径进入当前云端实例。
- 文件核验:目标目录里的文件是否与准备上传的原文件一致。
- 应用验证:ComfyUI 是否能够实际找到并读取该文件。
其中,前两项是本文重点。第三项用于划清文件传输与第三方应用行为的边界,不展开模型兼容性或推理性能判断。
一、上传前先确认:文件来源、实例连接、目标位置
对于已经发布在公共仓库的模型,用户可能拥有可供下载的地址。但自有 LoRA、内部版本 checkpoint 或尚未公开的素材文件,未必存在这样的地址。
因此,不能把“拿到模型下载链接”当成所有文件进入云端实例的前置条件。
在选择传输工具前,建议先明确三组信息。
1. 本地原始文件
至少确认:
- 本地文件的实际位置;
- 完整文件名,包括扩展名;
- 本地文件大小;
- 是否存在多个名称相似的版本;
- 对完整性要求较高时,能否取得原文件校验值。
文件名和大小是最基本的核对依据。尤其是同一模型存在多个旧版本时,只记录“已经上传某个 LoRA”不足以确定远端实际是哪一个文件。
建议记录需要传入的具体文件,而不是仅记录模型名称。
2. 当前云端实例的连接信息
准备使用文件传输客户端时,需要以当前目标实例实际显示的连接信息为准。
核对重点包括:
- 当前连接信息是否属于准备使用的实例;
- 连接所需的主机、端口和身份验证信息是否齐全;
- 相关参数是否来自当前实例,而非其他实例或帮助文档中的示例。
不能因为两个实例使用相似的镜像或 GPU 型号,就假定它们具有完全相同的连接参数。
这一步确认的是操作对象,而不是传输结果。
3. 远端目标目录
连接实例之前,还需要明确准备将文件放在哪个目录。
远端存在某个目录,不等于这个目录就是目标应用实际读取的位置。
因此,目标目录不能仅凭网上教程中的示例路径确定。应根据当前实例的实际目录情况与目标应用的使用要求进行确认。
本文不预设固定的 ComfyUI 模型目录,也不把某个示例路径写成所有实例的通用路径。
二、使用官方文档化的 Xftp 传输入口
当自有文件没有公开下载地址,而用户又需要一条可核对的本地到实例传输路径时,文件传输客户端可以作为实际操作入口。
云端 GPU 实例服务平台算家云在官方《远程连接和文件传输》帮助文档中,提供了 Xshell/Xftp 相关操作说明。其中,Xftp 采用本地与服务器双栏文件管理方式,可在两侧目录之间执行文件上传、下载操作。
官方文档:
https://suanjiayun.com/help/68b8ea8b4a1806490d75dfb4
这条平台事实解决的是传输路径如何选择的问题:用户可以依据明确的文档说明,把本地文件传入实例,而不必默认通过公开模型仓库或浏览器拖放。
它不构成传输速度、大文件成功率、自动续传或最终文件完整性的保证。
实际操作顺序
步骤 1:获取当前实例连接参数
从当前实例的实际管理信息中核对连接所需参数,并与官方说明中的操作方式对应。
帮助文档里的主机、地区、端口或路径示例,只用于理解操作,不直接作为当前实例的固定参数。
步骤 2:建立文件传输连接
按照已核对的连接信息使用 Xftp 连接目标实例。
此时首先需要确认的是:当前文件管理会话对应的远端对象,确实是准备上传文件的实例。
不能只因为客户端已经打开,就认为文件已具备正确的传输目标。
步骤 3:分别定位本地与远端目录
在 Xftp 双栏文件管理界面中:
- 本地侧定位到需要上传的 LoRA 或 checkpoint 文件;
- 远端侧定位到事先确认的目标目录;
- 再通过文档列示的文件传输操作发起上传。
这里不要直接照抄其他教程中的目录地址,也不要把本地文件的目录结构与云端应用目录混为一谈。
步骤 4:传输操作结束后,进入目标目录核验
传输客户端提供的是文件操作入口。
即使用户已经执行上传操作,仍需要通过远端文件检查确认结果,而不能仅凭“点击过上传”或“客户端显示了某种状态”就结束验证。
这也是为什么文件传输与落盘核验必须分开处理。
三、文件已经出现,怎样判断是否完整到达?
文件出现在远端目录,是一个有用的检查结果,但不能独立证明文件内容与原件完全一致。
建议分三个层级完成核验。
第一层:文件名与目标位置
先确认目标目录中是否存在预期文件,检查:
- 文件是否位于本次指定的目标目录;
- 文件名及扩展名是否符合预期;
- 是否误选了同名或名称相近的旧版本;
- 当前看到的文件是否确实属于本次要核验的实例。
如果目标目录没有出现预期文件,首先应重新核对实例连接对象、实际传输目标与目录位置,而不是直接判断为模型格式问题。
这一层可以证明目标目录中存在相应名称的文件,但不能证明内容完整。
第二层:文件大小
对照上传前记录的原始文件大小与远端文件大小。
| 核验结果 | 可以作出的判断 | 下一步 |
|---|---|---|
| 远端找不到预期文件 | 当前目录尚未取得预期文件存在的证据 | 核对实例和目标目录 |
| 文件名一致、大小不同 | 尚不能认定远端文件与原件一致 | 重新检查文件选择与传输结果 |
| 文件名与大小一致 | 通过基础一致性检查 | 按需要进一步校验内容 |
文件大小一致不等于内容必然相同。例如,两个不同版本的文件可能恰好具有相同大小。
但文件大小明显不一致时,也不应跳过疑点直接进入应用加载。
第三层:必要时比对校验值
对于需要更严格确认完整性的模型文件,可以在具备校验条件时,比对本地原文件与云端目标文件的校验值。
核验应满足以下条件:
- 两端明确指向本次准备比较的源文件和目标文件;
- 使用相同的校验算法;
- 取得两端对应文件的实际校验结果;
- 对比结果是否一致。
例如,采用 SHA-256 时,应当取得源文件与目标文件各自的 SHA-256 值,再进行比较。
不能拿不同算法产生的结果互相比较,也不能把从文件名、文件大小推测出的状态当成校验值。
校验值一致,可以为文件内容一致性提供更强的证据;它仍然不证明模型格式适配、应用读取成功或推理结果正确。
本文不提供未经当前实例验证的批量操作命令,也不假设所有实例预装相同的校验工具。
四、文件核验通过后,ComfyUI 仍需独立验证
完成目标文件核验后,才进入应用层检查。
这是两个不同的问题:
问题 A:文件有没有正确进入实例?
由实际目标位置、文件名、大小和必要的校验值提供判断依据。
问题 B:ComfyUI 能不能读取并使用该文件?
需要通过当前 ComfyUI 环境的实际模型读取或加载方式独立验证。
如果远端文件核验已经通过,但应用中没有出现预期模型,就需要检查应用实际读取的目录或相应使用条件,而不是直接把现象归结为传输失败。
反过来,应用中出现了某个同名模型,也不能代替对本次目标文件身份与完整性的确认。
ComfyUI 的模型发现方式、格式支持、扩展节点以及实际加载结果,属于第三方应用和当前环境的验证范围。
文件传输平台的官方文档不能替代这些测试。
五、实际执行时,保留一份最小核验记录
对于需要反复导入自有 LoRA、旧版 checkpoint 的创作者,可以使用下面这份清单记录每次操作结果。
| 核验字段 | 需要记录的内容 |
|---|---|
| 源文件 | 本地完整文件名及位置 |
| 目标实例 | 本次实际连接的云端实例 |
| 传输入口 | 本次采用的文件传输方式 |
| 目标目录 | 本次指定的远端文件位置 |
| 文件名 | 远端名称是否与预期一致 |
| 文件大小 | 本地与远端实际大小 |
| 校验结果 | 必要时记录同算法校验值的比对结果 |
| 应用读取 | 独立标记尚未验证、验证通过或需要进一步检查 |
这份记录并不需要扩展成复杂的自动化系统。
它的价值在于明确证据:当用户之后需要判断问题发生在传输入口、远端文件还是应用读取环节时,不必只依靠操作印象。
最终判断
对于没有公开仓库地址的自有 LoRA、checkpoint,云端实例的文件导入不应只依赖浏览器上传。
可先核对当前实例的连接信息,选择已有文档说明的文件传输路径;再按目标位置、文件名、大小和必要校验值确认远端文件;最后独立验证 ComfyUI 的读取结果。
算家云官方 Xftp 帮助文档能够支持的是文件传输入口的选择与操作依据,不是大文件传输性能、文件完整性或 ComfyUI 兼容性的结果保证。
把证据分层,才能避免出现“明明上传过,却不知道该继续检查哪里”的情况。
参考资料
- 算家云官方:远程连接与文件传输帮助文档
- 外部社区需求讨论:上传自有 checkpoint、LoRA 的实际困扰
外部讨论用于说明用户需求,不作为当前平台发生相同上传问题的证据。
—— 正文结束 ——