如何在SageMaker JumpStart中为每张图片设不同描述微调Stable Diffusion
为单张图片设置独立描述的Stable Diffusion微调方案(SageMaker)
调整数据集结构:不再依赖
dataset_info.json的统一instance_prompt配置,改为给每张图片创建同名的文本描述文件。例如图片img_001.jpg对应img_001.txt,文件内写入该图片的专属描述文本。修改训练脚本:找到SageMaker JumpStart提供的微调入口脚本(如
train.py),替换原有读取全局prompt的代码,改为读取单图对应txt文件的逻辑。示例代码片段:import os from pathlib import Path def get_image_prompts(data_dir): prompt_map = {} # 遍历目录下所有jpg/png图片 for img_file in Path(data_dir).rglob("*.jpg"): txt_file = img_file.with_suffix(".txt") if txt_file.exists(): with open(txt_file, "r", encoding="utf-8") as f: prompt_map[str(img_file)] = f.read().strip() for img_file in Path(data_dir).rglob("*.png"): txt_file = img_file.with_suffix(".txt") if txt_file.exists(): with open(txt_file, "r", encoding="utf-8") as f: prompt_map[str(img_file)] = f.read().strip() return prompt_map在数据加载流程中调用该函数,用返回的
prompt_map匹配每张图片的专属描述,替代全局统一prompt。配置训练任务:将包含图片和对应txt文件的数据集上传到SageMaker支持的存储位置,训练任务的输入通道指向该路径。无需在配置中指定统一prompt参数,让脚本自动读取单图描述。
验证数据读取:在训练脚本开头添加验证逻辑,打印部分图片路径和对应prompt,确认描述匹配正确,避免路径或编码错误。
内容的提问来源于stack exchange,提问作者Luis Leal
相关产品推荐
相关产品推荐

