Skip to Content
开发指南图片生成最佳实践

生成图片,让你的应用更加生动

阶跃星辰为开发者提供了文生图模型,帮助开发者在自己的应用中提供文生图的能力,帮助开发者在标准的文本生成的产品中,加入文本生图的效果,丰富产品功能和体验。

调用 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 编码,则可以将其解码为图片,然后存储在对象存储或本地文件存储中用于给用户展示。

存储 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)

垫图生成

使用场景

垫图使用场景一般为 图像随机重新生成(image variation),细节增强,同时可能支持一些小范围修改的情况,而不适合做大规模的图像修改(属于 Image Edit 的范畴),人脸保持(属于 Cref 的范畴),等等。

超参参考数值

主要超参为 source_weight。当 source_weight 为 1 时,为图像完全重新生成,垫图将不起任何作用。


点击查看垫图生成 API 文档
预期功能Prompt 要求source_weight 建议备注
图像随机重新生成(image variation)尽量还原原图的描述0.8 ~ 1.0
细节增强还原原图的描述的同时,增加一些质量词,例如 amazing quality,finely details0 ~ 0.5
小范围修改根据需要的内容写 prompt0.3 ~ 0.8容易出现 badcase,因为图像修改主要是通过 image edit 相关的方法实现

示例

垫图输入promptsource_weight效果图
金毛边上有一个圣诞树,圣诞氛围,温暖的灯光0.5
一幅猫的画,超高质量,细节丰富0.3

风格参考生成 (Sref)

使用场景

通过文本控制内容,图像提供风格进行生成。

超参参考数值

主要超参为 style_reference.weight,默认设置为1,建议数值在 1 上下浮动不超过 0.5。(因为图像信息会输入给网络,过大的数值会导致参考图像的内容泄漏到生成图片中)


点击查看文生图 API 文档

例子

以下测试 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)

  • 1280x800
  • 800x1280

你可以根据自己的业务场景,选择使用合适的分辨率,以达到最佳的效果。分辨率越大,生成速度越慢;反之则生成速度越快。

优化图片的生成速度

阶跃星辰文生图模型支持多个不同的参数,其中 steps、size 会影响生成的速度和质量。

  • steps 越大,则生成的效果越好,同时消耗的算力和生成的速度也会越慢;
  • size 越大,则消耗的算力也越大,同时生成的速度会越慢;

在实际业务场景中,你可以根据自己的业务情况、用户的预期速度,来优化具体的参数值。

持续生成相同风格的图片

在生成图片时,默认的 seed 为 0 ,表示阶跃星辰模型将会随机生成一个 seed 用于图片生成。

在实际业务场景中,如果你有诉求让多个 Prompt 保持同一风格:比如用户生成过程中,通过不断增删 prompt 来调整生成效果,则可以在第一次使用自动生成的 seed 或自行生成一个 seed 值,并在后续的持续生成过程中保持 seed 为第一次生成返回的 seed 值,从而确保生成的图片风格和效果稳定。

错误处理

可参考 处理异常,让你的应用更加健壮

Last updated on