donahowe/AutoStudio

结果跟样例比差远了,为什么我们跑出来的图片很不理想呢?

Opened this issue · 27 comments

大佬,用你昨天发布的源码,跑了一遍,环境和结果描述如下:
ENV:windows 11 x64, Python 3.10, Torch 2.1.0, CUDA 11.8, VS 2019
SD Model: 依你推荐的 dreamlike-anime-1.0
demo.json 脚本配置文件没动过,5段对话没能全部跑完,到 dialogue 5 turn 4 报错了,报错信息见下面。

部分结果图片:
幻灯片1

幻灯片2

幻灯片3

幻灯片4

大佬给分析分析原因,是环境问题?CUDA版本?CUDA精度?还是模型?参数?还是输出稳定性问题?

补充一下, sd_version 是默认的 1.5plus, XL 模型还没试。

dialogue 5 turn 4
Saved boxes visualizations to output/dialogue 5/turn 4/boxes.png ind: None
Generate Latent guidance
100%|████████████████████████████████████████████████████████████████████████████████| 15/15 [00:31<00:00, 2.09s/it]
100%|████████████████████████████████████████████████████████████████████████████████| 15/15 [00:31<00:00, 2.09s/it]
╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮
│ D:\AITest\AutoStudio\run_me.py:231 in │
│ │
│ 228 │ │ │ ind_offset = repeat_ind * LARGE_CONSTANT2 + args.seed_offset │
│ 229 │ │ │ vis_location = [dialogue, turn] │
│ 230 │ │ │ │
│ ❱ 231 │ │ │ output = autostudio.generate( │
│ 232 │ │ │ │ │ │ │ │ │ │ GROUNDING_DINO_MODEL, │
│ 233 │ │ │ │ │ │ │ │ │ │ EFFICIENT_SAM_MODEL, │
│ 234 │ │ │ │ │ │ │ │ │ │ character_database, │
│ │
│ D:\AITest\AutoStudio\model\autostudio.py:366 in generate │
│ │
│ 363 │ │ │ │ │ │ continue │
│ 364 │ │ │ │
│ 365 │ │ │ # prepare latent_guidance │
│ ❱ 366 │ │ │ latent_guidance_mask, latent_guidance_image = prepare_mid_image(guide_masks, │
│ 367 │ │ │ latent_guidance_mask = latent_guidance_mask.resize((int(width/8), int(height │
│ 368 │ │ │ latent_guidance_mask = np.array(latent_guidance_mask) │
│ 369 │ │ │ latent_guidance_mask = torch.from_numpy(latent_guidance_mask).to(self.device │
│ │
│ D:\AITest\AutoStudio\model\utils.py:21 in prepare_mid_image │
│ │
│ 18 print(f"Using box scale: {box_scale}") │
│ 19 │
│ 20 def prepare_mid_image(mask_tensor_list_512, single_obj_img_list, bboxes, height, width, │
│ ❱ 21 │ mask_tensor_512 = mask_tensor_list_512[0] │
│ 22 │ #m,n = mask_tensor_512.size() │
│ 23 │ m,n = width, height │
│ 24 │ new_mask_tensor = np.zeros((n, m)).astype(np.uint8) │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
IndexError: list index out of range
Press any key to continue . . .

还有个疑问就是:dialogue 1 turn 1,dialogue 1 turn 2,为什么没图片输出?也没报错。。。

你好,这是我当时实验跑出来的结果,模型的稳定性还不错的。我猜测可能导致很坏的质量的原因有:1. 第一张参考出了问题。AutoStudio会记录角色第一次出现的样子并作为以后的参考,所以如果第一张生成的不好角色就会一直很丑。我的建议是您可以手动为每个角色(id)提供参考图,提前读入到character_database。2.参数的问题,由于CUDA版本不同,一些超参数有可能需要调整,最有可能的是:latent guidance的权重和guidance步数可能需要小一些

脚本中第166行:character_database = {'0':Image.new('RGB', (100, 100), (255, 255, 255))},您意思是可以改成:
character_database = {'1':Image1.jpg ('RGB', (100, 100), (255, 255, 255)), '2':Image2.png ('RGB', (200, 200), (255, 255, 255))}
这样吗?图片格式没啥要求?可否来个 Sample?RGB 后面的 (100, 100), (255, 255, 255) 是代表 图像大小 和 RGB 值?
是需要预置到 output 目录下?还是每轮 dialogue 目录下?

不是的,id 0使用到是占位图,而参考图可以直接用IMAGE库读取,example:

from PIL import Image
your_img1 = Image.open('your_img1.png')
your_img2 = Image.open('your_img2.png')
character_database = {'0':Image.new('RGB', (100, 100), (255, 255, 255)), '1': your_img1, '2': your_img2}

好的,多谢!我再试试。
你这两天更新后版本的 requirements.txt 跟原先的变化很大,这是 Linux-64 的 cinda 版依赖配置,很多包对 Windows 平台参考不大,不过我目前的 Windows x64 能跑起来了,应该不缺依赖了吧?有啥核心的、特殊的依赖包,会对生成图片的质量有影响吗?

21622e9d79da169e10c889ae6d28ed3

好的,那个歌手的可以用这个参考图。能跑起来了就应该不缺了hhh

好的,多谢多谢!打扰您宝贵时间了!
大佬有空时,帮我看看上面 dialogue 5 turn 4 报错的原因。说是 Index 值超界了,这个不懂啊,需要加什么限制条件吗?

13ffc5d6cfef9543ac0b42c8740e964 ru'guo'nin如果您使用SDXL+参考图,可以会得到一些有趣的结果。(单轮使用即可)。对于index超出,我好像没碰到类似的错误

嗯,不错!看起来挺有趣啊!!!👍👍👍,我迟点试试 XL 模型。对了,是不是其它的基于 SD 1.5、SDXL 1.0 基础模型训练的、别的类似的,或者较好的模型,都可以用呢?

没错的,可以在civitai下结点,漫画风,真实风,迪士尼风那种,都不错的

那我看脚本,其实 VAE 你指定了,UNET 是必须用基础模型的?其它的 pretrained_models 只要下载单个 ckpt 或 safetensors 包就可以了?那如果这样的话,是不是我上面的脚本中,UNET 我用了 dreamlike-anime-1.0/unet 反而造成效果不好啊?

不是的,你需要用脚本把safetensors转成正常的目录结构才能使用,其实最后换Unet的路径就行了VAE不用换

OK!明白了,那我原来的理解是对的,unet 需要用与预训练模型 *.safetensors 一致的,vae 用你指定的那个。
转换 safetensors 就是用 diffusers 读进去,然后 pipeline.save_pretrained("local_path", safe_serialization=True) 写出来就行吧?

是的是的

来个comfyui版本吧,好羡慕跑起来的效果

大佬有没有兴趣建一个群哇,一起学习交流一下 @donahowe @wikeeyang

大佬有没有兴趣建一个群哇,一起学习交流一下 @donahowe @wikeeyang

好呀,欢迎交流

来个comfyui版本吧,好羡慕跑起来的效果

好,有空做一个哈哈哈

大佬有没有兴趣建一个群哇,一起学习交流一下 @donahowe @wikeeyang

好呀,欢迎交流

那我贴个微信群哈~

image

大佬有没有兴趣建一个群哇,一起学习交流一下 @donahowe @wikeeyang

好呀,欢迎交流

那我贴个微信群哈~

image

微信群过期了,再求一个群链接~

大佬有没有兴趣建一个群哇,一起学习交流一下 @donahowe @wikeeyang

好呀,欢迎交流

那我贴个微信群哈~
image

微信群过期了,再求一个群链接~

好的我更新下readme放主页

大佬,微信群过期了呢,麻烦更新一下群呢

求更新微信群

看其他issuse这个项目本地跑起来20G vram还不够么?是模型不同占用显存不同么?有没有大佬测试过最低显存要求,超过16G只能望而却步了,如果作者能够降低显存要求,很多人都能使用,相信项目能很快火起来,毕竟个人AI开发者很多,原来试过story diffusion,但是效果不是太好,希望这个项目能比它好