IFS–Matrix[iter_,a_,b_]:=(
Clear[s];
image =Image[RandomInteger[{0,255},{512,512}],
"Byte",ColorSpace->"Graylevel"];
{n,m}=Dimensions[a];
dim=ImageDimensions[image]/{n,m};
s=Table[image,{n},{m}];
Do[(
img = ImageResize[image,dim];
For[i=1,i≤n,i++,
For[j=1,j≤m,j++,
s[[i]][[j]]=
ImageMultiply[
ImageAdd[img,b[[i]][[j]]],a[[i]][[j]]
];
];
];
image=ImageAssemble[s];
),{iter}];
image)

IFS–Matrix–Random[iter_:10,n_:2,m_:2]:=(
a=RandomReal[{0.5,1.5},{n,m}];
b=RandomReal[{-0.2,0.2},{n,m}];
IFS–Matrix[iter,a,b]
)

IFS–tab=Table[IFS–Matrix–Random[10,2,2],{3}]

Table[ColorCombine[RandomSample[IFS–tab,3]],{10}]

Manipulate[
IFS–Matrix–Random[i,n,m],
{i,1,20,1},
{n,1,8,1},
{m,1,8,1}
]