Step1X-Edit是阶跃星辰开源的图像编辑模型,结合多模态语言模型与扩散图像解码器,支持多种图像编辑任务。PAI Model Gallery已支持该模型,可一键部署和调用。
模型简介
阶跃星辰开源了图像编辑模型Step1X-Edit。该模型结合多模态大型语言模型(MLLM)与扩散图像解码器(DiT),总参数量达到19B,具备高精度编辑能力和图像保真度,主要优势如下:
语义精准解析:精确理解编辑指令,确保编辑结果符合用户意图。
身份一致性保持:编辑时保持图像中的身份一致性,确保主体特征不受影响。
高精度区域级控制:支持对图像特定区域进行精确编辑,实现细粒度修改。
丰富的任务支持:支持11类高频图像编辑任务,包括文字替换、风格迁移等。
卓越的性能表现:在图像编辑基准GEdit-Bench中,语义一致性、图像质量和综合得分三项指标均表现优异。
更多关于Step1X-Edit信息,请参见stepfun-ai/Step1X-Edit。
运行环境要求
部署阶跃星辰 Step1X-Edit模型,建议使用显存容量为48GB或以上的卡型。
模型部署
-
进入Model Gallery页面。
-
登录PAI控制台。
-
在顶部左上角根据实际情况选择地域。
-
在左侧导航栏选择工作空间列表,单击指定工作空间名称,进入对应工作空间内。
-
在左侧导航栏选择快速开始 > Model Gallery。
-
在Model Gallery页面右侧的模型列表中,搜索阶跃星辰 Step1X-Edit,并单击该模型卡片,进入模型详情页面。
单击右上角部署,配置服务名称和资源信息,部署到EAS推理服务。
在部署配置面板中,部署方式选择单节点标准部署,资源类型选择公共资源,实例数设置为1,单击部署。
模型调用
阶跃星辰 Step1X-Edit支持Web应用和API两种调用方式:
Web应用
在模型服务详情页单击右上角查看WEB应用,进入WebUI页面。
上传图片并输入Prompt,单击Generate生图。
WebUI 页面还支持配置 Negative Prompt、Seed、Inference Steps、cfg_scale 和 Size_level 等生图参数。
API调用
在模型服务详情页单击查看调用信息,即可获取服务地址和Token信息。
通过以下Python示例代码即可实现API调用:
import requests
import time
EAS_URL = "<YOUR_EAS_URL>"
EAS_TOKEN = "<YOUR_EAS_TOKEN>"
class TaskStatus:
PENDING = "pending"
PROCESSING = "processing"
COMPLETED = "completed"
FAILED = "failed"
response = requests.post(
f"{EAS_URL}/generate",
headers={
"Authorization": f"{EAS_TOKEN}"
},
json={
"prompt": "A spaceship orbiting Earth",
"seed": 42,
"neg_prompt": "low quality, blurry",
"infer_steps": 28,
"cfg_scale": 6,
"size":1024,
"image": "<您图片的Base64编码>"
}
)
task_id = response.json()["task_id"]
print(f"Task ID: {task_id}")
while True:
status_response = requests.get(
f"{EAS_URL}/tasks/{task_id}/status",
headers={
"Authorization": f"{EAS_TOKEN}"
})
status = status_response.json()
print(f"Current status: {status['status']}")
if status["status"] == TaskStatus.COMPLETED:
print("Image ready!")
break
elif status["status"] == TaskStatus.FAILED:
print(f"Failed: {status['error']}")
exit(1)
time.sleep(5)
image_response = requests.get(
f"{EAS_URL}/tasks/{task_id}/image",
headers={
"Authorization": f"{EAS_TOKEN}"
})
with open("generated_image.jpg", "wb") as f:
f.write(image_response.content)
print("Image downloaded successfully!")其中,将EAS_URL和EAS_TOKEN替换为实际的服务地址和Token。