必须使用lovart v3.8.0+并拥有“批量生成”权限,通过blade模板组装prompt,再用artisan命令或api触发批量视觉生成,最后查数据库lovart_visual_jobs获取完整图片url。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你需要在 Lovart 系统中为同一款商品快速生成多个视觉变体(如不同背景、配色、文案组合),但当前界面只支持单次渲染,手动重复操作耗时且易错。
确认 Lovart 版本与权限
进入 Lovart 后台 → 点击右上角头像 → 选择「系统信息」→ 查看版本号。必须为 【v3.8.0 或更高】,低版本不支持批量视觉生成 API 调用能力。若版本不符,先执行 php artisan lovart:upgrade --force 强制更新,否则后续所有操作无效。
检查当前账号是否拥有「视觉工坊」模块的「批量生成」权限。没有该权限时,即使接口可用,请求也会被中间件拦截返回 403。
准备结构化提示词模板
在 resources/views/lovart/templates/visual-batch.blade.php 中新建模板文件,内容如下:
```blade
@foreach($variants as $i => $v)
{{ $v['background'] }}背景 + {{ $v['color_scheme'] }}配色 + {{ $v['headline'] }}主文案
@endforeach
```
这个模板不是用来渲染页面的,而是作为提示词组装器:Lovart 的视觉引擎会将每行输出视为一个独立 prompt 字符串。注意不要加任何 HTML 标签或空行,否则会导致 prompt 解析失败。
通过 Artisan 命令触发批量生成
方法一:使用内置命令行工具(推荐)
在项目根目录执行:
php artisan lovart:generate-visuals --template=visual-batch --product-id=127 --count=5
其中 --count=5 表示基于模板生成 5 个变体;--product-id 必须是已存在的商品主键,且该商品必须已绑定至少一张基础图(base_image_url 字段非空),否则任务直接跳过。
方法二:调用 HTTP 接口(需启用 API 模式)
向 POST /api/v1/visuals/batch 发送 JSON 请求体:
{
"product_id": 127,
"prompt_template": "white background + warm palette + 'New Season' headline",
"count": 3
}
【注意】 prompt_template 字段值不能包含换行符或双引号,否则 API 解析报错并静默丢弃整条请求。
监控生成状态与获取结果
第一步:查看任务队列
执行 php artisan queue:work --once --queue=visual_generation,确保队列进程正在消费视觉任务。
第二步:检查生成记录表
运行 DB::table('lovart_visual_jobs')->where('product_id', 127)->orderByDesc('id')->limit(5)->get(),确认 status 列全为 'completed'。
第三步:提取生成图 URL
每个成功 job 的 output 字段是 JSON 字符串,需 json_decode 后取 data[0].url。例如:
$job = LovartVisualJob::latest()->first();
$result = json_decode($job->output, true);
$firstImageUrl = $result['data'][0]['url'];
这一步不能跳过数据库直查——前端轮询 /api/v1/visuals/status?job_id=xxx 返回的是摘要信息,不含完整 URL 列表。











