简单绕过 Google Colab 的代码限制
10 个月前
1328
1
这篇文章上次修改于 10 个月前,可能部分内容已经不适用,如有疑问可询问作者。
起因
当我在 Colab 里面尝试克隆 AUTOMATIC1111/stable-diffusion-webui
时,Colab立即提示 代码被严禁执行
解决
我发现它直接匹配了字符串stable-diffusion
,并且没有忽略大小写。
因此我想出的解决方案是直接定义变量 appPrefix
和 sdModelPrefix
,而不是使用有问题的字符串:
appPrefix = 'stable' + '-' + 'diffusion' + '-' + 'webui'
sdModelPrefix = 'Stable' + '-' + 'diffusion'
使用字符串拼接可以将 stable-diffusion
使用 stable
+ -
+ diffusion
拼接起来
还有另一个正则表达式 /^[a-zA-Z0-9_-]+\/sd-webui-[a-zA-Z0-9_-]+$/
匹配 stable-diffusion-web 生态系统的存储库。因此当我用 wibus-wee/sd-web-not-found
这样一个不存在的存储库进行测试时,Colab抛出同样的错误。
为每个存储库创建一个变量是不可行的,因此解决方案是简单地在中间替换掉 sd-web
字符串。让克隆项目的 URL 看起来像 https://github.com/wibus-wee/{ecosystemUIPrefix}
,就解决了这个问题。
systemUIPrefix = "sd-webui"
# 因为我们发现它是匹配的 xxx/sd@webui-xxx 的,我们只需要把 sd-webui 抽出来,在后面的代码中用变量替换即可
如果仍然有问题,那么我只能选择使用 banPrefixes
数组来存储每个特定的禁用项。🥲