-
Notifications
You must be signed in to change notification settings - Fork 21
Create custom "Runware Save Image" node #82
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Sirsho1997
commented
Jan 24, 2026
…name vectorize output to Image
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR introduces a custom "Runware Save Image" node that saves images by downloading them from URLs rather than using base64 data. The main changes include:
Changes:
- Created a new
RunwareSaveImagenode that downloads and saves images from URLs - Modified multiple nodes to return image URLs (STRING type) instead of IMAGE tensors
- Updated workflow JSON files to use the new save node
- Added
imageiodependency and removed unused model inference nodes
Reviewed changes
Copilot reviewed 46 out of 48 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| modules/saveImage.py | New node implementation for downloading and saving images from URLs |
| modules/imageInference.py | Changed to return STRING (URL) instead of IMAGE output |
| modules/upscaler.py | Changed to return STRING (URL) instead of IMAGE output |
| modules/vectorize.py | Changed to return STRING (URL) instead of SVG data |
| modules/photoMaker.py | Changed to return STRING (URL) instead of IMAGE output |
| modules/bgremoval.py | Changed to return STRING (URL) instead of IMAGE output |
| modules/controlNetPreprocessor.py | Changed to return STRING (URL) instead of IMAGE output |
| modules/imageMasking.py | Changed return types from IMAGE to STRING |
| modules/multiInference.py | Changed to return STRING URLs |
| modules/utils/runwareUtils.py | Added extractImageURLs() helper function |
| requirements.txt | Added imageio dependency |
| init.py | Removed Imagen and Kontext nodes, added SaveImage node |
| workflows/*.json | Updated 15+ workflow files to use new save node |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| response = requests.get(image_url, timeout=30) | ||
| response.raise_for_status() |
Copilot
AI
Jan 24, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There's no error handling for the HTTP request. If the request fails or times out, the exception will propagate without a user-friendly error message. Consider wrapping this in a try-except block with a descriptive error message.
| response = requests.get(image_url, timeout=30) | |
| response.raise_for_status() | |
| try: | |
| response = requests.get(image_url, timeout=30) | |
| response.raise_for_status() | |
| except requests.exceptions.RequestException as e: | |
| raise Exception(f"Failed to download image from '{image_url}': {e}") from e |