ユーザーは最大4つのコンセプトを同時に選択できます。このノードは、選択されたカメラコンセプトを含むオブジェクトを作成し、それを Luma 生成ノードへ渡します。生成処理中、Luma AI はこれらのカメラコンセプトをもとに出力の視点や構図を制御し、選択された写真表現効果を正確に反映させます。複数のカメラコンセプトを組み合わせることで、詳細なプロンプト記述を書かずに高度なカメラ指示を実現できます。これは、特定のカメラアングルや構図が求められる場合に特に有効です。
class LumaConceptsNode(ComfyNodeABC): """ Holds one or more Camera Concepts for use with Luma Text to Video and Luma Image to Video nodes. """ RETURN_TYPES = (LumaIO.LUMA_CONCEPTS,) RETURN_NAMES = ("luma_concepts",) DESCRIPTION = cleandoc(__doc__ or "") # Handle potential None value FUNCTION = "create_concepts" CATEGORY = "api node/image/Luma" @classmethod def INPUT_TYPES(s): return { "required": { "concept1": (get_luma_concepts(include_none=True),), "concept2": (get_luma_concepts(include_none=True),), "concept3": (get_luma_concepts(include_none=True),), "concept4": (get_luma_concepts(include_none=True),), }, "optional": { "luma_concepts": ( LumaIO.LUMA_CONCEPTS, { "tooltip": "Optional Camera Concepts to add to the ones chosen here." }, ), }, } def create_concepts( self, concept1: str, concept2: str, concept3: str, concept4: str, luma_concepts: LumaConceptChain = None, ): chain = LumaConceptChain(str_list=[concept1, concept2, concept3, concept4]) if luma_concepts is not None: chain = luma_concepts.clone_and_merge(chain) return (chain,)