-
Notifications
You must be signed in to change notification settings - Fork 101
Open
Description
我买了R1的接口,怎么用R1的推理能力来生成高质量图像?
代码如下
from RegionalDiffusion_base import RegionalDiffusionPipeline
from RegionalDiffusion_xl import RegionalDiffusionXLPipeline
from diffusers.schedulers import KarrasDiffusionSchedulers, DPMSolverMultistepScheduler
import torch
from openai import OpenAI
# 初始化 DeepSeek 客户端
client = OpenAI(api_key="xxxxxxxxx600b",
base_url="https://api.deepseek.com")
# 使用 DeepSeek 获取参数
def get_params_from_deepseek(prompt):
response = client.chat.completions.create(
model="deepseek-chat",
messages=[
{"role": "system", "content": "You are a helpful assistant. Given a prompt, provide a dictionary with 'Final split ratio' and 'Regional Prompt' keys."},
{"role": "user", "content": f"Generate parameters for this prompt: '{prompt}'"},
],
stream=False
)
# 假设 DeepSeek 返回的是一个包含所需参数的字符串,需要解析为字典
# 这里假设返回格式为 "{'Final split ratio': value, 'Regional Prompt': value}"
result = eval(response.choices[0].message.content) # 假设返回的是可解析的字典字符串
return result
# 初始化 RegionalDiffusionXLPipeline
pipe = RegionalDiffusionXLPipeline.from_pretrained("xxxxxxxxxxxxxxxl", torch_dtype=torch.float16, use_safetensors=True, variant="fp16")
pipe.to("cuda:1")
pipe.scheduler = DPMSolverMultistepScheduler.from_config(pipe.scheduler.config, use_karras_sigmas=True)
pipe.enable_xformers_memory_efficient_attention()
## 用户输入
prompt = 'A cute dog'
para_dict = get_params_from_deepseek(prompt) # 使用 DeepSeek 获取参数
split_ratio = para_dict['Final split ratio']
regional_prompt = para_dict['Regional Prompt']
negative_prompt = "nsfw"
# 生成图像
images = pipe(
prompt=regional_prompt,
split_ratio=split_ratio, # 区域提示的比例
batch_size=1, # 批次大小
base_ratio=0.5, # 基础提示比例
base_prompt=prompt,
num_inference_steps=20, # 采样步数
height=1024,
negative_prompt=negative_prompt, # 负面提示
width=1024,
seed=2468, # 随机种子
guidance_scale=7.0
).images[0]
# 保存图像
images.save("test.png")
报错如下:
Metadata
Metadata
Assignees
Labels
No labels