Deploy the Step1X-Edit image editing model from PAI Model Gallery to an EAS inference service.
Model overview
Step1X-Edit is an open-source image editing model from Stepfun. It combines a multimodal large language model (MLLM) with a diffusion image decoder (DiT). With 19 billion parameters, Step1X-Edit provides the following capabilities:
-
Precise semantic parsing: Accurately interprets editing instructions to produce results that match user intent.
-
Identity consistency: Preserves subject identity during editing and keeps core features intact.
-
Region-level control: Supports precise, region-level editing for fine-grained modifications.
-
Broad task coverage: Supports 11 common image editing tasks, including text replacement and style transfer.
-
Strong benchmark results: Achieves top scores in semantic consistency, image quality, and overall performance on the GEdit-Bench benchmark.
For more information about Step1X-Edit, see stepfun-ai/Step1X-Edit.
Resource requirements
Deploying Step1X-Edit requires a GPU with at least 48 GB of video memory.
Procedure
Go to the Model Gallery page.
Log on to the PAI console.
In the upper-left corner of the top navigation bar, select a region.
In the left-side navigation pane, click Workspaces and then click the name of the workspace you want to open.
In the left-side navigation pane, choose Quick Start > Model Gallery.
-
On the Model Gallery page, search for Stepfun Step1X-Edit in the model list and click the model card.
-
In the upper-right corner, click Deploy. Configure the service name and resource settings to deploy the model to Elastic Algorithm Service (EAS).
In the deployment configuration panel, set Deployment Method to single-node standard deployment, set Resource Type to public resource, and set Instance Count to 1. Then, click Deploy.
Call the model
After deployment, call Step1X-Edit through the web application or API.
Web application
On the service details page, click View Web App in the upper-right corner to open the web application.
Upload an image, enter a prompt, and click Generate.
The web UI also allows you to configure image generation parameters such as Negative Prompt, Seed, Inference Steps, cfg_scale, and Size_level.
API call
On the service details page, click View Call Information to obtain the endpoint and token.
The following sample Python code sends an image editing request to the 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": "<The Base64 encoding of your image>"
}
)
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!")
Replace EAS_URL and EAS_TOKEN with your actual endpoint and token.