应构建带变量占位符的Prompt模板、准备参数组合CSV、调用API批量生成、解析并持久化元数据、本地OCR校验文本渲染准确性,以实现可控可复现的多版本图像测试。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您希望利用 Recraft API 对同一提示词生成多个图像版本以进行批量测试与效果对比,则可能因缺乏结构化调用策略导致输出重复、参数混乱或无法验证一致性。以下是实现该目标的具体操作路径:
一、构建带变量占位符的多版本Prompt模板
通过将可变参数(如风格、分辨率、文本内容、种子值)抽象为模板变量,可在单次配置下驱动多次API调用,确保测试维度可控且可复现。该方法避免硬编码导致的维护成本,并支持自动化脚本批量注入不同组合。
1、在本地创建文本文件 recraft_prompt_template.txt,写入如下结构化模板:
2、使用花括号{}定义变量:{style}控制艺术风格,{text_content}承载需渲染的字符串,{seed}指定随机种子,{resolution}设定输出尺寸。
3、示例模板内容:"a realistic portrait of a {style} character holding a sign that says '{text_content}', ultra-detailed, {resolution}, seed:{seed}"
4、保存后,该模板即可作为所有后续批量请求的统一输入基底。
二、准备多组参数组合CSV文件
为触发多样本生成,需预先定义参数矩阵。CSV格式便于程序读取与循环遍历,每一行代表一个独立测试用例,涵盖风格差异、文本变化、种子偏移及分辨率切换等关键扰动因子。
1、新建文件 versions.csv,首行为字段名:style,text_content,seed,resolution
2、在第二行起填入具体组合,例如:
3、cyberpunk,"RECRaFT V3 TEST",123,"1024x1024"
4、watercolor,"Recraft renders text perfectly",456,"768x768"
5、oil painting,"batch prompt testing active",789,"1536x768"
三、调用Recraft API执行批量生成
借助Python脚本解析CSV并逐行填充模板,向Recraft API发起并发或串行请求。每轮请求携带唯一seed与参数组合,确保响应图像具备可区分性与可比性,同时保留原始prompt结构用于归因分析。
1、安装必要依赖:pip install requests pandas
2、编写脚本 batch_recraft.py,导入csv与template文件
3、读取versions.csv,对每一行执行:用当前字段值替换模板中对应{key}
4、构造JSON payload,包含"prompt"字段(已填充)、"model"设为recraft-v3、"negative_prompt"留空或设为通用抑制项
5、设置HTTP头:Authorization: Bearer YOUR_API_KEY,Content-Type: application/json
6、发送POST请求至https://api.recraft.ai/v1/images/generations
四、解析响应并持久化结果元数据
API返回包含image_url、created、id及used_parameters等字段。批量测试的核心价值在于建立输入参数与输出质量之间的映射关系,因此必须完整记录每次调用的原始参数、响应时间、图片URL及状态码,为后续人工评估或自动打分提供依据。
1、为每次成功响应创建字典,键包括:prompt_filled、seed、style、text_content、image_url、status_code、response_time_ms
2、将所有字典追加至列表results_list
3、调用pandas.DataFrame(results_list)转为表格
4、导出为results_metadata_20260509.csv,确保每张图均可反查其生成时的全部可控变量
五、本地校验文本渲染准确性
批量生成完成后,需验证Recraft V3是否真实实现了prompt中指定的文本内容渲染,而非仅近似匹配。此步骤不可跳过,否则多版本对比失去基准。应采用OCR工具对下载图像进行文字提取,并与原始text_content字段做字符级比对。
1、使用requests.get(image_url)下载全部图片至本地目录generated_images/
2、调用pytesseract.image_to_string()处理每张图,获取OCR识别文本
3、去除空格与标点后,执行字符串完全相等判断:ocr_result.strip().replace(' ', '') == original_text.replace(' ', '')
4、将比对结果(True/False)写入results_metadata.csv新增列text_render_accuracy


















