Documentation Index
Fetch the complete documentation index at: https://platform.stepfun.com/docs/llms.txt
Use this file to discover all available pages before exploring further.
阶跃星辰为开发者提供了文生图模型,帮助开发者在自己的应用中提供文生图的能力,帮助开发者在标准的文本生成的产品中,加入文本生图的效果,丰富产品功能和体验。
调用 API 生成图片,并处理生成结果
在使用阶跃星辰文生图 API 时,你可以使用 OpenAI SDK 来完成调用,以 Python 为例,你可以使用如下代码来完成文生图 API 的调用。
from openai import OpenAI
STEPFUN_KEY = "STEP_API_KEY"
STEPFUN_MODEL = "step-1x-medium"
def generate_image(
prompt,
model=STEPFUN_MODEL,
n=1,
response_format="url",
size="1024x1024",
steps=50,
seed=0,
cfg_scale=7.5,
):
client = OpenAI(api_key=STEPFUN_KEY, base_url="https://api.stepfun.com/v1")
image = client.images.generate(
model=model,
prompt=prompt,
response_format=response_format,
extra_body={"cfg_scale": cfg_scale, "seed": seed, "steps": steps},
size=size,
n=n,
)
return image.data
if __name__ == "__main__":
prompt = "采菊东篱下,悠然见南山。"
res = generate_image(prompt)
print(res)
根据你设置的 response_format 不同,你可能会获得两种返回结果:
url: 以 https://res.stepfun.com/image_gen/ 为前缀的图片链接。
base64: 图片的 base64 编码。
如果你获得的是 URL,则可以该地址下载到本地,存储在对象存储或本地文件存储中用于给用户展示(返回的图片地址有时效限制,因此不可直接用于用户侧展示)。
如果你获得的是 Base64 编码,则可以将其解码为图片,然后存储在对象存储或本地文件存储中用于给用户展示。
from openai import OpenAI
import base64
STEPFUN_KEY = "STEP_API_KEY"
STEPFUN_MODEL = "step-1x-medium"
def generate_image(
prompt,
model=STEPFUN_MODEL,
n=1,
response_format="url",
size="1024x1024",
steps=50,
seed=11879934,
cfg_scale=7.5,
):
client = OpenAI(api_key=STEPFUN_KEY, base_url="https://api.stepfun.com/v1")
image = client.images.generate(
model=model,
prompt=prompt,
response_format=response_format,
extra_body={"cfg_scale": cfg_scale, "seed": seed, "steps": steps},
size=size,
n=n,
)
return image.data
if __name__ == "__main__":
prompt = "一只小猴子"
res = generate_image(prompt, response_format="b64_json")
image_data = base64.b64decode(res[0].b64_json)
# 将图片数据保存为本地文件
with open("generated_image.png", "wb") as file:
file.write(image_data)
print(res)
使用 Step Image Edit 2 文生图
step-image-edit-2 是阶跃星辰新一代轻量级图像生成编辑模型,同时支持文生图与图像编辑;图像编辑部分参见 图像编辑最佳实践。文生图调用时相比 step-1x-medium 有以下差异:
| 项目 | step-1x-medium | step-image-edit-2 |
|---|
| Prompt 最大长度 | 512 字符 | 512 字符 |
steps 默认 | 50(范围 1 ~ 50) | 8(范围 1 ~ 50) |
cfg_scale 默认 | 7.5 | 1.0(范围 1.0 ~ 10.0) |
size 取值 | 正方形 / 16:9 长方形 | 1024x1024、768x1360、896x1184、1360x768、1184x896(格式为 height x width) |
| 专属参数 | style_reference | text_mode(文字场景优化,默认关闭)、negative_prompt |
效果示例
以下样例摘自 step-image-edit-2 官方 showcase,可作为不同场景下 Prompt 写法的参考。
Prompt:一张令人惊叹的广角风景摄影作品,澄澈透亮的高山湖泊宛如一面完美的镜面。背景中,巍峨的雪山直插缀着缕缕白云的湛蓝天空,湖畔山坡上,秋日的山杨林绽放出绚烂的金黄色。湖水将群山、林木与天空清晰无误地倒映其中。画面超写实,8K 分辨率,《国家地理》风格,色彩鲜明,氛围静谧祥和。
Prompt:高角度电影感人像镜头,一位年轻女孩站在夕阳中的复古石板街口,棕色长发被晚风吹动,身穿复古白色碎花泡泡袖连衣裙,人物面部、发丝和服装纹理清晰可见。构图以人物为核心,背景适度虚化,身后的老建筑、木窗与暖色墙面只作为氛围衬托。黄金时刻的阳光温柔包裹她的侧脸与肩部,发梢与裙摆边缘泛着淡淡金色光晕,营造出怀旧、纯真、安静的夏日晚风气息。35mm film, Kodak Portra 400 tones, soft bloom, shallow depth of field, cinematic portrait, nostalgic mood, photorealistic.
Prompt:一张极简风格的静物摄影作品。画面中央是一个深蓝色的光泽玻璃花瓶,插着一束盛开的金黄色郁金香。花瓶放置在带有纹理的浅白色桌面上,背景是纯白的墙壁。强烈的午后阳光从侧面射入,在墙面上投射出清晰、修长且富有艺术感的花叶阴影。光影对比鲜明,色彩纯净,营造出宁静、治愈且温暖的氛围。高画质,8k 分辨率。
Prompt:一幅古典油画风格的静物画,荷兰黄金时代风格。画面中心是一个透明玻璃花瓶,插满了色彩斑斓的郁金香、百合和紫色花朵(橙色、粉色、紫色)。旁边摆放着白色的陶瓷茶壶和精致的茶杯。前景的深色木桌上铺着一条飘逸的绿白条纹丝绸桌布。桌面上散落着切开的柠檬、柠檬皮、几杯红茶以及零落的花瓣。背景是深暗的纹理墙面,一只蝴蝶在花丛旁飞舞。光影柔和细腻,细节丰富,具有厚重的油画笔触感。
调用示例
from openai import OpenAI
client = OpenAI(api_key="STEP_API_KEY", base_url="https://api.stepfun.com/v1")
image = client.images.generate(
model="step-image-edit-2",
prompt="采菊东篱下,悠然见南山",
response_format="b64_json",
extra_body={
"cfg_scale": 1.0,
"steps": 8,
"seed": 1,
"text_mode": True,
},
)
print(image)
curl https://api.stepfun.com/v1/images/generations \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $STEP_API_KEY" \
-d '{
"model": "step-image-edit-2",
"prompt": "采菊东篱下,悠然见南山",
"response_format": "b64_json",
"cfg_scale": 1.0,
"steps": 8,
"seed": 1,
"text_mode": true
}'
text_mode 是针对文字场景的优化策略,按需开启,默认关闭。当 cfg_scale = 1.0 时,negative_prompt 不会被传递给底层模型。
垫图生成
使用场景
垫图使用场景一般为 图像随机重新生成(image variation),细节增强,同时可能支持一些小范围修改的情况,而不适合做大规模的图像修改(属于 Image Edit 的范畴),人脸保持(属于 Cref 的范畴),等等。
超参参考数值
主要超参为 source_weight。当 source_weight 为 1 时,为图像完全重新生成,垫图将不起任何作用。
| 预期功能 | Prompt 要求 | source_weight 建议 | 备注 |
|---|
| 图像随机重新生成(image variation) | 尽量还原原图的描述 | 0.8 ~ 1.0 | |
| 细节增强 | 还原原图的描述的同时,增加一些质量词,例如 amazing quality,finely details | 0 ~ 0.5 | |
| 小范围修改 | 根据需要的内容写 prompt | 0.3 ~ 0.8 | 容易出现 badcase,因为图像修改主要是通过 image edit 相关的方法实现 |
| 垫图输入 | prompt | source_weight | 效果图 |
|---|
 | 金毛边上有一个圣诞树,圣诞氛围,温暖的灯光 | 0.5 |  |
 | 一幅猫的画,超高质量,细节丰富 | 0.3 |  |
