chatgpt-mirai-qq-bot-web-search 0.1.8__tar.gz → 0.1.9__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (24) hide show
  1. chatgpt-mirai-qq-bot-web-search-0.1.9/PKG-INFO +42 -0
  2. {chatgpt_mirai_qq_bot_web_search-0.1.8 → chatgpt-mirai-qq-bot-web-search-0.1.9}/README.md +6 -6
  3. chatgpt-mirai-qq-bot-web-search-0.1.9/chatgpt_mirai_qq_bot_web_search.egg-info/PKG-INFO +42 -0
  4. {chatgpt_mirai_qq_bot_web_search-0.1.8 → chatgpt-mirai-qq-bot-web-search-0.1.9}/chatgpt_mirai_qq_bot_web_search.egg-info/SOURCES.txt +4 -5
  5. chatgpt-mirai-qq-bot-web-search-0.1.9/chatgpt_mirai_qq_bot_web_search.egg-info/entry_points.txt +2 -0
  6. chatgpt-mirai-qq-bot-web-search-0.1.9/chatgpt_mirai_qq_bot_web_search.egg-info/top_level.txt +1 -0
  7. {chatgpt_mirai_qq_bot_web_search-0.1.8 → chatgpt-mirai-qq-bot-web-search-0.1.9}/setup.py +7 -7
  8. chatgpt-mirai-qq-bot-web-search-0.1.9/web_image_generate/__init__.py +72 -0
  9. chatgpt-mirai-qq-bot-web-search-0.1.9/web_image_generate/blocks.py +98 -0
  10. chatgpt-mirai-qq-bot-web-search-0.1.9/web_image_generate/example/textToImage.yaml +116 -0
  11. chatgpt-mirai-qq-bot-web-search-0.1.9/web_image_generate/image_generator.py +260 -0
  12. chatgpt_mirai_qq_bot_web_search-0.1.8/PKG-INFO +0 -55
  13. chatgpt_mirai_qq_bot_web_search-0.1.8/chatgpt_mirai_qq_bot_web_search.egg-info/PKG-INFO +0 -55
  14. chatgpt_mirai_qq_bot_web_search-0.1.8/chatgpt_mirai_qq_bot_web_search.egg-info/entry_points.txt +0 -2
  15. chatgpt_mirai_qq_bot_web_search-0.1.8/chatgpt_mirai_qq_bot_web_search.egg-info/top_level.txt +0 -1
  16. chatgpt_mirai_qq_bot_web_search-0.1.8/web_search/__init__.py +0 -87
  17. chatgpt_mirai_qq_bot_web_search-0.1.8/web_search/blocks.py +0 -94
  18. chatgpt_mirai_qq_bot_web_search-0.1.8/web_search/config.py +0 -11
  19. chatgpt_mirai_qq_bot_web_search-0.1.8/web_search/example/roleplayWithWebSearch.yaml +0 -189
  20. chatgpt_mirai_qq_bot_web_search-0.1.8/web_search/web_searcher.py +0 -237
  21. {chatgpt_mirai_qq_bot_web_search-0.1.8 → chatgpt-mirai-qq-bot-web-search-0.1.9}/LICENSE +0 -0
  22. {chatgpt_mirai_qq_bot_web_search-0.1.8 → chatgpt-mirai-qq-bot-web-search-0.1.9}/chatgpt_mirai_qq_bot_web_search.egg-info/dependency_links.txt +0 -0
  23. {chatgpt_mirai_qq_bot_web_search-0.1.8 → chatgpt-mirai-qq-bot-web-search-0.1.9}/chatgpt_mirai_qq_bot_web_search.egg-info/requires.txt +0 -0
  24. {chatgpt_mirai_qq_bot_web_search-0.1.8 → chatgpt-mirai-qq-bot-web-search-0.1.9}/setup.cfg +0 -0
