HVision-NKU / StoryDiffusion

Create Magic Story!
Apache License 2.0
5.43k stars 518 forks source link

如何使用controlNet进行骨骼控制? #116

Open Echo411 opened 1 month ago

Echo411 commented 1 month ago

在论文中看到是支持使用ControlNet的,但是在代码里没有找到对应的代码。 image

yishuaidu commented 1 month ago

我估计代码自己写就行了。

Echo411 commented 1 month ago

我估计代码自己写就行了。

我自己加了controlNet的控制,一致性确实有提高,但是效果并没有论文中那么好。我的设备是3090。

  controlnet = ControlNetModel.from_pretrained(
      control_net_path, torch_dtype=torch.float16)
  pipe = StableDiffusionXLControlNetPipeline.from_pretrained(
      sd_model_path, controlnet=controlnet, torch_dtype=torch.float16, use_safetensors=False
  )
  pose_idx = [0, 2, 5, 6, 7, 8, 9, 10]
  for idx in pose_idx:
      pose_images.append(load_image("/home/open_on_pose_image/" + str(idx) + ".png"))

在加入controlNet之前可以一批次生成多张图片,但是加入controlNet以后传入多个prompts会报cuda out of memory,因此改成了一张一张的生成。不知道是这个原因还是提示词的原因,生成的图片质量没有那么好。

  for i in range(len(cur_positive_prompts)):
      cur_image = pipe(
          cur_positive_prompts[i],
          image=current_poses[i],
          num_inference_steps=_num_steps,
          guidance_scale=guidance_scale,
          height=height,
          width=width,
          negative_prompt=negative_prompt,
          generator=generator,
      ).images
      id_images.append(cur_image[0])
Z-YuPeng commented 1 month ago

Hi,论文里面的controlnet 是用SD 1.5 生成的,抱歉,最近有点太忙了,可能更新这个代码时间会慢一点

Echo411 commented 1 month ago

Hi,论文里面的controlnet 是用SD 1.5 生成的,抱歉,最近有点太忙了,可能更新这个代码时间会慢一点

非常感谢您百忙之中能够回复我!如果可以的话,能告之我预计的更新时间吗?以及更新的时候是否会加上controlnet的控制呢? 期待您的回复!

yishuaidu commented 1 month ago

看看你效果

Echo411 commented 1 month ago

看看你效果

效果差的: image image

效果好的: image

image

yishuaidu commented 1 month ago

我们加个微信交流下 , 我稍微比你好点。 yishuaidu 我微信号

yishuaidu commented 1 month ago

Hi,论文里面的controlnet 是用SD 1.5 生成的,抱歉,最近有点太忙了,可能更新这个代码时间会慢一点

你好能大致说下你cn 是怎么放入的嘛?

Z-YuPeng commented 1 month ago

Hi,论文里面的controlnet 是用SD 1.5 生成的,抱歉,最近有点太忙了,可能更新这个代码时间会慢一点

非常感谢您百忙之中能够回复我!如果可以的话,能告之我预计的更新时间吗?以及更新的时候是否会加上controlnet的控制呢? 期待您的回复!

Hi, 您太客气了,感谢关注,实现应该没有问题,ConsistentSA现在是training-free的,如果想保持衣服也是需要prompt 辅助的,所以目前的版本尽量给衣服一个详细的描述,另外我不知道你的显存多大,用的是那个模型, 原始的sdxl 在低于1024分辩率的情况下表现也会差一些。