风格参考生成 (Sref)
使用场景
通过文本控制内容,图像提供风格进行生成。
超参参考数值
主要超参为 style_reference.weight,默认设置为1,建议数值在 1 上下浮动不超过 0.5。(因为图像信息会输入给网络,过大的数值会导致参考图像的内容泄漏到生成图片中)
以下测试 style_reference.weight 均为 1
| prompt | 文生图直出 | 风格参数图 | 效果图 |
|---|
| an owl with its wings spread out swooping over a tree |  |  |  |
| a boat in the canals of venice |  |  |  |
其他常见用法
调整生成图片的分辨率
阶跃星辰文生图模型支持生成不同分辨率的图片,从而帮助开发者结合合适的使用场景,优化生成的图片的速度
你可以通过修改 size 参数,来设置使用不同的分辨率。目前支持的分辨率有:
正方形(1:1)
- 256x256
- 512x512
- 768x768
- 1024x1024
长方形(16:9)
你可以根据自己的业务场景,选择使用合适的分辨率,以达到最佳的效果。分辨率越大,生成速度越慢;反之则生成速度越快。
优化图片的生成速度
阶跃星辰文生图模型支持多个不同的参数,其中 steps、size 会影响生成的速度和质量。
steps 越大,则生成的效果越好,同时消耗的算力和生成的速度也会越慢;
size 越大,则消耗的算力也越大,同时生成的速度会越慢;
在实际业务场景中,你可以根据自己的业务情况、用户的预期速度,来优化具体的参数值。
持续生成相同风格的图片
在生成图片时,默认的 seed 为 0 ,表示阶跃星辰模型将会随机生成一个 seed 用于图片生成。
在实际业务场景中,如果你有诉求让多个 Prompt 保持同一风格:比如用户生成过程中,通过不断增删 prompt 来调整生成效果,则可以在第一次使用自动生成的 seed 或自行生成一个 seed 值,并在后续的持续生成过程中保持 seed 为第一次生成返回的 seed 值,从而确保生成的图片风格和效果稳定。
错误处理
可参考 处理异常,让你的应用更加健壮。