No face detected! 这个提示怎么关闭呀?

img2cartoon = pipeline('image-portrait-stylization', damo/cv_unet_person-image-cartoon_compound-models)

传入图片后应该怎么不让他提示这句话呢?如果很多张图片转换,会一直提示,想看提示要翻好久。。。

展开
收起
Yunoo 2023-06-16 17:34:38 272 分享 版权
阿里云 AI 助理回答

在使用阿里云模型进行图片转换时,如果您希望通过代码调用并减少或关闭命令行中输出的提示信息,可以采取以下几种方式:

  1. 捕获和抑制输出:在Python中,您可以使用os模块的devnull配合subprocess来抑制标准输出和错误。但请注意,这种方法适用于直接调用外部命令行工具的情景,对于通过库(如transformers)调用的pipeline可能不适用。

  2. 使用Pipeline的quiet模式:部分Pipeline或库函数提供了控制日志输出级别的方法。虽然原生的Hugging Face Transformers Pipeline没有直接提供一个quiet参数,但您可以修改全局的日志级别来达到类似效果。在开始转换之前,设置日志级别为ERROR或CRITICAL可以隐藏INFO及以下级别的消息。

    import logging
    from transformers import pipeline
    
    # 设置日志级别为ERROR,以隐藏INFO和DEBUG级别的消息
    logging.getLogger("transformers").setLevel(logging.ERROR)
    
    img2cartoon = pipeline('image-portrait-stylization', model='damo/cv_unet_person-image-cartoon_compound-models')
    
  3. 自定义日志处理器:更精细地控制日志输出,可以通过创建自定义日志处理器实现。这样,您可以在处理每张图片前后临时改变日志级别。

  4. 利用上下文管理器临时更改日志级别:如果希望在特定代码块内暂时改变日志级别,可以定义一个上下文管理器。

    import contextlib
    
    @contextlib.contextmanager
    def suppress_logs(level=logging.ERROR):
       previous_level = logging.getLogger().getEffectiveLevel()
       logging.getLogger().setLevel(level)
       try:
           yield
       finally:
           logging.getLogger().setLevel(previous_level)
    
    # 使用上下文管理器
    with suppress_logs():
       for img in images:
           img2cartoon(img)
    

以上方法可以帮助您在批量处理图片时减少不必要的输出,使查看结果更加方便。请根据您的具体使用环境选择合适的方法。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答

包含图像分类、图像生成、人体人脸识别、动作识别、目标分割、视频生成、卡通画、视觉评价、三维视觉等多个领域

热门讨论

热门文章

还有其他疑问?
咨询AI助理