AI写真接单从零起步:环境部署与自动交付流程

想用AI写真接单,核心不是先学绘画提示词,而是先把一套能稳定出图、能收单、能自动交付的环境搭起来。
本文面向零基础用户,按“服务器准备→部署生成服务→配置接单页面→打通订单流程→验证与排错”的顺序,给出可照做的命令和配置片段。
适用条件:有一台可公网访问的Linux服务器(建议2核4G以上、带GPU更佳),并已安装宝塔面板或习惯用命令行。

先定接单模式,再决定部署方式

AI写真接单常见两种模式:一是人工接单后手动跑图,适合刚起步、订单量少的情况;
二是页面自动接单、队列出图、邮件或网盘交付,适合有稳定流量后使用。
本文按第二种模式展开,因为自动交付能减少漏单,也方便后续统计。

部署前先确认三件事:

  • 服务器能访问外网,且已放行80、443端口;
  • 有一个域名并完成解析(没有域名可先用IP加端口测试,但不建议长期用IP接单);
  • 准备好收款方式(微信/支付宝个人码或第三方收款接口),先手动对账,再考虑自动化。

如果服务器没有GPU,CPU跑图速度会明显变慢,建议先用小尺寸、低步数测试流程,再决定是否升级配置。

部署ComfyUI生成服务

ComfyUI是节点式AI绘图工具,可以理解为“把出图步骤连成流水线”。
以下命令在Ubuntu 22.04下验证思路,其他发行版请替换包管理命令。

先安装基础依赖:

sudo apt update
sudo apt install -y python3 python3-venv python3-pip git wget

拉取代码并创建虚拟环境:

cd /opt
git clone https://github.com/comfyanonymous/ComfyUI.git
cd ComfyUI
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

将模型文件放入/opt/ComfyUI/models/checkpoints/,然后启动服务:

python main.py --listen 0.0.0.0 --port 8188

启动后浏览器访问http://服务器IP:8188,能看到节点界面即表示服务正常。
生产环境建议用宝塔“网站→反向代理”把8188端口代理到域名,并配置SSL。

配置接单页面与订单表

接单页面不需要复杂开发,用宝塔新建一个PHP站点,放置一个简单表单即可。
表单字段建议包含:称呼、联系方式、照片上传、风格选择、备注。
提交后写入MySQL订单表。

在宝塔“数据库”中新建库ai_order,执行建表语句:

CREATE TABLE orders (
  id INT AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(50),
  contact VARCHAR(100),
  photo_path VARCHAR(255),
  style VARCHAR(50),
  status TINYINT DEFAULT 0,
  created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

status字段用0表示待处理、1表示生成中、2表示已完成、3表示失败。
上传目录放在站点根目录外的/www/wwwroot/ai_order/uploads/,并在Nginx配置中禁止直接执行上传目录的PHP文件,降低安全风险。

打通自动出图与交付

自动化的关键是用脚本轮询订单表,发现status=0的订单就调用ComfyUI接口生成图片,完成后更新状态并发送交付链接。
ComfyUI提供HTTP接口,默认地址为http://127.0.0.1:8188/prompt,提交工作流JSON即可。

下面是一个PHP轮询脚本的核心逻辑,放在宝塔“计划任务”中每2分钟执行一次:

query("SELECT * FROM orders WHERE status=0 LIMIT 1");
$order = $stmt->fetch(PDO::FETCH_ASSOC);
if (!$order) exit;

// 标记为生成中,防止重复处理
$pdo->prepare("UPDATE orders SET status=1 WHERE id=?")->execute([$order['id']]);

// 调用ComfyUI接口(工作流JSON需提前准备好)
$workflow = json_decode(file_get_contents('/www/wwwroot/ai_order/workflow.json'), true);
$payload = json_encode(['prompt' => $workflow]);
$ch = curl_init('http://127.0.0.1:8188/prompt');
curl_setopt_array($ch, [
  CURLOPT_POST => true,
  CURLOPT_POSTFIELDS => $payload,
  CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
  CURLOPT_RETURNTRANSFER => true
]);
$res = curl_exec($ch);
curl_close($ch);

// 根据返回结果更新状态,成功后生成交付链接
$pdo->prepare("UPDATE orders SET status=2 WHERE id=?")->execute([$order['id']]);

实际使用时需要把workflow.json替换成你在ComfyUI界面中“保存(API格式)”导出的工作流,并处理好照片路径和风格参数的替换。
交付链接可以指向一个带随机文件名的下载页,避免被直接遍历。

常见报错与避坑要点

  • ComfyUI启动报CUDA错误:先确认显卡驱动和CUDA版本匹配,没有GPU时改用--cpu参数,但出图会变慢。
  • 订单重复生成:轮询脚本必须先把状态从0改为1再调用生成接口,否则计划任务重叠时同一订单会被处理两次。
  • 上传目录被执行:在Nginx站点配置中加入location ~* /uploads/.*\.php$ { deny all; },防止恶意上传脚本被执行。
  • 交付链接被猜测:文件名使用随机字符串,不要用订单号直接命名;交付页设置有效期,过期后需重新联系。
  • 收款对账混乱:自动交付不代表自动收款,建议先保留人工确认环节,避免未付款就出图。

验证流程是否跑通

部署完成后按以下顺序验证:

  1. 在接单页面提交一条测试订单,检查数据库orders表是否新增记录且status=0;
  2. 手动执行一次轮询脚本,观察状态是否变为1再变为2;
  3. 打开交付链接,确认图片能正常下载且文件名随机;
  4. 故意提交一张无法处理的图片,确认脚本能记录失败并更新status=3;
  5. 用手机4G网络访问接单页和交付页,确认外网可访问。

如果某一步失败,先看宝塔计划任务的执行日志和PHP错误日志,再检查ComfyUI控制台输出。
大多数问题集中在路径写错、权限不足和接口地址未使用127.0.0.1。

两个容易被忽略的细节

照片隐私:客户上传的真人照片属于敏感数据,建议在接单页明确用途和保留期限,生成完成后定期清理原始上传文件,不要长期堆在服务器上。

生成耗时与超时:
计划任务默认可能有执行时间限制,
单张写真生成较慢时,
需要把PHP脚本的max_execution_time调大,
或者改为“提交任务后由回调更新状态”,
避免脚本被中断导致订单卡在“生成中”。

按以上步骤完整执行后,你就有了一个能接单、能出图、能交付的最小可用流程。
后续再根据订单量增加队列、限流和备份策略,不要一开始就堆太多功能。

分享到:
上一篇
AI配音接单怎么入门:从试音到交付的完整流程
下一篇
AI编程接单教程:从环境搭建到交付验收的完整流程
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意