​ 上次我们介绍了在云切片上私有部署 LTC-Video 开源大模型的方法很多朋友说不能用 ComfyUI也不能远程访问。其实用点小技巧是可以的不仅可以用 ComfyUI也可以通过 API 远程访问云切片上的大模型。这次我们就用开源 Z-Image 大模型来演示一下如何用。(获取免费算力的推广链接https://marketing.csdn.net/questions/Q2604140858304426315?utm_sourcezhengwenspm1000.2115.3001.5952)1 云切片上的部署1.1 comfy 服务​ 环境变量和 diffusers、hf、modelscope 软件的安装可参考上一篇我们直接开始模型部署。Z-Image 已经是 ComfyUI 支持的模型了安装 ComfyUI 是可以直接使用的这给私有部署也带来了一些方便。大模型下载只需要从 Comfy-Org/z_image 下载已经是配好工作流的模型权重文件和 text_encoder 即可简化了很多本地操作步骤。​ 首先是安装 ComfyUI在切片上启动一个终端通过 git 拉取 ComfyUIgit clone https://github.com/comfyanonymous/ComfyUI.git如果遇到证书之类的问题可使用带 -c http.sslVerifyfalse 参数的 git 命令。ComfyUI 的代码拉回来之后不要按照 ComfyUI 中的方法启动 ComfyUI 服务因为云切片有些特殊它已经安装好了适配 ROCm 环境的 torch 和相关的软件包如果按照文档的方法创建一个独立的 env在这个 env 中部署相关软件包很多软件包的安装会失败。怀疑是当前环境的 ROCm 环境版本有关我也没有仔细研究反正我的方法就是直接在云切片上部署。云切片有个好处就是每次 destroy 实例之后切片都会恢复初始状态适合折腾非常 nice。​ 进入 ComfyUI 目录直接安装依赖软件包cd ComfyUI pip install -r requirements.txt安装完成后就可以下载模型文件了我们选择使用 14B 的基础模型因为显存够大。在 ComfyUI 上私有部署 Z-Image 大模型需要三个模型文件1文本编码器Text Encoderqwen_3_4b.safetensors大约 8G部署到 ComfyUI/models/text_encoders/ 目录中从 modelscope 直接下载到这个目录即可modelscope download --model Comfy-Org/z_image split_files/text_encoders/qwen_3_4b.safetensors --local_dir /workspace/ComfyUI/models/text_encoders2扩散模型Diffusion Modelz_image_bf16.safetensors大约 12G部署到 ComfyUI/models/diffusion_models/ 目录中同样是直接下载到这个目录modelscope download --model Comfy-Org/z_image split_files/diffusion_models/z_image_bf16.safetensors --local_dir /workspace/ComfyUI/models/diffusion_models3VAE 解码器ae.safetensors大约 335M部署到 ComfyUI/models/vae/ 目录中同样是直接下载modelscope download --model Comfy-Org/z_image split_files/vae/ae.safetensors --local_dir /workspace/ComfyUI/models/vae准备完模型权文件后剩下的工作就是导入模型工作流定义文件然后启动 comfy 服务。工作流定义文件可以直接从 git 上取位置在https://github.com/Comfy-Org/workflow_templates/blob/main/templates/image_z_image.json下载后放在 /workspace/ComfyUI/user/default/workflows/ 目录中第一次运行 comfy 之前这个目录可能还不存在所以必须时手工建立这个目录。最后使用下面的命令启动 comfy 服务python main.py --listen 0.0.0.0 --port 8188因为云切片上查不了 ifconfig所以就直接用了 0.0.0.0表示监听所有本地网络上的连接端口号用的是默认的 8188这个可以改成其他端口。如果命令执行正常最后看到打印 “To see the GUI go to: http://0.0.0.0:8188” 就算成功了。1.2 打通网络​ 此时再开启一个终端执行这个命令curl http://0.0.0.0:8188会看到正常的反馈此时说明通过 http 访问 comfy 服务是正常的。接下来要做的事情就是打通网络让普通电脑能访让这个切片上的 comfyUI 服务。能做这个事情的东西很多比如 Cpola花生壳还有 ngrok我选择 ngrok因为亲见有人做成过了。安装 ngrok 的方法就是照着别人的方法做就行了首先用这个命令安装 ngrokcurl -sSL https://ngrok-agent.s3.amazonaws.com/ngrok.asc \ | sudo tee /etc/apt/trusted.gpg.d/ngrok.asc /dev/null \ echo deb https://ngrok-agent.s3.amazonaws.com buster main \ | sudo tee /etc/apt/sources.list.d/ngrok.list \ sudo apt update \ sudo apt install ngrok中间会看到一些 W: 开头的警告信息但是不影响使用。然后就是准备客户端的事情首先到 ngrok 网站上注册一个账号直接访问https://dashboard.ngrok.com/signup注册一个免费账号注册成功后就可以从这个网站得到一个 Authtoken记下这个 token然后在切片上执行这条命令ngrok config add-authtoken 你的 token然后在切片上打开一个映射端口我们启动 comfy 用的是默认的 8188 端口所以这里要指定 8188 端口ngrok http 8188这条命令执行成功会看到几条转换信息记住其中最重要的一条https://****.ngrok-free.dev - http://localhost:8188这是个转换规则。有一点需要注意免费用户的url 每次重启 ngrok 都会变化客户端访问也要跟着变化。2 远程访问大模型2.1 连接 ComfyUI​ 本地电脑的浏览器中输入那个 “****.ngrok-free.dev” 转换地址等待浏览器反应。初次使用会弹出一个 ngrok 的提示页面点击“访问网站”确认就可以访问云切片上的 comfy 服务了。这个过程有点慢耐心等待观察云切片中的两个服务主要不报错最终就会看到一个 ComfyUI 的标准界面在这个页面中选择“模板”在生成类型部分选择图像在过滤中输入 z-image此时 Z-Image 就会出现在前排点击进入生图的界面。在左侧的模型库中能看到服务端已经配置好的模型​ 这时候就可以测试一下生图模型了在“Text to Image” 窗口输入一段提示词“【主体】北欧神话女神雅典娜真人写实风格西式性感着装例如白色希腊长袍露肩或单肩设计带金色腰带正面站立略微侧转约3/4角度身材修长面容精致冷艳金色长发微卷整体占据画面绝大部分区域约70%。【背景】极简风格颜色过渡平缓如浅灰蓝到米白渐变无明显纹理或复杂图案适合叠加文字。【辅助元素】左上区域点缀北欧神话相关元素如古代如尼文符文、简约的月桂花环或战矛与盾牌轮廓需保持线条简洁、半透明淡金色。【整体风格】线条干净利落光影柔和高饱和度但色调统一商业插画感强调画面留白以兼容文字排版。【画质】高细节写实摄影质感。”​ 点击右上角的蓝色“运行”按钮等待一会儿就会看到生成的图像了。这个过程根据网络情况可能会比较慢此时可以看看切片上的运行状态在 comfy 服务的运行状态可以看到生图的进度在 ngrok 服务的状态可以看到 http request 状态纪录滚动。只要这俩货正常等着就行了。这就是生图的结果2.2 API 访问​ 有很多访问 comfy API 的客户端库比如 comfyui_xycomfy-api-client 等我们选择简单的 comfyui_xy。用 pip 在客户端安装 comfyui_xy然后运行这段代码import json from comfyui_api import ComfyUiClient # 将下面的 URL 替换为你实际的 ngrok 地址 client ComfyUiClient(urlhttps://****.ngrok-free.dev) # 加载从 ComfyUI 导出的 API 格式工作流 JSON 文件 with open(workflow_api.json, r, encodingutf-8) as f: workflow json.load(f) # 假设节点 ID 是 3 # workflow[3][inputs][text] 一只在海边沙滩上奔跑的斑点狗远处是大海近处有几只螃蟹右边是几棵椰子树 # 4. 执行工作流并等待结果 print(正在生成图片...) results client.process_workflow(workflow) # 5. 保存生成的图片 for i, result in enumerate(results): print(f生成文件: {result.filename}) result.save(foutput_{i}.png) # 如果是在 Jupyter 环境中可以用 result.show() 直接预览这里使用的 workflow_api.json 是 API 调用优化的“执行文件”。它去掉了界面布局相关的信息只保留了生成图片所必需的节点类型(class_type)、节点输入(inputs)和节点间的连接结构更精简传输效率更高。它和放在 user/default/workflows/ 目录下的那个 workflow 不一样不要用错了。我们要用的 workflow_api.json 要由 ComfyUI 生成。具体方法是在 ComfyUI 界面上点击左下角的“设置”图标齿轮图标在设置界面上打开Enable Dev Mode Options启用开发者模式选项。关闭设置窗口后顶部菜单栏点击 “图形工作流操作”再弹出的菜单中选择“导出API”浏览器会下载这个文件另存为 workflow_api.json放在当前代码目录中或者其他可访问到的地方。关于关于提示词和模型推理参数的设置都在这个文件中可以直接修改文件也可以在代码中对workflow 对象进行赋值。比如注释中的代码就是修改提示词例子。至于节点 ID也是取决于你的 workflow_api.json 文件内容打开文件看看要修改的内容是哪个节点就可以了。3 总结​ 本次试验的结果符合设想的预期即使用 AMD 的免费云算力私有部署私有大模型并远程访问大模型的道路是通的。我们不仅试验了 ComfyUI 图形界面操作也试验了通过 comfy API 编写代码生成图像。这里的关键点除了使用 ngrok 打通网络之外还有就是 ComfyUI 的部署不能完全按照文档的操作进行因为切片上 ROCm 版本的特殊性要利用切片环境上已经装好的 ROCm 环境。参考资料[1] ComfyUI 帮助[2] 伍斌《白嫖48G显存跑DeepSeekADM云GPU私有化部署实战》