Step1X-Edit は、編集の精度と画像の忠実度を向上させるために設計された、Stepfun の先進的なオープンソース画像編集モデルです。マルチモーダル言語技術と拡散画像デコーダーを統合することにより、このモデルはさまざまな編集タスクで優れたパフォーマンスを発揮し、プロフェッショナルな画像編集のニーズに応えます。Platform for AI (PAI) はこのモデルを完全にサポートしています。PAI モデルギャラリーでワンクリックでモデルをデプロイして呼び出すことができます。
モデルの紹介
Stepfun は、Step1X-Edit 大規模画像編集モデルを正式にリリースし、オープンソース化しました。このモデルは、マルチモーダル大規模言語モデル (MLLM) と拡散画像トランスフォーマー (DiT) を組み合わせ、画像編集におけるパフォーマンスを大幅に向上させています。Step1X-Edit のパラメーター数は合計 190 億です。高精度の編集と画像の忠実度を提供し、いくつかの技術的利点を示します:
正確な意味解析: このモデルは、ユーザーの編集命令を正確に理解し、意味レベルで解析します。これにより、編集結果がユーザーの意図と一致することが保証されます。
ID の一貫性: 編集中に、モデルは画像内の ID の一貫性を維持します。これにより、主要な被写体の特徴が影響を受けないことが保証されます。
高精度の領域制御: このモデルは、特定の画像領域の正確な制御と編集をサポートします。これにより、詳細な画像修正が可能になります。
豊富なタスクサポート: このモデルは、テキストの置き換えやスタイルの転送など、最大 11 種類の一般的な画像編集タスクをサポートします。これにより、さまざまな画像編集シナリオにおける幅広いユーザーニーズに対応します。
優れたパフォーマンス: 最新の GEdit-Bench 画像編集ベンチマークにおいて、Step1X-Edit は意味的一貫性、画質、および総合スコアで非常に優れたパフォーマンスを発揮します。これは、画像編集分野におけるその主導的な地位を示しています。
Step1X-Edit の詳細については、「stepfun-ai/Step1X-Edit」をご参照ください。
環境要件
Stepfun Step1X-Edit モデルをデプロイするには、48 GB 以上のビデオメモリを搭載した GPU が必要です。
モデルのデプロイ
モデルギャラリーページに移動します。
PAI コンソール にログオンします。
左上隅で、リージョンを選択します。
左側のナビゲーションウィンドウで、[ワークスペース管理] を選択します。対象のワークスペースの名前をクリックして開きます。
左側のナビゲーションウィンドウで、[クイックスタート] > [モデルギャラリー] を選択します。
モデルギャラリーページで、右側のモデルリストから [Stepfun Step1X-Edit] を検索し、モデルカードをクリックしてモデル詳細ページに移動します。
右上隅にある [デプロイ] をクリックします。推論サービス名とデプロイリソースを設定して、モデルを Elastic Algorithm Service (EAS) 推論サービスプラットフォームにデプロイします。

モデルの呼び出し
デプロイされた Stepfun Step1X-Edit モデルは、Web アプリケーションから、または API を使用して呼び出すことができます。
Web アプリケーション
モデルサービスの詳細ページで、右上隅にある [WEB アプリの表示] をクリックして Web UI を開きます。

画像をアップロードし、プロンプトを入力してから [生成] をクリックして画像を生成します。

API 呼び出し
モデルサービスの詳細ページで、[呼び出し情報の表示] をクリックして、エンドポイントとトークンを取得します。

次の 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": "<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!")注: EAS_URL と EAS_TOKEN を、取得したエンドポイントとトークンに置き換えてください。