sd1.5微调实践

  • 目前sd1.5我主要试了3种微调方法, dreamBooth, lora, lycoris
  • 说实话我感受不到这个微调方式的任何优势, 属于花好几倍的时间, 呈现出来的效果却不理想, 不管是人物训练还是画风训练, 而且对显存要求也高, 最后的模型还很大!

  • 推荐指数: 极低

阅读更多

ai图手脚崩坏如何修复

  • 这是原ai图, 是用sd的一个微调模型生成的:

  • 这是修复后的图:

  • 用sd的inpaint局部重绘? 然后加上controlNet? 各种教程的都教人这么去搞, 然后效果就是一坨! 首先重绘出一只完美的手就要换时间不停重试,
    好不容易roll出一只好手, 重绘区域却和整体图片有违和感, 对于违和感是0容忍的, 对于一幅插画来说, 这比手脚崩坏严重多了; 在无数次重试,
    我发现几个小时就过了…

  • 总结, 重绘就是陷阱, 不要陷进去, 至少目前是这样的, 未来不好说

阅读更多

danbooru爬图

  • 最近ai炼丹嫌找炼丹素材麻烦, 就写了个按danbooru tag爬图的脚本, 没什么第三方依赖, 想用直接copy去跑就行
  1. 把脚本里面的your_usernameyour_password替换成你的danbooru账号密码(账号在https://danbooru.donmai.us注册)
  2. main里面, 在tag填上要爬取的tag, save_dir为爬取的图片的保存路径
  3. 如果需要通过代理爬取, 把use_proxy置为True, 然后改下proxies变量的代理地址即可
阅读更多

grpc的goAway和keepalive

  • 虽是Http2的东西, 但也可以通过grpc的源码来侧面加深下理解
  • 告诉客户端, 服务端准备关闭了, 本连接不要发新请求过来了 (发一半的请求还是会处理完的)
  • 当client收到这个包之后就会主动关闭连接。下次需要发送数据时,就会重新建立连接
  • 流程: client收到Goaway -> client主动关闭http2连接 -> channel变为IDLE -> 用户发起新请求 -> 创建新连接 -> channel变为CONNECTING
  • 另外GoAway是实现优雅关闭的基石, 因为是client主动关闭(不同于服务端关闭), 可以避免很多无效的请求
  • 源码:
    • google.golang.org/grpc/clientconn.go: errConnDrain (drain是接收到goaway后的连接状态)
    • google.golang.org/grpc/internal/transport/http2_client.go: func (t *http2Client) Close(err error)
    • google.golang.org/grpc/internal/transport/http2_client.go: func (t *http2Client) handleGoAway(f *http2.GoAwayFrame)
      • 里面的 t.onClose(t.goAwayReason)的onClose在”grpc/clientconn.go/addrConn createTransport”里面定义的:
阅读更多