@@ -0,0 +1,42 @@
1
+ Metadata-Version: 2.1
2
+ Name: chatgpt-mirai-qq-bot-web-search
3
+ Version: 0.1.9
4
+ Summary: WebSearch adapter for lss233/chatgpt-mirai-qq-bot
5
+ Home-page: https://github.com/chuanSir123/web_image_generate
6
+ Author: chuanSir
7
+ Author-email: 416448943@qq.com
8
+ Project-URL: Bug Tracker, https://github.com/chuanSir123/web_image_generate/issues
9
+ Project-URL: Documentation, https://github.com/chuanSir123/web_image_generate/wiki
10
+ Project-URL: Source Code, https://github.com/chuanSir123/web_image_generate
11
+ Classifier: Programming Language :: Python :: 3
12
+ Classifier: License :: OSI Approved :: GNU Affero General Public License v3
13
+ Classifier: Operating System :: OS Independent
14
+ Requires-Python: >=3.8
15
+ Description-Content-Type: text/markdown
16
+ License-File: LICENSE
17
+
18
+ # web-image-generate for ChatGPT-Mirai-QQ-Bot
19
+
20
+ 本项目是 [ChatGPT-Mirai-QQ-Bot](https://github.com/lss233/chatgpt-mirai-qq-bot) 的一个插件,用于生成图片。
21
+
22
+ ## 安装
23
+
24
+ ```bash
25
+ pip install chatgpt-mirai-qq-bot-web-image-generate
26
+ ```
27
+
28
+ ## 使用
29
+
30
+ 在 chatgpt-mirai-qq-bot的web_ui中配置
31
+ 使用示例请参考 [web_image_generate/example/textToImage.yml](web_image_generate/example/textToImage.yaml)
32
+ 安装此插件会自动生成一个画图工作流,仅供参考
33
+
34
+ ## 开源协议
35
+
36
+ 本项目基于 [ChatGPT-Mirai-QQ-Bot](https://github.com/lss233/chatgpt-mirai-qq-bot) 开发,遵循其 [开源协议](https://github.com/lss233/chatgpt-mirai-qq-bot/blob/master/LICENSE)
37
+
38
+ ## 感谢
39
+
40
+ 感谢 [ChatGPT-Mirai-QQ-Bot](https://github.com/lss233/chatgpt-mirai-qq-bot) 的作者 [lss233](https://github.com/lss233) 提供框架支持
41
+
42
+
@@ -1,18 +1,18 @@
1
- # OneBot-adapter for ChatGPT-Mirai-QQ-Bot
1
+ # web-image-generate for ChatGPT-Mirai-QQ-Bot
2
2
 
3
- 本项目是 [ChatGPT-Mirai-QQ-Bot](https://github.com/lss233/chatgpt-mirai-qq-bot) 的一个插件,用于将OneBot协议的消息转换为ChatGPT-Mirai-QQ-Bot的消息格式。
3
+ 本项目是 [ChatGPT-Mirai-QQ-Bot](https://github.com/lss233/chatgpt-mirai-qq-bot) 的一个插件,用于生成图片。
4
4
 
5
5
  ## 安装
6
6
 
7
7
  ```bash
8
- pip install chatgpt-mirai-qq-bot-web-search
8
+ pip install chatgpt-mirai-qq-bot-web-image-generate
9
9
  ```
10
10
 
11
11
  ## 使用
12
12
 
13
- 在 chatgpt-mirai-qq-bot的web_ui中配置
14
- 使用示例请参考 [web_search/example/normal.yml](web_search/example/roleplayWithWebSearch.yaml)
15
- 工作流请参考 [示例图片](web_search/example/workflow.png)
13
+ 在 chatgpt-mirai-qq-bot的web_ui中配置
14
+ 使用示例请参考 [web_image_generate/example/textToImage.yml](web_image_generate/example/textToImage.yaml)
15
+ 安装此插件会自动生成一个画图工作流,仅供参考
16
16
 
17
17
  ## 开源协议
18
18
 
@@ -0,0 +1,42 @@
1
+ Metadata-Version: 2.1
2
+ Name: chatgpt-mirai-qq-bot-web-search
3
+ Version: 0.1.9
4
+ Summary: WebSearch adapter for lss233/chatgpt-mirai-qq-bot
5
+ Home-page: https://github.com/chuanSir123/web_image_generate
6
+ Author: chuanSir
7
+ Author-email: 416448943@qq.com
8
+ Project-URL: Bug Tracker, https://github.com/chuanSir123/web_image_generate/issues
9
+ Project-URL: Documentation, https://github.com/chuanSir123/web_image_generate/wiki
10
+ Project-URL: Source Code, https://github.com/chuanSir123/web_image_generate
11
+ Classifier: Programming Language :: Python :: 3
12
+ Classifier: License :: OSI Approved :: GNU Affero General Public License v3
13
+ Classifier: Operating System :: OS Independent
14
+ Requires-Python: >=3.8
15
+ Description-Content-Type: text/markdown
16
+ License-File: LICENSE
17
+
18
+ # web-image-generate for ChatGPT-Mirai-QQ-Bot
19
+
20
+ 本项目是 [ChatGPT-Mirai-QQ-Bot](https://github.com/lss233/chatgpt-mirai-qq-bot) 的一个插件,用于生成图片。
21
+
22
+ ## 安装
23
+
24
+ ```bash
25
+ pip install chatgpt-mirai-qq-bot-web-image-generate
26
+ ```
27
+
28
+ ## 使用
29
+
30
+ 在 chatgpt-mirai-qq-bot的web_ui中配置
31
+ 使用示例请参考 [web_image_generate/example/textToImage.yml](web_image_generate/example/textToImage.yaml)
32
+ 安装此插件会自动生成一个画图工作流,仅供参考
33
+
34
+ ## 开源协议
35
+
36
+ 本项目基于 [ChatGPT-Mirai-QQ-Bot](https://github.com/lss233/chatgpt-mirai-qq-bot) 开发,遵循其 [开源协议](https://github.com/lss233/chatgpt-mirai-qq-bot/blob/master/LICENSE)
37
+
38
+ ## 感谢
39
+
40
+ 感谢 [ChatGPT-Mirai-QQ-Bot](https://github.com/lss233/chatgpt-mirai-qq-bot) 的作者 [lss233](https://github.com/lss233) 提供框架支持
41
+
42
+
@@ -7,8 +7,7 @@ chatgpt_mirai_qq_bot_web_search.egg-info/dependency_links.txt
7
7
  chatgpt_mirai_qq_bot_web_search.egg-info/entry_points.txt
8
8
  chatgpt_mirai_qq_bot_web_search.egg-info/requires.txt
9
9
  chatgpt_mirai_qq_bot_web_search.egg-info/top_level.txt
10
- web_search/__init__.py
11
- web_search/blocks.py
12
- web_search/config.py
13
- web_search/web_searcher.py
14
- web_search/example/roleplayWithWebSearch.yaml
10
+ web_image_generate/__init__.py
11
+ web_image_generate/blocks.py
12
+ web_image_generate/image_generator.py
13
+ web_image_generate/example/textToImage.yaml
@@ -0,0 +1,2 @@
1
+ [chatgpt_mirai.plugins]
2
+ web_image_generate = web_image_generate:WebSearchPlugin
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
2
2
  import io
3
3
  import os
4
4
 
5
- version = os.environ.get('RELEASE_VERSION', '0.1.8'
5
+ version = os.environ.get('RELEASE_VERSION', '0.1.9'
6
6
  '').lstrip('v')
7
7
 
8
8
  setup(
@@ -11,14 +11,14 @@ setup(
11
11
  packages=find_packages(),
12
12
  include_package_data=True, # 这行很重要
13
13
  package_data={
14
- "web_search": ["example/*.yaml", "example/*.yml"],
14
+ "web_image_generate": ["example/*.yaml", "example/*.yml"],
15
15
  },
16
16
  install_requires=[
17
17
  "playwright","trafilatura","lxml_html_clean",
18
18
  ],
19
19
  entry_points={
20
20
  'chatgpt_mirai.plugins': [
21
- 'web_search = web_search:WebSearchPlugin'
21
+ 'web_image_generate = web_image_generate:WebSearchPlugin'
22
22
  ]
23
23
  },
24
24
  author="chuanSir",
@@ -27,16 +27,16 @@ setup(
27
27
  description="WebSearch adapter for lss233/chatgpt-mirai-qq-bot",
28
28
  long_description=io.open("README.md", encoding='utf-8').read(),
29
29
  long_description_content_type="text/markdown",
30
- url="https://github.com/chuanSir123/web_search",
30
+ url="https://github.com/chuanSir123/web_image_generate",
31
31
  classifiers=[
32
32
  "Programming Language :: Python :: 3",
33
33
  'License :: OSI Approved :: GNU Affero General Public License v3',
34
34
  "Operating System :: OS Independent",
35
35
  ],
36
36
  project_urls={
37
- "Bug Tracker": "https://github.com/chuanSir123/web_search/issues",
38
- "Documentation": "https://github.com/chuanSir123/web_search/wiki",
39
- "Source Code": "https://github.com/chuanSir123/web_search",
37
+ "Bug Tracker": "https://github.com/chuanSir123/web_image_generate/issues",
38
+ "Documentation": "https://github.com/chuanSir123/web_image_generate/wiki",
39
+ "Source Code": "https://github.com/chuanSir123/web_image_generate",
40
40
  },
41
41
  python_requires=">=3.8",
42
42
  )
@@ -0,0 +1,72 @@
1
+ from typing import Dict, Any, List
2
+ from framework.plugin_manager.plugin import Plugin
3
+ from framework.logger import get_logger
4
+ from dataclasses import dataclass
5
+ from framework.workflow.core.block import BlockRegistry
6
+ from framework.ioc.inject import Inject
7
+ from framework.ioc.container import DependencyContainer
8
+ from framework.workflow.core.workflow.builder import WorkflowBuilder
9
+ from framework.workflow.core.workflow.registry import WorkflowRegistry
10
+ from .blocks import WebImageGenerateBlock,ImageUrlToIMMessage
11
+ logger = get_logger("WebImageGenerate")
12
+ import importlib.resources
13
+ import os
14
+ from pathlib import Path
15
+
16
+ class WebImageGeneratePlugin(Plugin):
17
+ def __init__(self, block_registry: BlockRegistry, container: DependencyContainer):
18
+ super().__init__()
19
+ self.block_registry = block_registry
20
+ self.workflow_registry = container.resolve(WorkflowRegistry)
21
+ self.container = container
22
+
23
+ def on_load(self):
24
+ logger.info("ImageGeneratePlugin loading")
25
+
26
+ # 注册Block
27
+ try:
28
+ self.block_registry.register("web_image_generate", "image", WebImageGenerateBlock)
29
+ self.block_registry.register("image_url_to_imMessage", "image", ImageUrlToIMMessage)
30
+ except Exception as e:
31
+ logger.warning(f"ImageGeneratePlugin failed: {e}")
32
+
33
+ try:
34
+ # 获取当前文件的绝对路径
35
+ with importlib.resources.path('web_image_generate', '__init__.py') as p:
36
+ package_path = p.parent
37
+ example_dir = package_path / 'example'
38
+
39
+ # 确保目录存在
40
+ if not example_dir.exists():
41
+ raise FileNotFoundError(f"Example directory not found at {example_dir}")
42
+
43
+ # 获取所有yaml文件
44
+ yaml_files = list(example_dir.glob('*.yaml')) + list(example_dir.glob('*.yml'))
45
+
46
+ for yaml in yaml_files:
47
+ logger.info(yaml)
48
+ self.workflow_registry.register("image", yaml.stem, WorkflowBuilder.load_from_yaml(os.path.join(example_dir, yaml), self.container))
49
+ except Exception as e:
50
+ try:
51
+ current_file = os.path.abspath(__file__)
52
+
53
+ # 获取当前文件所在目录
54
+ parent_dir = os.path.dirname(current_file)
55
+
56
+ # 构建 example 目录的路径
57
+ example_dir = os.path.join(parent_dir, 'example')
58
+ # 获取 example 目录下所有的 yaml 文件
59
+ yaml_files = [f for f in os.listdir(example_dir) if f.endswith('.yaml') or f.endswith('.yml')]
60
+
61
+ for yaml in yaml_files:
62
+ logger.info(os.path.join(example_dir, yaml))
63
+ self.workflow_registry.register("image", yaml.stem, WorkflowBuilder.load_from_yaml(os.path.join(example_dir, yaml), self.container))
64
+ except Exception as e:
65
+ logger.warning(f"workflow_registry failed: {e}")
66
+
67
+ def on_start(self):
68
+ logger.info("ImageGeneratePlugin started")
69
+
70
+ def on_stop(self):
71
+ logger.info("ImageGeneratePlugin stopped")
72
+
@@ -0,0 +1,98 @@
1
+ from typing import Any, Dict, List, Optional,Annotated
2
+ from framework.workflow.core.block import Block
3
+ from framework.workflow.core.block.input_output import Input, Output
4
+ from framework.im.message import IMMessage, TextMessage, ImageMessage
5
+ from framework.im.sender import ChatSender
6
+ from .image_generator import WebImageGenerator
7
+ import asyncio
8
+ from framework.logger import get_logger
9
+ from framework.ioc.container import DependencyContainer
10
+
11
+ logger = get_logger("ImageGenerator")
12
+ class WebImageGenerateBlock(Block):
13
+ """图片生成Block"""
14
+ name = "image_generate"
15
+
16
+ # 平台和对应的模型配置
17
+ PLATFORM_MODELS = {
18
+ "modelscope": ["flux", "ketu"],
19
+ "shakker": ["anime", "photo"]
20
+ }
21
+
22
+ inputs = {
23
+ "prompt": Input(name="prompt", label="提示词", data_type=str, description="生成提示词"),
24
+ "width": Input(name="width", label="宽度", data_type=int, description="图片宽度", nullable=True, default=1024),
25
+ "height": Input(name="height", label="高度", data_type=int, description="图片高度", nullable=True, default=1024)
26
+ }
27
+
28
+ outputs = {
29
+ "image_url": Output(name="image_url", label="图片URL", data_type=str, description="生成的图片URL")
30
+ }
31
+
32
+ def __init__(
33
+ self,
34
+ name: str = None,
35
+ platform: str = "modelscope",
36
+ model: str = "flux",
37
+ cookie: str = ""
38
+ ):
39
+ super().__init__(name)
40
+
41
+ # 验证平台和模型的合法性
42
+ if platform not in self.PLATFORM_MODELS:
43
+ supported_platforms = ", ".join(self.PLATFORM_MODELS.keys())
44
+ logger.error(f"不支持的平台 '{platform}'。支持的平台有: {supported_platforms}")
45
+ raise ValueError(f"不支持的平台 '{platform}'。支持的平台有: {supported_platforms}")
46
+
47
+ if model not in self.PLATFORM_MODELS[platform]:
48
+ supported_models = ", ".join(self.PLATFORM_MODELS[platform])
49
+ logger.error(f"平台 '{platform}' 不支持模型 '{model}'。支持的模型有: {supported_models}")
50
+ raise ValueError(f"平台 '{platform}' 不支持模型 '{model}'。支持的模型有: {supported_models}")
51
+
52
+ self.platform = platform
53
+ self.model = model
54
+ self.generator = WebImageGenerator(cookie=cookie)
55
+
56
+ def execute(self, **kwargs) -> Dict[str, Any]:
57
+ prompt = kwargs.get("prompt", "")
58
+ width = int(kwargs.get("width", 1024))
59
+ height = int(kwargs.get("height", 1024))
60
+
61
+ try:
62
+ try:
63
+ loop = asyncio.get_event_loop()
64
+ except RuntimeError:
65
+ loop = asyncio.new_event_loop()
66
+ asyncio.set_event_loop(loop)
67
+
68
+ image_url = loop.run_until_complete(
69
+ self.generator.generate_image(
70
+ platform=self.platform,
71
+ model=self.model,
72
+ prompt=prompt,
73
+ width=width,
74
+ height=height
75
+ )
76
+ )
77
+ return {"image_url": image_url}
78
+ except Exception as e:
79
+ return {"image_url": f"生成失败: {str(e)}"}
80
+
81
+ class ImageUrlToIMMessage(Block):
82
+ """纯文本转 IMMessage"""
83
+
84
+ name = "imageUrl_to_im_message"
85
+ container: DependencyContainer
86
+ inputs = {"image_url": Input("image_url", "图片url", str, "图片url")}
87
+ outputs = {"msg": Output("msg", "IM 消息", IMMessage, "IM 消息")}
88
+
89
+ def __init__(self):
90
+ self.split_by = ","
91
+
92
+ def execute(self, image_url: str) -> Dict[str, Any]:
93
+ if not image_url.startswith("http"):
94
+ return {"msg": IMMessage(sender=ChatSender.get_bot_sender(), message_elements=[TextMessage(image_url)])}
95
+ if self.split_by:
96
+ return {"msg": IMMessage(sender=ChatSender.get_bot_sender(), message_elements=[ImageMessage(line) for line in image_url.split(self.split_by)])}
97
+ else:
98
+ return {"msg": IMMessage(sender=ChatSender.get_bot_sender(), message_elements=[ImageMessage(image_url)])}
@@ -0,0 +1,116 @@
1
+ name: 文生图
2
+ description: ''
3
+ blocks:
4
+ - type: internal:text_block
5
+ name: 4040f648-6082-4a62-8ab1-39230e812836
6
+ params:
7
+ text: "Please help me convert this image description to an optimized English prompt.\nDescription: {user_msg}\n\nRequirements:\n1. Output in English\n2. Use detailed and specific words,Include high quality, detailed description, style keywords"
8
+ position:
9
+ x: -24
10
+ y: 275
11
+ connected_to:
12
+ - target: e8cae85d-a072-49b7-ab9f-fce7a06160e4
13
+ mapping:
14
+ from: text
15
+ to: user_prompt_format
16
+ - type: internal:get_message
17
+ name: 2c59f4e2-6f4f-431b-875f-9ea0337ba949
18
+ params: {}
19
+ position:
20
+ x: -22
21
+ y: 147
22
+ connected_to:
23
+ - target: e8cae85d-a072-49b7-ab9f-fce7a06160e4
24
+ mapping:
25
+ from: msg
26
+ to: user_msg
27
+ - type: internal:chat_message_constructor
28
+ name: e8cae85d-a072-49b7-ab9f-fce7a06160e4
29
+ params: {}
30
+ position:
31
+ x: 356
32
+ y: 142
33
+ connected_to:
34
+ - target: 9b7a708d-c87b-4f79-a5b0-25fe710cfbd5
35
+ mapping:
36
+ from: llm_msg
37
+ to: prompt
38
+ - type: internal:llm_response_to_text
39
+ name: 6c87ade7-829a-49d5-9542-0b9139c55b8d
40
+ params: {}
41
+ position:
42
+ x: 929
43
+ y: 143
44
+ connected_to:
45
+ - target: 0fae5955-f60e-4e2d-aeb0-b70c4310a907
46
+ mapping:
47
+ from: text
48
+ to: prompt
49
+ - type: internal:send_message
50
+ name: 35575732-eab5-477d-99c8-899dc9cb4422
51
+ params:
52
+ im_name: ''
53
+ position:
54
+ x: 1760
55
+ y: 150
56
+ - type: image:image_url_to_imMessage
57
+ name: 8bf789ab-a7ad-4e29-abf1-ddbc31508543
58
+ params: {}
59
+ position:
60
+ x: 1508
61
+ y: 146
62
+ connected_to:
63
+ - target: 35575732-eab5-477d-99c8-899dc9cb4422
64
+ mapping:
65
+ from: msg
66
+ to: msg
67
+ - type: internal:chat_completion
68
+ name: 9b7a708d-c87b-4f79-a5b0-25fe710cfbd5
69
+ params:
70
+ model_name: deepseek-ai/DeepSeek-V3
71
+ position:
72
+ x: 580
73
+ y: 143
74
+ connected_to:
75
+ - target: 6c87ade7-829a-49d5-9542-0b9139c55b8d
76
+ mapping:
77
+ from: resp
78
+ to: response
79
+ - type: internal:text_block
80
+ name: a8328f51-021f-4be4-87c0-cd3812965c06
81
+ params:
82
+ text: ''
83
+ position:
84
+ x: -21
85
+ y: 394
86
+ connected_to:
87
+ - target: e8cae85d-a072-49b7-ab9f-fce7a06160e4
88
+ mapping:
89
+ from: text
90
+ to: memory_content
91
+ - type: internal:text_block
92
+ name: ace549dd-3dd0-4c6a-bccf-4b5aad93916c
93
+ params:
94
+ text: ''
95
+ position:
96
+ x: -15
97
+ y: 518
98
+ connected_to:
99
+ - target: e8cae85d-a072-49b7-ab9f-fce7a06160e4
100
+ mapping:
101
+ from: text
102
+ to: system_prompt_format
103
+ - type: image:web_image_generate
104
+ name: 0fae5955-f60e-4e2d-aeb0-b70c4310a907
105
+ params:
106
+ cookie: ''
107
+ model: flux
108
+ platform: modelscope
109
+ position:
110
+ x: 1168
111
+ y: 140
112
+ connected_to:
113
+ - target: 8bf789ab-a7ad-4e29-abf1-ddbc31508543
114
+ mapping:
115
+ from: image_url
116
+ to: image_url