# Image Texture Node : separate image file as a socket - to make it more reusable - in Eevee

I have a shader node tree like this. It works well even in Eevee.

^ All of the yellow circles use the same image file.

This is inconvenient when I want to :-

• change the file later
• create a reusable node group that have image file as input e.g. to create an awesome blur/high-pass node

How to split the file-text-box to an input socket?

I wish for something like :-

Edit (reason to reopen this question) :-

• A duplicate question and answer suggested by Gorgious Timaroberts♦ (Select Input Texture file name as parameter/node) forces me to use OSL.

• Unfortunately, OSL is currently not supported by GPU-rendering / Eevee at all. Thus, such solution has heavy negative impact on rendering/preview time.

• How to solve the problem without negative impact on rendering/preview time? Moreover, I still want to achieve it in Eevee.

• @Gorgious :: I have just clarified the question a few minute ago. Hopefully, it is probably no longer considered as a duplicate anymore. (or a better duplicate might be found) I would be glad if you may take a look. Thanks. :) Jan 26 '21 at 9:43
• There is no way right now, good feature request for blender.community/c/rightclickselect though. Jan 26 '21 at 11:44
• Agreed, I see only two ways currently : Using a custom node with OSL, or modify the source code of Blender, but unless you are an actual developer by trade this will be a very difficult task. I would very much like this feature to be implemented too :) Jan 26 '21 at 12:29

• Suppose that I have a ShaderA that requires a blurred version of ImageA. As suggested, I create NodeGroup. Then, I happen to need a new ShaderB that requires a blurred version of ImageB. There are a few difficulties :: 1. I need to copy the whole tree e.g. Texture Coordinate & NodeGroup nodes. (total 25 nodes) 2. I need to find a way to edit NodeGroup's image from ImageA to ImageB without impact on ShaderA 3. If I want to change blur-kernel, I have to manually edit both ShaderA and ShaderB. ... Sadly, this solution is still the best workaround, thanks. +1 Jan 28 '21 at 1:10