零基础也能懂:图图的嗨丝造相-Z-Image-Turbo API调用教程,Python脚本自动化生图
零基础也能懂图图的嗨丝造相-Z-Image-Turbo API调用教程Python脚本自动化生图1. 准备工作与环境配置1.1 确认模型服务已启动在开始编写Python脚本前我们需要确保模型服务已经正常运行。根据镜像文档可以通过以下命令检查服务状态cat /root/workspace/xinference.log当看到类似以下输出时表示服务已成功启动Xinference is running at http://0.0.0.0:99971.2 获取API访问地址默认情况下Gradio Web界面通常运行在7860端口。我们可以通过浏览器访问http://服务器IP:7860API端点地址则为http://服务器IP:7860/api/predict请将服务器IP替换为你的实际服务器地址如果是本地运行则使用127.0.0.1。1.3 安装必要的Python库我们需要安装两个核心Python库pip install requests pillowrequests用于发送HTTP请求调用APIpillowPIL用于处理生成的图片数据2. 基础API调用示例2.1 最简单的单次调用让我们从一个最基本的API调用开始了解整个工作流程import requests import base64 from PIL import Image from io import BytesIO # API配置 API_URL http://127.0.0.1:7860/api/predict # 准备提示词 prompt 青春校园少女16-18岁清甜初恋脸身着蓝色宽松校服衬衫百褶短裙搭配黑色薄款渔网黑丝微透肤细网眼校园林荫道场景阳光透过树叶洒下斑驳光影清新日系胶片风 # 构造请求数据 data { data: [ prompt, # 正向提示词 , # 负向提示词留空 20, # 推理步数 7.5, # 引导系数 -1 # 随机种子-1表示随机 ] } # 发送请求 response requests.post(API_URL, json{data: data}) # 处理响应 if response.status_code 200: result response.json() image_data result[data][0].split(,)[1] # 移除Base64前缀 image Image.open(BytesIO(base64.b64decode(image_data))) image.save(generated_image.png) print(图片已保存为 generated_image.png) else: print(f请求失败状态码{response.status_code})2.2 关键参数说明正向提示词描述你希望生成的图像内容越详细越好负向提示词描述你不希望在图像中出现的内容推理步数通常20-50数值越大生成时间越长但质量可能更好引导系数控制生成结果与提示词的贴合程度通常7-12随机种子固定种子可以复现相同结果-1表示每次随机3. 批量生成自动化脚本3.1 完整批量生成脚本下面是一个完整的批量生成脚本可以自动生成并保存多张图片import os import time import requests import base64 from PIL import Image from io import BytesIO def generate_images(api_url, prompts, output_diroutput): 批量生成图片 参数: api_url: API地址 prompts: 提示词列表 output_dir: 输出目录 # 创建输出目录 os.makedirs(output_dir, exist_okTrue) # 生成参数配置 params { negative_prompt: 低质量,模糊,变形,多余的手指, steps: 25, cfg_scale: 7.5, seed: -1 } for i, prompt in enumerate(prompts, 1): print(f正在生成第 {i}/{len(prompts)} 张: {prompt[:30]}...) try: # 构造请求数据 data { data: [ prompt, params[negative_prompt], params[steps], params[cfg_scale], params[seed] ] } # 发送请求 response requests.post(api_url, json{data: data}, timeout60) if response.status_code 200: # 处理图片数据 img_data response.json()[data][0].split(,)[1] img Image.open(BytesIO(base64.b64decode(img_data))) # 保存图片 filename f{i:03d}_{prompt[:20].replace( , _)}.png img.save(os.path.join(output_dir, filename)) print(f 已保存: {filename}) else: print(f 生成失败: {response.text[:100]}) except Exception as e: print(f 生成出错: {str(e)}) # 适当延迟避免服务器压力过大 time.sleep(1) if __name__ __main__: # 配置API地址 API_URL http://127.0.0.1:7860/api/predict # 准备提示词列表 prompts [ 青春校园少女16-18岁清甜初恋脸蓝色校服衬衫百褶短裙黑色渔网袜校园场景, 办公室OL黑色职业套装搭配渔网袜高跟鞋都市背景, 夏日海边比基尼上衣短裙渔网袜沙滩夕阳场景, # 可以继续添加更多提示词... ] # 开始批量生成 print(f开始批量生成共 {len(prompts)} 张图片) generate_images(API_URL, prompts, fishnet_output) print(批量生成完成)3.2 脚本功能详解目录创建自动创建输出目录避免文件保存失败参数配置集中管理生成参数方便统一调整错误处理捕获可能出现的异常避免脚本中途崩溃文件命名按序号和提示词前几个单词命名便于识别请求间隔添加1秒延迟防止服务器过载3.3 如何扩展脚本从文件读取提示词可以修改为从文本文件读取提示词每行一个多参数组合可以嵌套循环测试不同参数组合的效果结果筛选添加图像质量评估自动筛选优质结果进度保存记录已生成的提示词支持断点续传4. 高级技巧与优化建议4.1 提示词工程技巧为了提高生成质量可以采用以下提示词技巧结构化描述[主题], [人物描述], [服装细节], [场景], [风格]权重控制(渔网袜:1.2), (校园:0.8) # 强调渔网袜弱化校园背景负面提示词negative_prompt 低质量,模糊,变形,多余的手指,画质差, 不自然的肤色,不协调的比例,奇怪的姿势 4.2 性能优化建议并行请求使用concurrent.futures实现多线程请求from concurrent.futures import ThreadPoolExecutor with ThreadPoolExecutor(max_workers4) as executor: executor.map(generate_image, prompts)缓存机制对相同提示词的结果进行缓存避免重复生成参数调优通过实验找到最佳参数组合平衡质量与速度4.3 结果后处理生成后的图片可以进行自动化后处理from PIL import Image, ImageFilter def post_process(image_path): img Image.open(image_path) # 锐化 img img.filter(ImageFilter.SHARPEN) # 调整大小 if img.size[0] 1024: img img.resize((1024, int(1024*img.size[1]/img.size[0]))) # 保存 img.save(image_path)5. 常见问题解决5.1 API请求失败检查服务状态确认模型服务正在运行验证API地址尝试在浏览器中访问Gradio Web界面查看日志检查xinference.log获取错误信息5.2 生成质量不佳优化提示词提供更详细、具体的描述调整参数尝试增加推理步数或调整引导系数添加负面提示明确排除不想要的特征5.3 生成速度慢降低分辨率如果支持使用较小的生成尺寸减少推理步数尝试20-30步是否足够硬件升级考虑使用GPU加速获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。