Posts
read more
Stable Diffusion Params
Stable Diffusion(简称 SD)是一个基于扩散模型的生成式 AI 图像工具,其功能和效果受到多种参数和概念的影响。以下是常见的概念及其作用介绍:
1. CFG(Classifier-Free Guidance Scale)
作用: 控制生成图像时对提示词的依赖程度。
- 低值(如 1-5): 生成的图像更加自由,可能不完全符合提示词,但更有创意。
- 高值(如 7-15): 图像严格遵循提示词描述,但可能损失一些自然性或多样性。
建议: 大多数情况下使用 7-12 的范围,可以平衡提示词依赖和图像质量。
2. Sampling(采样方法)
作用: 影响图像生成的风格和速度。常见的采样方法包括:
- DDIM:速度快,生成的图像更加平滑。
- Euler a:适合生成高细节图像,效果受提示词和CFG影响较大。
- DPM++ 系列:新型采样器,兼具质量和效率,推荐使用 DPM++ 2M 或 DPM++ SDE K。
- PLMS:适合简单场景,速度快但细节可能较少。
建议: 初学者可尝试 Euler a 或 DPM++ 系列,调整 CFG 后观察效果。
3. Steps(采样步数)
作用: 控制生成过程中进行的采样次数。
- 低步数(如 10-20): 生成速度快,但细节较少。
- 高步数(如 50-100): 生成图像细节丰富,但速度较慢。
建议: 大多数情况下,20-50 步数足够,除非追求极高质量。
4. Prompt(提示词)
作用: 描述希望生成的图像内容,直接影响生成结果。
- 正向提示词(Positive Prompt): 定义图像主体、风格、细节,如 “a futuristic city at night, neon lights, ultra-realistic, 4k”。
- 反向提示词(Negative Prompt): 排除不需要的元素,如 “blurry, low quality, deformed, text”.
建议: 多尝试调整提示词的顺序、权重(使用 (word:1.2)
表示权重),以优化结果。
Posts
read more
Python bug fixing process
Python bug 修复过程通常包括以下几个步骤。根据项目规模和开发团队的工作方式,具体细节可能有所不同:
1. 问题确认
- 重现问题: 确保能够可靠地重现问题。记录导致问题的输入、环境和行为。
- 分析日志: 检查错误日志或调试输出,找到问题发生的位置和相关信息。
- 确定范围: 确定问题是代码逻辑、依赖库、配置还是环境引起的。
2. 定位问题
- 阅读代码: 找到与问题相关的模块和代码段,理解其逻辑。
- 添加日志或断点:
使用调试工具(如
pdb
、PyCharm、VS Code 的调试功能)或增加打印语句,逐步排查代码的运行状态。 - 查阅文档: 确保使用的 Python 标准库或第三方库没有被误用。
- 最小化测试案例: 将问题简化为最小的、可复现的代码片段。
3. 修复问题
- 修改代码: 修正导致问题的代码部分,确保逻辑正确。
- 添加测试: 针对这个问题编写单元测试或集成测试,确保修复后不会再复现。
- 检查潜在影响: 确保修复不会引入新的问题(例如通过影响其他模块)。
4. 验证修复
- 运行测试: 执行所有相关的单元测试和集成测试,验证修复是否成功。
- 手动测试: 在实际环境中测试修复,模拟真实使用场景,确保修复有效。
5. 提交和记录
- 代码审查: 提交修改并请求同事进行代码审查(Code Review)。
- 记录变更: 在版本控制系统(如 Git)中清楚地描述修复内容。
- 更新文档: 如果问题是由于误用功能引起的,需要更新相关文档,避免未来再次发生类似问题。
6. 发布与后续跟踪
- 部署更新: 将修复后的代码部署到测试环境或生产环境。
- 监控: 持续观察问题是否在修复后复现,监控相关指标。
- 反馈收集: 向用户或相关团队确认问题是否已完全解决。
工具推荐
- 调试工具:
pdb
:Python 自带的调试工具。- 图形化调试器:PyCharm, VS Code。
- 测试工具:
unittest
或pytest
:编写测试用例。tox
:测试多种 Python 环境。
- 代码质量:
flake8
或pylint
:检测代码风格问题。mypy
:检查类型注解。
- 日志工具:
- 使用
logging
模块提高问题分析能力。
- 使用
通过以上步骤和工具,Python 项目的 bug 修复可以变得更加高效和可靠。
Posts
read more
Cnki Scrapy Plawright Spider
使用 scrapy + playwright 获取知网各省市的所有的期刊信息
通过 playwright
- 多开标签同时查询多个省市的期刊列表
- 分析后面每个期刊的详情页面,这个页面不需要 js 就获取 html
- 点击详情页的投稿获取投稿信息, 分析 xhr 请求,可以用 api
- 在投稿页面获取补充信息, 分析 xhr 请求,可以用 api
与单独使用 playwright 对比
单独使用的优点
- 可以加载 js
- 不需要分析请求内容
- 不需要解密
- 不用额外设置防屏蔽,比 selenium 更方便
缺点
- 加载了大量 js css jpg 内容
- 要等待时间长
- 多开性能要求高
- 容易出错
- 逻辑处理要求高
- 保存内容要自己设计
总结
使用 scrapy + playwright 可以更快更稳定更方便
Posts
read more
Tailwindcss Text Gradient
<span class="bg-gradient-to-r from-red-500 to-green-500 bg-clip-text text-transparent">
RPA flow design
</span>
Posts
解决方案, 修改
read more
Uniapp Offline Release Apk Issue
Uniapp 发布离线打包问题,踩坑
缺失模块,未添加模块
解决方案, 修改 app/build.gradle
buildTypes {
release {
// 最小化设置为 false 解决问题
minifyEnabled false
}
}