- Introduced PromptRefinerNode for post-processing prompts - Added multi-provider support (Ollama, OpenRouter, llama.cpp, etc.) - Implemented external API key loading via api_keys.txt (aligned with PromptCreatorNode) - Added configurable host input (full URL support for remote/local inference) - Integrated output cleaning system to remove thinking/reasoning artifacts - Added robust OpenRouter handling with fallback parsing and debug logging - Added console debug output for final refined prompt - Ensured compatibility with Nemotron and mixed pipelines (local + cloud) Improves prompt quality, modularity, and pipeline flexibility
101 lines
4.1 KiB
Python
101 lines
4.1 KiB
Python
# =========================
|
|
# Prompt Creator Node Suite
|
|
# =========================
|
|
|
|
MANIFEST = {
|
|
"name": "Prompt Creator Node",
|
|
"version": (1, 16, 0),
|
|
"author": "TK-traumakom",
|
|
"project": "https://github.com/zeeoale/PromptCreatorNode",
|
|
"description": (
|
|
"Dynamic prompt generator for ComfyUI using modular JSON worlds, "
|
|
"COLOR_REALM control, LoRA triggers, optional AI enhancement, "
|
|
"and a modular Identity Mixer for consistent character generation."
|
|
),
|
|
}
|
|
|
|
# Log version on load (very useful for debugging)
|
|
print(
|
|
f"[PromptCreatorNode] "
|
|
f"v{'.'.join(map(str, MANIFEST['version']))} loaded"
|
|
)
|
|
def _print_promptcreator_banner():
|
|
banner = r"""
|
|
██████ ██████ ██████ ███ ███ ██████ ████████
|
|
██ ██ ██ ██ ██ ██ ████ ████ ██ ██ ██
|
|
██████ ██████ ██ ██ ██ ████ ██ ██████ ██
|
|
██ ██ ██ ██ ██ ██ ██ ██ ██ ██
|
|
██ ██ ██ ██████ ██ ██ ██ ██
|
|
|
|
██████ ██████ ███████ █████ ████████ ██████ ██████
|
|
██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██
|
|
██ ██████ █████ ███████ ██ ██ ██ ██████
|
|
██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██
|
|
██████ ██ ██ ███████ ██ ██ ██ ██████ ██ ██
|
|
|
|
███ ██ ██████ ██████ ███████
|
|
████ ██ ██ ██ ██ ██ ██
|
|
██ ██ ██ ██ ██ ██ ██ █████
|
|
██ ██ ██ ██ ██ ██ ██ ██
|
|
██ ████ ██████ ██████ ███████
|
|
-----------------------------------------------------
|
|
1.16.0
|
|
-----------------------------------------------------
|
|
|
|
===========================================================
|
|
PromptCreatorNode v1.16.0
|
|
A modular cinematic prompt generator for ComfyUI
|
|
|
|
Loaded nodes:
|
|
- Prompt Generator
|
|
- Identity Mixer (Parts)
|
|
- Prompt Replay
|
|
- Prompt Builder
|
|
- Promt Tags Extractor Node (create tags for galley uploader)
|
|
- Prompt Refiner Node
|
|
|
|
Author: traumakom
|
|
===========================================================
|
|
"""
|
|
print(banner)
|
|
|
|
_print_promptcreator_banner()
|
|
|
|
# -------------------------
|
|
# Node imports
|
|
# -------------------------
|
|
|
|
from .PromptCreatorNode import PromptCreatorNode
|
|
from .IdentityMixerNode import IdentityMixerNode
|
|
from .PromptReplayNode import PromptReplayNode
|
|
from .PromptBuilderNode import PromptBuilderNode
|
|
from .PromptTagsExtractorNode import PromptTagsExtractorNode
|
|
from .PromptRefinerNode import PromptRefinerNode
|
|
|
|
|
|
|
|
# -------------------------
|
|
# ComfyUI mappings
|
|
# -------------------------
|
|
|
|
NODE_CLASS_MAPPINGS = {
|
|
"PromptCreatorNode": PromptCreatorNode,
|
|
"IdentityMixerNode": IdentityMixerNode,
|
|
"PromptReplayNode": PromptReplayNode,
|
|
"PromptBuilderNode": PromptBuilderNode,
|
|
"PromptTagsExtractorNode": PromptTagsExtractorNode,
|
|
"PromptRefinerNode": PromptRefinerNode
|
|
|
|
}
|
|
|
|
NODE_DISPLAY_NAME_MAPPINGS = {
|
|
"PromptCreatorNode": "Prompt Generator",
|
|
"IdentityMixerNode": "Identity Mixer (Parts)",
|
|
"PromptReplayNode": "Prompt Replay",
|
|
"PromptBuilderNode": "Prompt Builder",
|
|
"PFN_PromptTagsExtractor": "PFN Prompt → Tags (Extractor)",
|
|
"PromptRefinerNode": "PFN Prompt Refiner",
|
|
|
|
|
|
}
|