生成图片,让你的应用更加生动
阶跃星辰为开发者提供了文生图模型,帮助开发者在自己的应用中提供文生图的能力,帮助开发者在标准的文本生成的产品中,加入文本生图的效果,丰富产品功能和体验。
调用 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)
常见用法
调整生成图片的分辨率
阶跃星辰文生图模型支持生成不同分辨率的图片,从而帮助开发者结合合适的使用场景,优化生成的图片的速度
你可以通过修改 size
参数,来设置使用不同的分辨率。目前支持的分辨率有:
正方形(1:1)
- 256x256
- 512x512
- 768x768
- 1024x1024
长方形(16:9)
- 1280x800
- 800x1280
你可以根据自己的业务场景,选择使用合适的分辨率,以达到最佳的效果。分辨率越大,生成速度越慢;反之则生成速度越快。
优化图片的生成速度
阶跃星辰文生图模型支持多个不同的参数,其中 steps、size 会影响生成的速度和质量。
steps
越大,则生成的效果越好,同时消耗的算力和生成的速度也会越慢;size
越大,则消耗的算力也越大,同时生成的速度会越慢;
在实际业务场景中,你可以根据自己的业务情况、用户的预期速度,来优化具体的参数值。
持续生成相同风格的图片
在生成图片时,默认的 seed
为 0 ,表示阶跃星辰模型将会随机生成一个 seed
用于图片生成。
在实际业务场景中,如果你有诉求让多个 Prompt 保持同一风格:比如用户生成过程中,通过不断增删 prompt 来调整生成效果,则可以在第一次使用自动生成的 seed
或自行生成一个 seed
值,并在后续的持续生成过程中保持 seed
为第一次生成返回的 seed
值,从而确保生成的图片风格和效果稳定。
错误处理
可参考 处理异常,让你的应用更加健壮。