简单绕过 Google Colab 的代码限制

10 个月前
1328
1
这篇文章上次修改于 10 个月前,可能部分内容已经不适用,如有疑问可询问作者。

起因

当我在 Colab 里面尝试克隆 AUTOMATIC1111/stable-diffusion-webui 时,Colab立即提示 代码被严禁执行

解决

我发现它直接匹配了字符串stable-diffusion,并且没有忽略大小写。

因此我想出的解决方案是直接定义变量 appPrefixsdModelPrefix,而不是使用有问题的字符串:

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 数组来存储每个特定的禁用项。🥲

  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...